CS 473: Grading Policies
If you have any questions or concerns, please ask in lecture, during office hours, or on Piazza.
Homeworks are graded by the entire course staff, directly within Gradescope. To keep grading consistent, each numbered problem is graded by a single grader, under the supervision of one of the TAs, using a detailed rubric developed within Gradescope. Under normal circumstances, all homework should be graded within 10 calendar days of submission.
Exams are graded by Jeff and graduate TAs, also using Gradescope. Under normal circumstances, exams should be graded within two weeks. You can retrieve your original ungraded paper (including your cheat sheet) in office hours a few days after the exam, once we've had a change to scan everything.
Homework and exam solutions are posted at most a day after the corresponding submission deadline. Homework and exam solutions include the rubrics used by the graders.
Please double-check the posted solutions for correctness. If any posted solution contains a serious error, all students will receive a perfect score for that problem as extra credit. Yes, really. I did this twice last semester.
Regrade requests can be submitted directly within Gradescope. We encourge students who have questions or concerns about their grades to talk with the course staff before submitting a regrade request. However, no grades will be changed in any student's presence.
Regrade requests for homeworks and midterms can be submitted up to two weeks after the graded work is returned. Regrade requests for the final exam can be submitted up to three weeks after the exam scores are released. Late regrade requests will be denied.
All regrade requests must include a brief written justification for the request. (Fill in the appropriate textbox on Gradescope.) Good justifications include the following:
- My answer agrees with the posted solution, but I still lost points.
- I lost 4 points for an incorrect time analysis, but the rubric says that's only worth 2 points.
- You took off points for missing the base case, but it's right here.
- My answer is correct, even though it does not match the posted solution.
- There is no explanation for my grade.
- The official solution is incorrect; here's a counterexample. (Extra credit for everyone!)
- I got a perfect score, but my solution has an error! (Yes, really.)
We can only grade what you actually submitted. You cannot get a higher grade by explaining what you meant, either in person or in writing. Your original submission must stand on its own.
If you submit a regrade request correctly reporting that a problem was graded too leniently—meaning your score is actually higher than the published rubric indicates—you will keep your original grade and you will be awarded the difference in scores as extra credit. Yes, really. At least a dozen students took advantage of this policy the last time I taught 374.
Course grades under COVID-19
(Revised in June 2020 to reflect policies posted on the main course web page and Piazza during the semester.)
This class was offered on a Pass/No-Pass basis in response to the COVID-19 pandemic shutdown, in accordance with the campus's Academic Policy Modifications for Spring 2020. These policies allowed instructors to petition for their classes to switch from standard letter grades to Pass/No Pass "in cases where the modification in course assessment makes it extremely difficult to fairly follow our standard grading system".
Pass/No Pass is distinct from the universty's usual Credit/No-Credit option, which students request on an individual basis for classes that normally offer letter grades. Offering a class Pass/No Pass means that those are the only two grades available; there is no option for students to individually request letter grades.
I do not believe it was possible to fairly assess students under the circumstances imposed by the COVD-19 pandemic. While many students made the transition to online instruction smoothly, others had (or still have) extenuating circumstances that made focusing on this class impossible, such as time zone differences, sick family members, loss of child care, loss of family income, an unsafe home environment, unreliable or unavilable broadband, and the mental health effects of social isolation.
Moreover, the sudden switch from on-campus to remote instruction required signficiant changes in how we offered exams: Instead of synchronous, in-person, proctored, closed-book exams like Midterm 1, this semester's Midterm 2 and final exam were offered asynchronously, online, unproctored, open-book exams. I do not believe we could fairly judge performance on such exams using the grading standards we advertised at the start of the semester, or calibrate against exams offered in previous semesters.
To that end, we abandoned the usual grading curve (described below). Mirroring grade cutoffs from previous semesters, we announced the following criteria for passing the class:
(Everyone who met the second criterion also met the first.) We also dropped the minimum homework requirement. Finally, students who took both midterms and already met these criteria before the final exam—meaning they would pass with a final exam score of zero—were not required to take the final exam.
- Exam average ≥ 25% and
- Overall adjusted course average ≥ 42%.
Despite the move to Pass/No-Pass, we contined to offer and grade homework assignments normally, to provide useful pracice and feedback, for the students' own benefit. We still offered all exams as announced at the start of the semester, and we continued to grade both homeworks and exams as usual. Our assumption was that studentws were here primarily to learn, and that it was our job to help them learn to the best of our ability.
Final course grades (usually)
Under normal circumstances, this is how we would have determined final course grades.
(What do you expect from an algorithms course?)
- Compute raw totals from homework and exam scores, excluding extra credit.
HwCount = min(24, max(actual number of homework submissions, 16))
HwAve = (sum of HWcount highest homework scores) / (HWcount * 10)
ExAve = (sum of exam scores) / (max possible sum of exam scores)
HwWeight = HWcount * 0.0125
ExWeight = 1.0 - HwWeight
RawTotal = HwAve * HwWeight + ExAve * ExWeight
20% ≤ Homework ≤ 30%:
Each submitted homework problem is worth 1.25% of your raw total.
We expect to assign and grade about 30 homework problems during the semester.
We will count a maximum of 24 problems, dropping the lowest scores if you submit more than 24.
We will count a minimum of 16 problems, adding zeros if you submit less than 16.
70% ≤ Exams ≤ 80%:
There will be two midterm exams, each worth ≥20% of your raw total, and a cumulative final exam worth ≥30% of your raw total. If you submit less than 24 homework problems, your exams are given correspondingly higher weight.
- Forgiven homework will be treated as if it did not exist; submitted homeworks will have more weight in the overall grade computation. In exceptional cases, we may compute course grades based entirely on exams.
- Forgiven midterms will be treated as if they did not exist; the other exams will have more weight in the overall grade computation.
- Anyone who misses both the final exam and the conflict final exam will be given an ABS (“absent from final”), which is equivalent to an F, unless they get an Incomplete from their college.
- We will not drop zero grades that result from cheating offenses.
- Compute adjusted totals, which include extra credit points. Extra credit points are not necessarily worth the same as regular points.
- Remove outliers and exceptional cases.
- Anyone with an adjusted total over 95%. These students automatically get an A+. This rule typically applies to the top 2–3% of the class. I reserve the right to lower the 95% cutoff.
- Anyone with an adjusted total below 40%, or who has submitted less than half of the homework, or who otherwise does not appear to be making a good faith effort in the class. I reserve the right to give these students failing grades; however, this is not the only way to fail! This rule typically applies to the bottom 1–2% of the class.
- Anyone who misses a regular exam, even if they take a conflict exam, or who has a significant number of forgiven homework. (We will manually adjust letter grades for these students, in particular to account for score differences between regular and conflict exams.)
- Determine letter-grade cutoffs from the undergraduate raw totals.
For example, the B+/A– cutoff is 2/3 standard deviations above the mean, and the B–/C+ cutoff is 2/3 standard deviations below the mean. Outliers and graduate students are excluded from the cutoff computation to avoid unfairly skewing the curve for undergraduates.
- The mean is the center of the B range.
- Each standard deviation is worth 3/4 of a letter grade.
(I am likely to change this policy in future semesters. Unlike when the course was launched, graduate students do not significantly outperform undergraduates.)
- Compute final letter grades (for non-outliers) from adjusted totals.
- In particular, grades for graduate students are determined by comparing their adjusted total to the undergraduate curve.
- Adjust grades upwards at the instructor's whim.
Here are the grade distributions for all Jeff's previous offerings of CS 473. This isn't really enough for the “typical” distribution to make sense, but there it is anyway. (Spring 2015 was a pilot offering, which did not use the current flexible homework percentage.)
||Mean ± stdev
| Spring 2015* || 65% ± 12% || 42%
|| ugrads: || 7 || 12 || 5 || 0 || 0
| || ||
|| grads: || 13 || 6 || 0 || 0 || 0
| Spring 2016 || 74% ± 11% || 42%
|| ugrads: || 27 || 29 || 21 || 3 || 0
| || ||
|| grads: || 11 || 11 || 0 || 0 || 0
| Spring 2017 || 73% ± 13% || 41%
|| ugrads: || 28 || 30 || 22 || 3 || 4
| || ||
|| grads: || 6 || 7 || 3 || 0 || 0
| Typical || 72% ± 12% || 42%
|| ugrads: || 32% || 37% || 25% || 3% || 2%
| || ||
|| grads: || 52% || 42% || 5% || 0% || 0%
For comparison, here are the grade distributions for all of Jeff's previous offerings of CS 374. Like this semester, the mean was at the C+/B– boundary, and each standard deviation was a full letter grade. Spring 2014 and Fall 2014 were pilot offerings, with significantly smaller enrollments, unsettled curricula, and no flexible homework percentage, so I don't regard those grade distributions as "typical".
I don't have a good explanation for the sharp improvement starting Spring 2018. (We did start distributing a large collection of practice/study problems before each exam in Fall 2016, but I don't think that's a sufficient explanation.) I also don't have a good explanation for the differences in grade distributions between fall and spring semesters.
You can compare my grade distributions with others here.
||Mean ± stdev
| Spring 2014* || 59% ± 11% || 38%
|| 8 || 11 || 8 || 8 || 1
| Fall 2014* || 62% ± 12% || 38%
|| 16 || 22 || 22 || 12 || 0
| Fall 2016 || 64% ± 12% || 39%
|| 87 || 113 || 124 || 60 || 14
| Spring 2018 || 71% ± 14% || 44%
|| 70 || 87 || 74 || 36 || 5
| Fall 2019 || 72% ± 12% || 47%
|| 68 || 99 || 89 || 54 || 11
| Typical || 68% ± 13% || 43%
|| 23% || 30% || 29% || 15% || 3%