Teaching objects early and design patterns in Java using case studies
Chris Nevison, Barbara L. Wells · ACM SIGCSE Bulletin · 2003
In order to teach object-oriented design and programming in introductory computer science it is imperative to teach objects from the very beginning of the course. The use of interacting objects is motivated by examples with an inherent complexity. We suggest that a case study approach to teaching object-oriented programming can provide a context with simplicity within complexity, so that simple versions of the case study program or simple pieces of a more complex program can be used to teach concepts at an introductory level. A case study provides a setting where a progression of successively more sophisticated programs can be developed to introduce standard topics of the introductory course within an increasingly familiar context. At the same time, the design of these programs can illustrate some of the fundamental principles of object-oriented design as embodied in basic design patterns.