Lecture 05: Grading

CS298 / EDUC298

Fall 2023

Stanford University

Computer Science Department

Lecturer: Chris Gregg

  • Grading is probably not what you are most forward to in your teaching career.
    • Assessing your students is an essential part of your job
      • It is particularly important for the students!
  • Grading can be overwhelming
    • If you don't have enough (or any) TAs (getting more common as classes get bigger), you may not have enough time to do a good job grading (or it could simply take too much time)
    • It is easy to get behind in grading, and this can be painful long-term
  • Most importantly
    • You should focus your efforts on your students understanding and ability to do something, rather than their grades
    • Your students will directly correlate their grade to their understanding, which is not always true
  • What will you grade?
    • Not everything needs to be graded, e.g., in-class assessments, section problems, etc.
    • Exams, projects, presentations, problem sets should probably be graded
  • Students will perform differently on different types of assignments
    • You should attempt to grade a variety of types of assignments

Lecture 05: Grading

  • Do the best you can to give feedback on an assignment before the students hand in the next similar assignment
    • If students don't know what you expect, they will make similar errors again
    • Students do like to see how they are doing in the course as it progresses
  • Give feedback on what is correct and incorrect
    • Only some students will actually use the feedback, but it can be important
    • The more information you can provide, the better, but be judicious: you probably don't have to give as much feedback on a final exam as you might on the first assignment in the course.
  • TAs
    • You need to teach your TAs how to grade your assignments!
      • It is best if some TAs are veterans of TAing the course. They can mentor new TAs.
      • It is best if TAs have taken the course before
        • Sometimes, though, they expect it to be exactly the same as before!
      • Provide your TAs a clear rubric for grading
        • The more detail, the better
        • The rubric can be modified as grading goes on -- you may not expect some answers
      • It is a good idea to spot-check your TAs work, especially for new TAs
        • You want the TAs to grade consistently

Lecture 05: Grading

  • Grading Programming Assignments
    • If you can auto-grade for functionality, that can be a great tool -- don't make it the only grade!
      • Provide feedback for autograding tests! This doesn't have to give away the actual test, but it should provide some actionable information. E.g.,
        • Failed test for long input string (over 1024 characters).
          
          Error: segmentation fault.
          				
      • Having students write their own tests can be helpful, and you could have students write tests that get folded into other tests for other students
    • You want to provide some style guidance, especially for novice programmers
    • Spend as much time as is reasonable (this goes for your TAs, too)
      • One-on-one post-assignment meetings can be great, but are time-consuming
  • Grading Projects
    • The rubric is key -- you may consider giving it to the students ahead of time so they know what to expect
    • Have a calendar that students can rely on -- potentially grade at every checkpoint.
    • Grading individual work can be tricky!
      • You can have students grade each other in their group

Lecture 05: Grading

  • Grading Exams
    • This can take a considerable amount of time
    • Don't shy away from good multiple choice problems (e.g., "What is the output of the following program? A/B/C/D")
    • Grading parties work great, and TAs can bounce ideas off of each other (make sure you feed them!)
    • Use technology as best you can (Gradescope is a great tool)
  • What do to if? questions from Chapter 9

Lecture 05: Grading