[ Background | Objectives | Contents | Course Material | Prerequisites | Instructor |Resources| Practical Information ]
Design patterns have revolutionized the building of object-oriented software. Flowing from the work of Christopher Alexander, an architect and mathematician, the idea of capturing expert knowledge in simple rules that can be used together to generate complex architectures, has also influenced many other fields. It is just beginning to influence education. Two developments in particular affect the teaching of Computer Science: the Elementary Patterns Working Group and the Pedagogical Patterns Project.
This course will examine the background of patterns, the breadth of the field, and more particularly, the use of patterns in the early part of the computer science curriculum. We will examine a number of existing works and will spend some time writing and critiquing simple patterns.
Patterns In Java by Mark Grand will be helpful background. The Gang of Four book would be an alternative. There will be extensive materials on the web.
You should be familiar with object-oriented programming, including dynamic polymorphism. I will use Java as a means of expressing implementations, so a reading knowledge of it or a related language would be helpful. Brad Appleton's Intro. page is worth a look.
Dr. Joseph Bergin is Professor of Computer Science at Pace University in New York City, USA. He has been a faculty member for 28 years and has been involved in object-oriented "stuff" for fifteen. He is one of the core members of the Elementary Patterns working group and a frequent author of Pedagogical Patterns. He was the lead author of Karel++: A Gentle Introduction to the Art of Object-Oriented Programming and has authored two other books.
Many resources on patterns can be found here.