Teaching design patterns by stealth

Stephen F. Weiss · ACM SIGCSE Bulletin · 2005

Learning design patterns is tough, even for seasoned programmers who have seen lots of programs and hence have a sense for constructs that tend to recur. Teaching design patterns to new programmers is even tougher. As Asher Sterkin states, "Teaching design patterns in isolation is similar to studying a foreign language with only a dictionary." [4]. It is far better to try to teach design patterns using killer examples to help motivate and illustrate each pattern. I propose here something a little more radical: to teach by stealth. With a small number of principles of good program design, and using a running case study that grows in complexity through the semester, we can, through class discussions and exercises, "invent" programming solutions that turn out to be some of the important design patterns. The official names and definitions of the pattern [2, 3] are revealed only after the fact, if at all.

Read the paper · More papers on PaperTik