Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News How Should We Teach Design Patterns?

How Should We Teach Design Patterns?

The 5th "Killer Examples" for Design Patterns and Objects First workshop will take place at OOPSLA2006 (Object-Oriented Programming, Systems, Languages & Applications) in October, in Portland, Oregon.  The goal of this workshop is to elicit, share, analyze and critique killer examples from educators and developers.

One question to be addressed is: how to present design patterns and object oriented concepts in a grounded manner so that their purpose and applicability are plainly grasped by a beginning student.  It is important that teams be able to pass on knowledge about patterns, as it provides a common architectural vocabulary for teams, and ensures consistency in coding style. These things can stave off the codebase degradation which usually occurs over time, particularly when systematic refactoring is applied

Read more about the themes of this year's workshop on their website.

Important dates for this conference:
  • September 4, 2006 - Deadline for submissions
  • September 11, 2006 - Notification of acceptance
  • September 14, 2006 - OOPSLA 2006 early registration deadline
  • October 22, 2006 - Workshop @ OOPSLA2006
Pre-workshop activities encourage interaction and refinement of examples prior to the workshop.  Previous workshops were held at OOPSLA'05, OOPSLA'04, OOPSLA'03 and OOPSLA'02.


Patterns were a highly effective step towards tackling the twin software development challenges of: change and complexity.  They introduce a level of indirection that allow teams to cordon off complexity and change so that it can be managed.

Many developers agree that it is difficult to manage the sheer complexity of their systems and they are looking to new patterns and approaches to allow software to "grow up" out of the craftsman state and into a more industrialized state.  Developers today are banding together to formalize the use of patterns either via Generative Approaches, Model Driven Approaches or Software Factory Approaches.

Read more on patterns.

Rate this Article