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 two graders, under the supervision of one of the TAs, using a common detailed rubric developed within Gradescope. All numbered homework problems are worth the same amount. Under normal circumstances, all homework should be graded within 10 days of submission.
• Exams are graded by the instructors and graduate TAs. Graded midterms will be returned in lecture two weeks after the exam, and will be available in office hours any time after that.
• Homework and exam solutions will be posted at most a day after the corresponding submission deadline. Homework and exam solutions will include the rubrics used by the graders.
• Please check that your exam grades are tabulated and recorded correctly. If you notice a mistake, please bring your graded work to one of the instructors or TAs; we will correct it immediately, no matter how long after the work has been returned. Jeff sometimes randomly insert arithmetic mistakes into midterm grades, so maybe you should actually pick up your midterm and look at it.
• 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.

• All regrade requests must include a brief written justification for the request. 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.
Regrade requests with poor or missing justifications will be denied. For exam regrade requests, write your explanation on a new sheet of paper and staple it to the front of your exam.
• 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.

We will determine final course grades as follows. (What do you expect from an algorithms course?)
1. 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) HwWeight = HWcount * 0.0125 ExAve = (sum of exam scores) / (max possible sum of exam scores) ExWeight = 1.0 - (HWcount * 0.0125) RawTotal = HwAve * HwWeight + ExAve * ExWeight 
• 20% ≤ Homework ≤ 30%: Each submitted homework problem is worth 1.25% of your raw total, up to a maximum of 30%.
• We will count a maximum of 24 problems, dropping the lowest scores if you submit more than 24 problems.
• We will count a minimum of 16 problems, adding zeros if you submit less than 16 problems.
• We expect to assign and grade about 30 homework problems during the semester.
• 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. We do not plan to drop any exam problems.
• Exceptions:
• 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.

2. Compute adjusted totals, which include extra credit points. Extra credit points are not necessarily worth the same as regular points.

3. 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 an exam or has a significant number of forgiven homework.

4. Determine letter-grade cutoffs from the undergraduate raw totals. 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, and each standard deviation is worth 3/4 of a letter grade. 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.

Jeff has only taught this class twice before, so we don't have enough information to give a "typical" grade distribution. Here are the distribution from the Spring 2015 pilot offering, which used the grading algorithm described above (except for the flexible homework percentage).

Semester Mean ± stdev Min pass #As #Bs #Cs #Ds #Fs
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

For comparison, here are rough statistics from the last five times Jeff taught the old version of CS 473. (See below for a possible explanation for the significant jump in 2010.) Here the mean was at the C+/B– boundary, and each standard deviation was a full letter grade.

Semester Mean ± stdev Min pass #As #Bs #Cs #Ds #Fs
Fall 2006 65% ± 11% 40% 25 26 23 13 5
Spring 2009 66% ± 13% 43% 21 25 26 14 2
Spring 2010 72% ± 12% 47% 24 34 35 16 3
Fall 2012 71% ± 13% 44% 36 51 42 33 2
Fall 2013 73% ± 11% 50% 49 58 55 19 2
Typical 72% ± 12% 47% 24% 30% 28% 15% 3%

Finally, here are rough statistics from Jeff's previous offerings of CS 374. Again, the mean was at the C+/B– boundary, and each standard deviation was a full letter grade. The average scores were significantly lower than in CS 473, but this reflects changes in grading standards (and the novelty of the course) more than the abilities of the students.

Semester Mean ± stdev Min pass #As #Bs #Cs #Ds #Fs
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

### Why I stopped dropping exam scores

I used to drop the lowest problem from each exam, but this policy had the counterintuitive effect of lowering students' performance, for behavioral rather than statistical reasons. Many students would just ignore one problem on each exam, but they often ignored the wrong problem.

In 2010, I switched to a policy of dropping the lowest three three exam problems across the entire semester. With this new policy, the strategy of ignoring one problem on each exam virtually disappeared; surprisingly, this lead to a significant improvement in overall averages! See the statistics above.

However, dropping the lowest exam scores actually lowers more grades than it raises, because of more subtle statistical effects. Dropping scores raises everyone's average (as a percentage of the maximum possible score), which means it also raises the mean. If you have mostly high scores with a few low outliers, dropping the low outliers raises your average. But if all scores to be about the same, dropping the lowest scores actually lowers your average relative to the rest of the class.

So now I just keep it simple. Every exam grade counts.

I drop homework scores for a different reason — sometimes students get sick or overwhelmed, or they need to travel, but the class is too big and complicated to reliably deal with extensions. Homework scores are typically high enough and their contribution to the final course grade is low enough to avoid the counterintuitive statistical effects. Or so I tell myself.