Now that we've acheived a critical mass regarding the size and detail of the programs we can write, we'll be moving to the following criteria for grading on the programming assignments. Your score consists of three axes:

... where each one gets a score on the following scale:

The three categories can be defined as:

Additionally, on some assignments I have one more "last points" for a final challenge.

Your final score is determined via the following formula:

Final score = 3 * correctness + 2 * design + 1 * style + last point(s).


(Citation: these ideas are largely from grading criteria for Harvard CS 50, though I modified them for my purposes.)