InfoQ

News

How Should We Teach Design Patterns?

Posted by Deborah Hartmann on Jun 26, 2006 07:42 AM

Community
Architecture,
Agile
Topics
Design
Tags
Teaching,
Conferences,
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.


Background:

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.

Related Sponsor

VersionOne is recognized by Agile practitioners as the leader in Agile project management tools. Companies such as Adobe, BBC, CNN, Dow, HP, IBM, Sony and 3M have turned to VersionOne to help deliver greater value to their customers.

No comments

Reply

Exclusive Content

VMware Infrastructure 3 Book Excerpt and Author Interview

VMware Infrastructure 3: Advanced Technical Design Guide and Advanced Operations Guide provides a wealth of practical insights into setting up virtualization in todays corporate environments.

Architectures of extraordinarily large, self-sustaining systems

Can a system that is so large it cannot be comprehended be "designed" in a conventional sense? The foundations of computing are about to change. In this talk, Richard P. Gabriel explores why and how.

Using Ruby Fibers for Async I/O: NeverBlock and Revactor

Ruby 1.9's Fibers and non-blocking I/O are getting more attention - we talked to Mohammad A. Ali of the NeverBlock project and Tony Arcieri of the Revactor project.

Agile and Beyond - The Power of Aspirational Teams

Tim Mackinnon talks about the aspirations behind the Agile principles and practices, the desire to become efficient, to write quality code which does not end up being thrown away.

Concurrency: Past and Present

Brian Goetz discusses the difficulties of creating multithreaded programs correctly, incorrect synchronization, race conditions, deadlock, STM, concurrency, alternatives to threads, Erlang, Scala.

ActionScript 3 for Java Programmers

Often the hardest part of changing technologies is language syntax differences. This new article provides Java developers with a transition guide to Actionscript which forms the foundation of Flex.

Neal Ford On Programming Languages and Platforms

Neal Ford talks about having multiple languages running on one of the two major platforms: Java and .NET. He also presents the advantages offered by Ruby compared to static languages like Java or C#.

Future Directions for Agile

David Anderson talks about the history of Agile, the current status of it and his vision for the future. The role of Agile consists in finding ways to implement its principles.