Over the years there have been many papers supporting the use of design patterns in a traditional data structures course. In support of this approach, we present an evolutionary sequence of five programming exercises, concentrating on problems that require the use of six different design patterns in the context of a data structures course. Included with these exercises are brief descriptions, code segments, and teaching tips to demonstrate the simplicity and power of design patterns to teach object-oriented design principles. UML class diagrams are used to visualize and supplement the discussions.