Design

Correctness, design, and style are the three axes along which CS50 assesses student work. Correctness and style are autograded, but design is where you as a TF critique code and offer your qualitative assessment. Design is graded out of 5 points.

What is Design?

Design is about how a student has approached the problem: to what extent their solution is efficient, creative, and shows mastery of course concepts. For more on what to look for in design, see both the base grading guidelines and problem set-specific guidelines below.

Guidelines on Awarding Points

Design points are not subtractive—that is, a baseline grade is not a 5 and earning a 3 does not mean that a student has “lost two points” on an assignment or “earned a 60%” (two common interpretations we hear from students). Rather, points are used to characterize the extent to which a student has met, exceeded, or fallen short of the course’s expectations.

The course expects that most students on average will be earning a score of 3 or 4 on the Design axis, with perhaps a 2 serving as the low end. Reserve awarding a 5 only to those submissions that are exceptional, for which you can find absolutely no room for improvement. If you can propose even one modification that would improve efficiency, it’s not a 5 and should not be scored as such.

3’s and 4’s should be awarded to work that demonstrates a good to great mastery of the given week’s concepts and problem set. A student’s benchmark for success is considered a 3.

1’s and 2’s should be awarded to work that demonstrates a poor to fair understanding of the given week’s concepts and problem set. Awarding a 1 or a 2 indicates that there are substantial improvements to be made to the design of a student’s solution.

Grading FAQs

What if a student asks for an extension?

If a student asks for an extension, you should respond by directing the student to cs50.harvard.edu/college/2022/fall/#lateness-policy and cs50.harvard.edu/college/2022/fall/syllabus/#extension-policy, highlighting in particular the clause that says “To grant yourself this extension, submit this form by the problem set’s deadline.” You should cc heads@cs50.harvard.edu in your reply. All instances in which a student asks for an extension should include heads@cs50.harvard.edu.

How should I grade incomplete work?

If a student has submitted an incomplete solution, it is best to approach grading design in response to the question, “Given what the student has submitted, what evidence do I have that they have understood a good design approach to the problem?”. It’s best to avoid a scenario where a student is double-penalized for incompleteness on both correctness and design, but it’s also best not to extrapolate from a single function that a student has understood all of the week’s concepts.

How long should I spend grading?

This depends on the week! On average, you shouldn’t spend more than 2 and a half hours on grading per week. Divide this time amongst your students, and set a timer if it’s helpful!

Can I award half points?

No. If you feel in between awarding two whole point values, best to round down.

Grading Deadlines

Feedback on problem sets is due no later than 4 days (96 hours) after the original date of submission. This is the following Thursday, 11:59pm, after a submission is due on a Sunday, 11:59pm. In any instance where you will be late on feedback, it is critical to let your Head Teaching Fellow know beforehand. We can work something out, but only if we know ahead of time.

Base Grading Guidelines

For information on grading guidelines that apply to all problem sets, see the base grading guidelines.

Problem Set-Specific Grading Guidelines