Using patterns to teach software subsystem design
Michael J. Lutz · 2003
In 1996, the Rochester Institute of Technology initiated the first undergraduate software engineering program in the United States. Building on a foundation in mathematics, natural science, computer science, and computer engineering, the program aims to graduate a new type of engineer: one who can approach software system development with the disciplined, methodical, analytic approach characteristic of traditional engineering discipline. The first course specifically developed for software engineering is titled "Engineering of Software Subsystems". The goal of this course is to raise the level of design discourse above that of simple functions or object classes. A key strategic decision in the development of this course was the adoption of "design patterns" as the central organizing thread. This paper reports on the effects the authors have observed as a result.