CS/ECE 374 A: Grading Policies

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


Graded work


Regrade requests


Final course grades

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
    

  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.

  4. Determine letter-grade 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.

  5. Compute final letter grades (for non-outliers) from adjusted totals.

  6. Adjust grades upwards at the instructor's whim.

Past grade distributions

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. Fall 2016 is the only semester Jeff has taught the course "at scale" in its current form.

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

Here are the grade distributions for all Jeff's previous offerings of CS 473. Here, only undergraduate grades are used to define the letter-grade cutoff; the mean is the center of the B range, and each standard deviation is worth 3/4 of a letter grade. Spring 2015 was a pilot offering, which did not use the current 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
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 similar statistics for 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. Almost every student in these classes was an undergraduate.

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 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 CS 374 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. (For example, 75% of the students in Spring 2017 CS 473 had a homework average of 89% or better, and 90% had a homework average of 75% or better.) Hopefully this flexibility helps students concentrate on using the homework for its intended purpose — practice and feedback with the course material — and not worry so much about homework grades.