OOPSLA2006 Logo

5th "Killer Examples" for Design Patterns


[Intro] [How to participate] [Important Dates] [Themes and Goals] [Committee] [Activities] [Notes] [Pictures]

Introduction

This web page describes a workshop at the OOPSLA 2006 conference, to be held in Portland, Oregon, on Sunday, October 22, 2006. Links to the final examples produced by the participants will be posted at the end of this page. Feel free to look at previous years' workshop sites:
2005 workshop    2004 workshop    2003 workshop    2002 workshop


[Intro] [How to participate] [Important Dates] [Themes and Goals] [Committee] [Activities] [Notes] [Pictures]

Call for Papers and Participation

The Jargon File defines a killer app as an "application that actually makes a sustaining market for a promising but under-utilized technology." A killer example provides clear and compelling motivation for some concept. The theme of this workshop is killer examples for design patterns and object-oriented concepts.

Today's computer science students are tomorrow's software developers. They will be expected to design and implement solutions to complex problems. Object orientation is an excellent approach to managing the complexity of large, real-world software systems. Design patterns are an essential part of an object oriented approach to managing complexity. We believe killer examples can motivate students and pique their curiosity about both.

The goal of this workshop is to elicit, share, analyze and critique killer examples from educators and developers. Pre-workshop activities encourage interaction and refinement of examples prior to the workshop.

How to participate

There are two ways to participate in the workshop. You can either contribute a killer example, or you may apply to attend as a discussant.

Contributing a Killer Example

If you wish to contribute a killer example you must submit a short proposal (4 to 6 pages) in plain text, as a Microsoft Word .doc file or in PDF as an e-mail attachment to alphonce@cse.buffalo.edu with subject line "OOPSLA-2006 Workshop Killer Example Submission" on or before the submission deadline given below. You must submit two versions - one anonymous and one with author names and affiliations. Avoid self-references, if any, in the text of the submission.

Your submission must clearly identify an example and why you believe it is a "killer example", as described in the Themes and Goals section below.

Each submission will be anonymously reviewed by at least three members of the organizing committee. The decision of the organizing committee is final.

If your submission is accepted, you (or one of your co-authors) is expected to register for the workshop and attend.

Participating as a discussant

If you wish to attend the workshop as a discussant you must submit a short statement of interest (a manifesto, if you will) (1 to 2 pages) in plain text, as a Microsoft Word .doc file or in PDF as an e-mail attachment to alphonce@cse.buffalo.edu with subject line "OOPSLA-2006 Workshop Discussant Submission" on or before the submission deadline given below. You must submit two versions - one anonymous and one with author names and affiliations. Avoid self-references, if any, in the text of the submission.

Your submission must clearly state why you are interested in attending the workshop, what background you have (e.g. are you a developer or an educator), your design pattern experience. We seek the participation of people with a broad spectrum of backgrounds, so don't hesitate to submit an application because you think you have too little/too much experience to contribute.

Each submission will be anonymously reviewed by at least three members of the organizing committee. The decision of the organizing committee is final.

If your submission is accepted, you (or one of your co-authors) is expected to register for the workshop and attend.


[Intro] [How to participate] [Important Dates] [Themes and Goals] [Committee] [Activities] [Notes] [Pictures]

Important dates


[Intro] [How to participate] [Important Dates] [Themes and Goals] [Committee] [Activities] [Notes] [Pictures]

Themes and Goals

The theme of this workshop is "killer examples" for design patterns and objects-first. We take these to be examples which provide clear and compelling motivation for a particular design pattern or object oriented concept.

Today's computer science students are tomorrow's software developers. They will design and implement solutions to complex problems. Object orientation is an excellent approach to managing the complexity of large, real-world software systems. Design patterns are an essential part of an object oriented approach to managing complexity. Our experience teaching CS1/CS2 has convinced us that it is possible and desirable to teach object orientation from a design patterns perspective.

Faculty and software developers who have learned to program using a non object-oriented approach often view object orientation with skepticism. Some find it difficult to see the benefits that object orientation offers. Others recognize that object orientation has great promise but feel that both object orientation and design patterns are too complex and too abstract for beginners to learn.

The objects-first approach is recognized in CC2001 [0] as a legitimate entry point to the computer science curriculum. There are compelling arguments [1,2,3] for the inclusion of design patterns at an early stage of the computer science curriculum, even in an objects-first CS1 course. Our collective experience teaching CS1 and CS2 has convinced us that it is possible and desirable to teach object orientation from a design patterns perspective.

A 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. There is certainly no dearth of materials expounding the wonders of design patterns (e.g. [5]). These materials are, for the most part, directed at those with considerable experience with object orientation to start with. Many object-oriented programming texts lack original compelling and grounded examples to serve as motivation for fundamental object oriented concepts. An excellent text which suffers this fate is [4]: its presentation of design patterns is tied to the GOF examples and applications within the JFC/Swing classes. More variety and inspiration would surely help students understand the significance and practical usefulness of design patterns.

In [2], the authors conclude by noting that since "Design patterns and object orientation do not always scale down, care in choosing examples will help ensure that educators and students appreciate the power of design patterns."

It is the aim of this workshop is to address this issue. We believe there are "naturally occurring" and compelling examples to motivate individual design patterns. The goals of the workshop are

References

[0] Computing Curricula 2001, Computer Science Volume.
[1] Dung Nguyen and Stephen Wong. Design Patterns: Pedagogical Foundations For Object-Orientation. A workshop presented at University of Wisconsin System Computer Science Education Workshop, University of Wisconsin, October 13, 2000.
[2] Owen Astrachan. OO Overkill: When Simple is Better than Not. Appeared in the Proceedings of the Thirty Second SIGCSE Technical Symposium on Computer Science Education, pages 302-306. 2001.
[3] Owen Astrachan, Geoffrey Berrt, Landon Cox and Garrett Mitchener. Design Patterns: An Essential Component of CS Curricula. Appeared in the Proceedings of the Twenty Ninth SIGCSE Technical Symposium on Computer Science Education, pages 153-160. 1998.
[4] Cay Horstmann. Object-Oriented Design & Patterns. John Wiley & Sons, Inc., 2004.
[5] Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.


[Intro] [How to participate] [Important Dates] [Themes and Goals] [Committee] [Activities] [Notes] [Pictures]

Organizing Committee

Workshop attendance limit

We encourage submissions to participate as presenters and as discussants. A presenter submitted a "Killer Example'', while a discussant submitted a statement of interest. Prior to the workshop everyone (presenters, discussants and organizers) communicate via a listserv mailing list, discussing drafts of the examples to be presented at the workshop. At the workshop presenters present their examples and participate in the discussion of other examples, while discussants participate in the discussions.

We anticipate accepting three to five killer example submissions and six to ten discussant submissions. We will allowed walk-ins at the workshop, as long as there is capacity in the room. Last year we reached the room capacity of about 20 - we had expected about 12 participants.

We propose to structure this year's workshop like last year's, with presenters and discussants, as well as walk-ins. The main distinction between a discussant and a walk-in is that discussants are guaranteed place in the workshop, and can participate in the pre-workshop activities.


[Intro] [How to participate] [Important Dates] [Themes and Goals] [Committee] [Activities] [Notes] [Pictures]

Workshop activities

Workshop preparation (pre-workshop activities)

Prior to the workshop we expect participants to submit their contribution for posting on a web page. As with previous workshops, a listserv e-mail forum will be set up to allow for pre-workshop discussion of the posted proposals. We will invite participants to discuss the problems, their solutions, as well as the contributor's justification for the example. We expect the discussion to cover the effectiveness of the submitted examples and what makes examples effective (or ineffective). Constructive feedback to improve submitted examples will also be welcome, so that the workshop discussions can focus on more substantial issues.

Planned workshop activities

This is a full-day workshop. The workshop program will consist of a short introductory presentation by the organizers, followed by presentations by the presenters of their submissions.

Accepted participants

The following example submissions have been accepted for presentation at the workshop: A full participant list (including discussant) will be posted after the workshop. If you are interested in participating in the workshop discussions, please send an e-mail to alphonce@cse.buffalo.edu.

Workshop schedule

(coming soon!)

Post-workshop activities

After the workshop those participants who submitted killer examples are expected to submit final versions of their examples for inclusion on a web site for general dissemination. Web sites from previous years' workshops are linked from: http://www.cse.buffalo.edu/faculty/alphonce/KillerExamples/

We have in the past presented posters of the workshop at the conference poster session, and hope to do so again. The workshop poster is halfway prepared ahead of time, with general information about the workshop and its presentations, but with open space for workshop outcomes, to be filled in during and after the workshop.


[Intro] [How to participate] [Important Dates] [Themes and Goals] [Committee] [Activities] [Notes] [Pictures]

Workshop Notes

(nothing yet)


[Intro] [How to participate] [Important Dates] [Themes and Goals] [Committee] [Activities] [Notes] [Pictures]

Workshop Pictures

Pictures are being downloaded, albeit slowly over a wireless link. Check back often :-)

Carl G. Alphonce
Last modified: Sat Sep 30 17:03:38 EDT 2006