Skip to main content

About the Project

The project I'll be tackling is not exactly a unique idea: an app that allows students to enter scores and see their running grade. You can find the Github repository here.

The idea is to improve on what is available in portals like Blackboard. They typically either reveal only what's been attempted, or only the points earned in relation to all points possible. In either case, a student has a hard time determining how they stand without doing math and referring to the syllabus--that they hopefully haven't trashed.

I had the idea when I was making out a spreadsheet to figure out my current actual grade for a math class halfway through a semester. I had formulas laid out to account for the weighting of quizzes versus homework versus tests. It was annoying to set up and I did my math wrong a few times but finally had something that worked--as long as I manually updated the point totals earned every time I added a new score.

This was in the middle of my C# Programming I course, and I had an epiphany--I could write a program that would let me set all this nonsense up once using classes and variables and collections of scores and oh my! I spun up the initial, mostly-working console version full of ugly unwieldy code and showed it to the C# instructor...who quite rightly determined there wasn't much to say except "Solving real world problems is totally how you build your skills."

My project is to apply about a year's worth of constant skill building to that old concept, and make something that resembles a useful program.

Popular posts from this blog

Use Cases: The Theory

They told me in my CSCI-1275 Systems Analysis and Design course there's a tendency for programmers to just start coding stuff without thinking, and this was nigh on tantamount to total catastrophe. I didn't fully understand this until a little later in the semester. We had just learned about arrays and collections in my CSCI-1630 C# Programming I course, and I found this to be a perfect excuse to write a little application that would synthetically divide polynomials . (That's a really great way to master synthetic division, actually, if you're interested in brushing up on that skill. Although my wife still insists the time would have been better spent putting more time into my algebra homework. Two types of people...). At any rate, long story short: I made the program work perfectly, for 3rd degree polynomials that divided evenly. Then I realized it broke when I tried a polynomial of the 4th degree. And then again when the 3rd degree polynomial had a remainder. ...

Activity Diagram: Theory

So I've got use cases figured out. Not all of them--only a fool or a genius thinks he can sit at a desk away from the end user and think he's got all the use cases figured out (and a genius would never truly believe it). But you can't sit around trying to anticipate every possible use case before you start, so once we have enough to cobble together a complete program or part of one we can move on for a bit. Side note, this is the beauty of the agile approach: "Yeah, we know we gotta go to the moon. But we have to do it in 10 years, so we can't spend 5 years thinking up every problem we might need to solve before we start solving them. How about we start with 'design a rocket that reaches orbit without killing anyone' and build on that when we finish?" That's called an iteration, but more on that later. Fleshing out what that use case needs is the next step, and there are a couple tools I remember being taught. One of them is the activity diagra...

Activity Diagrams: Pertaining to the Project

I don't think I'll be posting about every diagram I do--they're not great works of art the world must see, and if you really wanna see them they'll be in the Github repo. But I did want to post something project specific for each piece of theory here. Thus, please see below. I think this is pretty self explanatory, even to the uninitiated. Black dot with no ring is the start point, black dot with a ring is the end of the use case. In this case, we can end the use case by just...stopping, or by going on to the "create course" use case. Which will be a diagram I can link to, hence that weird symbol after the Create Course block. As an aside, I'm using a program called Violet to do my diagrams, and have been for about a year now. It may not be as fancy as Visio or several online subscription options, but I'm honestly more interested in being able to get something on paper (so to speak) quickly, so I can start messing with it. I need to understand...