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.
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/summer/2022/syllabus/#lateness-policy and cs50.harvard.edu/summer/2022/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 email@example.com in your reply. All instances in which a student asks for an extension should include firstname.lastname@example.org.
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, aim to spend about 10 minutes per student in your section. Set a timer if it’s helpful!
Grading deadlines for problem sets are in the CSCI E-50 Staff Calendar. Ask Doug if you haven’t yet received access.
Base Grading Guidelines
For information on grading guidelines that apply to all problem sets, see the base grading guidelines.
Problem Set-Specific Grading Guidelines
The below pages include problem-set specific guidelines, as well as links to staff solutions on Vault50.