https://www.coursera.org/course/programdesign
Primary LanguageRacket
Introduction to systematic program design
8 week course