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.
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
More information will be posted shortly.
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.
The organizers will write a workshop report to be posted on the web site.
| 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 |