My homework and exam source code from Udacity's CS212 course ("Design of Computer Programs").
Excellent class! Nicely paced with very well chosen problems. Challenging at times, yet not impossible. In addition to being introduced to a lot of design meta-patterns, you inevitably pick up a lot of Norvig-fu along the way -- i.e., Prof. Norvig's gem-like style of coding: compact, idiomatic, always conceptually elegant.
I loved the graduated presentation of coding problems, where you're walked through the problem and build up the solution bit-by-bit. By giving you the general setup and boilerplate, it's possible to just focus on the critical part of the problem.