If you have any questions or concerns, please ask in lecture, during office hours, or on Piazza.
Graded work

Quizzes are graded automatically by Moodle, and you are allowed unlimited number of attempts at the quiz. Quizzes are meant entirely for review and selfstudy; they will not count toward your final course grade.

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 two weeks of submission.

Exams are graded by the instructors and graduate TAs. Graded exams will be returned in lab sections. Under normal circumstances, all exams should graded and returned within two weeks.

Quiz solutions will be posted immediately after the quiz deadline. 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.
Regrade requests

Please check that your 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.

Please doublecheck 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.

If you do not understand your grade on a homework or exam problem, please discuss your grade with one of the instructors or TAs during office hours. After that discussion, if you still believe that your work has been graded incorrectly, please request a regrade.

All regrade requests must be submitted in writing at most two weeks after the graded work is returned. Except for arithmetic/recording mistakes, no grades will be changed in the student's presence, and late regrade requests will be ignored. Homework regrades can be requested within Gradescope. To request an exam regrade, give your exam to one of the TAs.

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 scheet 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.

If you submit a regrade request, we will regrade the submitted problem from scratch. The TAs will regrade homework problems; Alexandra and Jeff will regrade exam problems. Your grade may go down.

We will readily admit, apologize for, and correct our mistakes if you have been graded unfairly. However, please remember that "unfairly" means your grade is inconsistent with the published grading rubric, or that you were graded more harshly than other students, not just that you think the rubric itself is too harsh. Please also keep in mind that each homework point is worth approximately 0.1% of your final course grade.
Final course grades
We will determine final course grades as follows.
(What do you expect from an algorithms course?)
 Compute raw totals from homework and exam scores, excluding extra credit. Course work is weighted as follows.

20% ≤ Homework ≤ 30%:
Each submitted homework problem is worth 1.25% of your raw total, up to a maximum of 30%.

If you submit more than 24 homework problems, we keep only your top 24 problem scores. (We expect to assign and grade either 11 or 12 homework sets, each with three problems, so if you submit everything, this is equivalent to dropping three or four complete homework sets.)

If you submit between 16 and 24 homework problems, each problem score is worth 1.25% of your grade.

We will count a minimum of 16 homework scores. If you submit less than 16 homework problems, you will be given enough zeros to bring your total number of homework scores up to 16. Then each homework score is worth 1.25% of your grade. (However, if you submit that little homework, you are very likely to fail the exams.)

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 fewer than 24 homework problems, your exams are given correspoondingly higher weight. We do not plan to drop any exam problems.

Exceptions:
 Forgiven midterm exams will be treated as if they did not exist; the other exams will be more weight in the final grade calculation.
 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 at both ends of the curve.
 Anyone with an adjusted total over 90% automatically gets an A+. This rule typically applies to the top 2–3% of the class.
 We reserve the right to give any student meeting at least one of the following conditions an automatic F:
 Adjusted total below 33%
 Adjusted exam average below 25%
 Submitted less than half of the homework
This rule typically applies to the bottom 23% of the class. These are not the only ways to fail!
 Determine lettergrade cutoffs from the raw totals. Outliers are excluded from the cutoff computation to avoid unfairly skewing the curve. The mean is a borderline B–/C+, and each standard deviation is worth one full letter grade. For example, the B+/B cutoff is 2/3 standard deviations above the mean, and the D/D– cutoff is 5/3 standard deviations below the mean.
 Compute final letter grades (for nonoutliers) from adjusted totals.
 Adjust grades upwards at the instructor's whim.
Past grade distributions
Here are grade distributions from Jeff's previous offerings of CS 374, computed using the algorithm described above (with minor differences). These were the first two pilot offerings of the class, with significantly smaller enrollment than the current 400student steady state, so grade distributions may not be typical.
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

For comparison, here are grade distributions from Jeff's previous offerings of the new CS 473. Here, only undergraduate grades are used to define the lettergrade cutoff; the mean is the center of the B range, and each standard deviation is worth 3/4 of a letter grade.
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

Also for comparison, here are rough statistics from the last several times Jeff taught the old version of CS 473. (See below for a possible explanation for the significant jump in 2010.) These average scores are significantly higher than the average scores for CS 374; the drop reflects the novelty of CS 374 and changes in grading standards more than the abilities of the students.
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%

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 we 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.