Algorithms' Grading Policies


Grading Scheme:

The course is graded along two dimensions: participation and exams. Participation is worth a total of 60% of your grade and is calculated as follows: Exams are worth the other 40%, distributed as follows: Within the A to D range, my grading scheme will be relatively linear. However, if you fail to participate up to some minimum level, I reserve the right to assign you a non-passing grade. In particular: I've been told by some of my colleagues that, by allowing you to miss a certain number of homeworks, I am ensuring that you will do exactly that. Rather, as opposed to being "what's allowed", these thresholds are in place so that there is no ambiguity about the minimal level of participation expected if you wish to pass this course. On the other hand, because these homeworks are the most powerful learning tool that I use, it would be to your great benefit not to miss any. To encourage you to do all of the homeworks, I offer the following incentive: make a sincere effort on each and every homework that is assigned, and I will ignore your two lowest homework scores when calculating your overall homework percentage.


Maximizing Your Algorithms Experience

The main reason for such a steady and consistent workload is to keep you actively engaged in the material as we cover it. Why? There is a big difference between passively digesting material and actively exploring it. All of my grading policies -- the stress on attendance and homework -- are designed to foster such active exploration.

The best way to improve your grade is to aggressively maximize your learning on the homework sets. If you have a score below 85% or so (on average, excluding extra-credit), odds are you are not seeking help as much as you should. I am very happy to guide you as you work through your solutions, review them for correctness before you turn them in, etc. -- and this is a fabulous reason to come to office hours! To be blunt, students who achieve this level (or above) on homeworks tend to have a much deeper understanding of the material, and this is typically what is required to do well on the exams.

Another great way to improve your grade is to do extra credit (EC) problems. Since EC is added as a freebie onto the required part of the homework score, this grading will be especially strict. Again, using office hours to maximize the return you get on EC effort is encouraged.

You should also carefully read the homework solution sets passed out in class. These are an excellent learning tool, in much the same way that reading solid, elegant code is a great way to learn how to program. As an added benefit, if you can make suggestions about how to improve a given solution set (suppose you find a bug or come up with a simpler way of explaining something), I will award extra credit when you bring this to my attention.


Special Circumstances

I am intimately aware that, from time to time, emergencies, unforeseen circumstances -- or simply life at Mudd -- can take over. In such cases, you simply need to pro-actively seek me out as soon as possible so that we can determine what course of action is most reasonable. For example, if you are sick or have a special reason for a missing class, send me email in advance; otherwise, your attendance in class is expected. Similarly, if you need an extension on a homework for some reason, simply let me know beforehand and we'll make an arrangement for you to turn it in late (you would then also need to sit out during that portion of lecture where we discussed the solution).

What I do not look favorably upon is passive flakiness! If you simply don't show up, show up late, or fail to turn in an assignment, there are very few scenarios that will spark my sympathy; such events will be treated as "unexcused." (Okay, maybe my heart would bleed a bit if your grandmother was hit by a UFO as she was driving you to class and thus you couldn't inform me until later, but aside from an excuse like that...)