OOPSLA2002 Logo

"Killer Examples" for Design Patterns and Objects First


[Introduction] [Call for Papers] [Important Dates] [Themes and Goals] [Organizing Committee] [Workshop Activities] [Workshop Participants and Final Examples]

Introduction

This web page describes a workshop at the OOPSLA 2002 conference, held in Seattle, Washington, USA on November 4, 2002. Links to the final examples produced by the participants are posted at the end of this page. While the examples are a concrete product of the workshop, and you are welcome to browse them and incorporate them into your teaching, the most important parts of the workshop were the activities and discussions which took place leading up to and at the workshop itself.

Call for Papers

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.

If you are interested in participating in the workshop, you must submit a short proposal (no more than 4 pages) in plain text, as a Microsoft Word .doc file or in PDF as an e-mail attachment to alphonce@cse.buffalo.edu on or before September 19, 2002.

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 reviewed by at least two of the 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.


Important dates


Themes and Goals

killer app The application that actually makes a sustaining market for a promising but under-utilized technology. [The Jargon File]
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 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.

Faculty and software developers who have learned to program using a non object-oriented approach often view object orientation with scepticism. 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 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. [4]). 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.

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 occuring" 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] Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.

Organizing Committee

Organizer Backgrounds

  • Carl Alphonce is a Teaching Assistant Professor at the University at Buffalo, State University of New York. He earned a Ph.D. from the University of British Columbia in 2000. He has taught an object-oriented introduction to computer science for 3.5 years.
  • Dung "Zung" Nguyen is a Lecturer at Rice University. He earned a Ph.D. from the University of California, Berkley in 1981. He organized a workshop with Stephen Wong, entitled "Design Patterns: Pedagogic Foundations of Object Orientation." He co-developed the computer science and mathematics curriculum of Pepperdine University to incorporate programming methodology, object orientation and networking.
  • Philip Ventura is a Lecturer at the University at Buffalo, State University of New York. He is a doctoral candidate at the University at Buffalo, where he earned an M.Sc. in 2001. He has taught an object-oriented introduction to computer science for four years, both in academic and industrial settings.
  • Stephen Wong is a Lecturer at Rice University. He earned a Ph.D. from MIT in 1989. He has published several papers on applications of design patterns as well as the teaching of design patterns. He organized a workshop with Dung Nguyen, entitled "Design Patterns: Pedagogic Foundations of Object Orientation." He developed and implemented curriculum for an introductory computer science course which utilized an innovative objects-first-with-design-patterns methodology at Oberlin College.
  • Workshop attendance limit

    We anticipate having between 16 and 20 participants, including the four organizers. We will limit participation to a total of 20, should interest exceed that.

    Pre-workshop activities

    Prior to the workshop we expect participants to submit their contribution for posting on a web page. We will arrange some communication mechanism (likely a mailing list) 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.

    More information will be posted shortly.

    Planned workshop activities

    Organizers will produce and distribute materials related to the session.

    The morning program will consist of a short introductory presentation by the organizers, followed by presentations by the participants of their submissions. Since the workshop is intended to be interactive, much time will be set aside for discussions, both in small subgroups as well as with the whole set of workshop attendees.

    The afternoon program is set aside for face to face discussions in small groups, in several rounds. Each discussion session should involve analysis, evaluation and iterative improvement of the submitted examples. Discussants are also to express the criteria they use to judge the merits of an example.

    More information will be posted shortly.

    Post-workshop activities

    After the workshop participants will be expected to submit final versions of their examples for inclusion on a web site for general dissemination.

    The organizers will write a workshop report to be posted on the web site.

    Workshop schedule

    Time Activity
    8:30 - 8:40 Workshop welcome and introduction
    8:40 - 9:00 Presenter #1: Sendall
    Title: Gauging the Quality of Examples for Teaching Design Patterns
    9:00 - 9:20 Presenter #2: Nevison/Wells
    Title: Developing an Elevator Control System
    9:20 - 9:40 Presenter #3: Heliotis/Marshall
    Title: Configuration Puzzles
    9:40 - 10:00 Presenter #4: Skrien
    Title: Two "Killer" Examples for Design Patterns
    10:00 - 10:20 COFFEE BREAK #1
    10:20 - 10:40 Presenter #5: Rasala/Raab/Proulx
    Title: Java Power Tools: A "Killer Toolkit"
    10:40 - 11:00 Presenter #6: Wick
    Title: Kaleidoscope
    11:00 - 11:45 Small Group Discussion #1
    11:45 - 1:00 LUNCH (1hour, 15 minutes)
    1:00 - 1:45 Small Group Discussion #2
    1:45 - 2:30 Small Group Discussion #3
    2:30 - 3:00 Presentation Revisions
    3:00 - 3:15 COFFE BREAK #2
    3:15 - 3:30 Presenter #1: Sendall
    Title: Gauging the Quality of Examples for Teaching Design Patterns
    3:30 - 3:45 Presenter #2: Nevison/Wells
    Title: Developing an Elevator Control System
    3:45 - 4:00 Presenter #3: Heliotis/Marshall
    Title: Configuration Puzzles
    4:00 - 4:15 Presenter #4: Skrien
    Title: Two "Killer" Examples for Design Patterns
    4:15 - 4:30 Presenter #5: Rasala/Raab/Proulx
    Title: Java Power Tools: A "Killer Toolkit"
    4:30 - 4:45 Presenter #6: Wick
    Title: Kaleidoscope
    4:45 - 5:00 Workshop wrap-up
      

    Workshop Participants and Final Examples

    The following are the authors of the accepted submissions. The final versions of the examples can be accessed by following the hyperlinked titles.
    Carl G. Alphonce
    Last modified: Wed Mar 12 22:52:56 EST 2003