Zachary Kelley
Entire course is cumulative, but its programming, so you have to know everything before to get what you are doing now.  The professor understands how hard this course is so he gives more than one opportunity to fix old work.

Final exam was a take home project.  The actual final exam period was actually your third chance to fix your final project.