If you find an error in our grading, please bring it to our attention
within one week of that item being returned.
Grading guidelines for programming assignments
See also the "Programming Guidelines" at left.
Approximate grade breakdown:
- Program correctness, compilation -- 40% of total grade
- Architecture/design, style, commenting, documentation -- 30%
- Writeup/README -- 30%
The reason why "so few" points are allocated towards program correctness
and error-free compilation is because students who have gotten past 143
are smart enough to know how to get their code to compile and run against
the general input (although testing "boundary conditions" is a skill which
students should aim for), so program correctness and error-free
compilation is neither a fair nor discriminating measurement of project
quality.
The two biggest discriminating factors among 326 students are program
design (such as style and architecture) and analysis (the README/writeup),
which is why these factors are weighed a little heavily. Also, 326 is a
course about data structures and the tradeoffs made during algorithm/data
structure design, so putting additional weight on program design, and
questions about program analysis and weighing tradeoffs is more in keeping
with the course goals.
Putting weight on the design and writeup aspects for projects is also
useful because it doesn't penalize students who "have the right idea" but
couldn't get their code to compile because of a last-minute code change.
Point Allocation:
For each of the above three categories, we have the following point allocation:
- 5 pts -- "Excellent": no errors, hiccups, or conceptual
misunderstandings whatsoever.
- 4 pts -- "Very good": one (or two) minor error(s) or
misunderstanding(s). Most grades should fall in
this category.
- 3 pts -- "Good": three or four minor errors or misunderstandings,
or perhaps one major misunderstanding.
- 2 pts -- "Fair": two or three major misunderstandings
- 1 pt -- "Poor": major misunderstanding of underlying principles,
or complete misunderstanding but significant effort.
- 0 pts -- "Very Poor": Complete misunderstanding of underlying
principles, and little to no effort.
In addition, we will keep track of any extra features you implement
(the Above and Beyond parts). You won't see these affecting
your grades for individual projects, but they will be accumulated over
all projects and used to bump up borderline grades at the end of the
quarter.