3rd "Killer Examples" for Design Patterns and Objects First
[Introduction]
[Call for Papers]
[Important Dates]
[Themes and Goals]
[Organizing Committee]
[Workshop Activities]
[Workshop Notes]
[Workshop Pictures]
[Poster Session Pictures]
Introduction
This web page describes a workshop at the OOPSLA 2004 conference, to
be held in Vancouver, British Columbia, CANADA on Sunday, October 24,
2004. Links to the final examples produced by the participants will
be posted at the end of this page. You can also have a look at the
2002 workshop page and
the
2003 workshop page.
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.
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-2004 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-2004 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.
Important dates
- September 3, 2004 - Revised deadline for submissions
- September 13, 2004 - Notification of acceptance
- September 16, 2004 - OOPSLA2004 early registration deadline
- October 24, 2004 [Sunday 8:30-12:00] - Workshop @ OOPSLA2004!
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 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 occurring'' and compelling examples to motivate
individual design patterns. The goals of the workshop are
- to elicit from the
participants ``the application [the example] that actually makes a
sustaining market [compelling argument] for a promising but
under-utilized technology [design patterns],''
- to bring together educators and developers to share their
respective design pattern and object-oriented expertise, and
- to provide a forum for discussion of techniques for presenting
these examples and the design patterns they showcase to students.
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
- Carl G. Alphonce (Chair), alphonce@cse.buffalo.edu, University at Buffalo
He organized and was chair of a special session entitled
``Teaching using off-the shelf on-line materials'' at SIGCSE 2001. He
was co-organizer of a session at the 2002 International Conference
on Engineering Education.
He organized and was chair of the first and second ``Killer Examples''
workshops at OOPSLA 2002 and OOPSLA 2003 and organized and was chair
of the ``Teaching Design Patterns in CS1/CS2'' workshop at SIGCSE
2004.
- Stephen Wong, swong@cs.rice.edu, Rice University
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 developed and implemented curriculum for an introductory
computer science course which utilized an innovative
objects-first-with-design-patterns methodology at Oberlin College.
He organized a workshop with Dung Nguyen, entitled ``Design Patterns:
Pedagogic Foundations of Object Orientation.'' He was a member of the
organizing committee of the ``Killer Examples'' workshops at OOPSLA
2002 and 2003, and also at the ``Teaching Design Patterns in CS1/CS2''
workshop at SIGCSE 2004.
- Dung "Zung" Nguyen, dxnguyen@cs.rice.edu, Rice University
Dung ``Zung'' Nguyen is a Lecturer at Rice University. He earned a
Ph.D. from the University of California, Berkley in 1981. He
co-developed the computer science and mathematics curriculum of
Pepperdine University to incorporate programming methodology, object
orientation and networking.
He organized a workshop with Stephen Wong, entitled ``Design Patterns:
Pedagogic Foundations of Object Orientation.'' He was a member of the
organizing committee of the ``Killer Examples'' workshops at OOPSLA
2002 and 2003, and also at the ``Teaching Design Patterns in CS1/CS2''
workshop at SIGCSE 2004.
- Philip R. Ventura, pventura@westga.edu, State University of West Georgia
Phil Ventura is an Assistant Professor at the State
University of West Georgia. He earned his Ph.D. from the University
at Buffalo in 2003. He has taught an object-oriented introduction to
computer science for six years, both in academic and industrial
settings.
He was a member of the organizing committee of the ``Killer Examples''
workshops at OOPSLA 2002 and 2003, and also at the ``Teaching Design
Patterns in CS1/CS2'' workshop at SIGCSE 2004.
Relevant organizer publications
C. Alphonce and P. Ventura. ``Using graphics to support the teaching
of fundamental object-orientation principles in CS1,'' 2003.
Proceedings companion of the 18th Annual Conference on Object-Oriented
Programming, Systems, Languages and Applications, ACM Press.
C. Alphonce and P. Ventura. ``QuickUML: A Tool to Support Iterative
Design and Code Development,'' 2003. Proceedings companion of the
18th Annual Conference on Object-Oriented Programming, Systems,
Languages and Applications, ACM Press.
C. Alphonce and P. Ventura, ``Object-orientation in CS1-CS2 by
design,'' 2002. SIGCSE Bulletin 34:3, 70-74.
D. Nguyen, M. Ricken and S. Wong, ``Design Patterns for Marine Biology
Simulation'', Proceedings of the 35th SIGCSE Technical Symposium,
March 2004, 467-471.
D. Nguyen and S. Wong, Design Patterns for Self-Balancing Trees. OOPSLA
2002 Educator Symposium, November 2002, 60-70.
D. Nguyen and S. Wong, ``Design Patterns for Games,'' Proceedings of
the 33rd SIGCSE Technical Symposium,
March 2002, 126-130.
D. Nguyen and S. Wong, ``OOP in Introductory CS: Better Students Through Abstraction''. Position paper presented at the Fifth
Workshop on Pedagogies and Tools for Assimilating Object Oriented
Concepts, October 2001.
D. Nguyen and S. Wong, ``Design Patterns for Sorting,'' SIGCSE Bulletin
33:1, March 2001, 263-267.
D. Nguyen and S. Wong, ``Design Patterns for Lazy Evaluation,'' SIGCSE
Bulletin 32:1, March 2000, 21-25.
D. Nguyen and S. Wong, ``Design Patterns for Decoupling Data Structures
and Algorithms,'' SIGCSE Bulletin 31:1, March 1999, 87-91.
P. Ventura and C. Alphonce, ``Teaching OOD and OOP through Java and
UML in CS1 and CS2''. Position paper presented at the Fifth
Workshop on Pedagogies and Tools for Assimilating Object Oriented
Concepts, October 2001.
Workshop attendance limit
We anticipate accepting three to four killer example submissions and
six to eight discussant submissions.
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
Organizers will produce and distribute materials related to the
session on CD ROM, or prior to the workshop via e-mail to all the
participants.
The workshop program will consist of a short introductory presentation
by the organizers, followed by presentations by the presenters of
their submissions. Here is a tentative schedule for events, assuming
we have 3 accepted presentations (the organizers are prepared to
contribute examples as well, to ensure there are three examples to
discuss):
- 8:30-8:35
- Introduction
- 8:35-9:50
- Presentations of examples
(With three examples, each gets 20 minutes for presentation and 5
minutes for questions. With four examples, each gets 15 minutes for presentation and 4
minutes for questions, and the coffee break will start at 9:55.)
- 10:10-11:10
- Small group discussion period
- 11:10-11:50
- General discussion period
- 11:50-12:00
- Workshop wrap-up (summary of findings, reactions)
A significant amount of time is set aside for face to face discussions
in small groups in several (3-4) rounds. Each discussion session will
involve analysis, evaluation and iterative improvement of the
submitted examples. In each of the four discussion blocks the
presenters break into groups, each facilitated by one of the
organizers. Participants are also to express the criteria they use to
judge the merits of an example.
During the general discussion period we will discuss our findings as a
single large group.
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 can be viewed at http://www.cse.buffalo.edu/faculty/alphonce/KillerExamples/OOPSLA2002/
and http://www.cse.buffalo.edu/faculty/alphonce/KillerExamples/OOPSLA2003/
Workshop Notes
The workshop had a full house this year! We were able to accomodate
some last-minute walk-ins in addition to the presenters and
discussants.
Accepted presenters:
Joe Hummel (Lake Forest College, USA)
Dominick Paniscotti (BAE Systems, USA)
Sylvia Stuurman (Open University, the Netherlands)
Gert Florijn (SERC, the Netherlands)
Bruce Trask (BAE Systems, USA)
Accepted discussants:
Joseph Bergin (Pace University, USA)
Paul Carter (University of British Columbia, Canada)
Michael Caspersen (University of Aarhus, Denmark)
Rick Gee (University College of the Okanagan, Canada)
Joseph Lang (University of Dayton, USA)
One of our presenters was unfortunately unable to attend
the workshop. Their initial submission is available here:
- Sylvia Stuurman (Open University, the Netherlands) and Gert
Florijn (SERC, the Netherlands)
A presentations program [doc]
Here are links to updated presentations:
- Joe Hummel, Dept. of Math & Computer Science, Lake Forest College
Generic Data Access in Microsoft .NET: a Compelling Example of
Applying Inheritance, Interfaces, and the Factory Method Design
Pattern
[ppt][zip]
- Dominick Paniscotti and Bruce Trask, BAE Systems
Applying the Extension Object Pattern to the Software Communications
Architecture
[pdf]
Workshop Pictures
Zung Nguyen and Stephen Wong just before the workshop
Joe Hummel presenting
Zung Nguyen presenting Sylvia Stuurman and Gert Florijn's submission
Dominick Paniscotti presenting
Audience pictures

Poster session pictures

Carl G. Alphonce
Last modified: Thu Mar 17 01:13:49 EST 2005