We will have approximately 3 programming assignments and 8 written
homework assignments. When calculating final grades, we will drop
your lowest written homework score. 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.
Extra Credit:
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.