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.
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.
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.
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
Carl Alphonce is Research Assistant Professor and 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 almost 7 years.He has organized and been chair of the first, second and third ``Killer Examples'' workshops at OOPSLA 2002, 2003 and 2004. He organized and was chair of the ``Teaching Design Patterns in CS1/CS2'' workshop at SIGCSE 2004. 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.
Selected 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.
Stephen Wong is a Lecturer at Rice University. He earned a Ph.D. from MIT in 1989. He developed and implemented curriculum for an introductory computer science course which utilized an innovative objects-first-with-design-patterns methodology at Oberlin College in 1998, and has taught object-orientation ever since. He has organized several workshops:He has also published numerous papers on applications of design patterns as well as the teaching of design patterns.
- ``Design Patterns: Pedagogic Foundations of Object Orientation.'' (with Dung Nguyen)
- ``Killer Examples'' workshops at OOPSLA 2002, 2003 and 2004 (member of organizing committee)
- ``Teaching Design Patterns in CS1/CS2'' workshop at SIGCSE 2004 (member of organizing committee)
- ``Taming Java in CS1 with Language Levels'' workshop, SIGCSE 2005 (with Dung Nguyen and Robert Cartwright)
- ``TeachJava Workshops'' 2002, 2003 and 2004, (with Dung Nguyen and Robert Cartwright)
Selected publications:
D. Nguyen and S. Wong, ``Design Patterns for Sorting,'' SIGCSE Bulletin 33:1, March 2001, 263-267.
Michael E. Caspersen is an Academic Researcher and Director of IT University West at University of Aarhus, Denmark. He has a B.Sc. in computer science and mathematics from University of Aarhus (1984) and a M.Sc. in computer science from University of Aarhus (1987). He has taught (introductory) programming for 20 years and (introductory) object-oriented programming for 15 years.He organized and was chair of ITiCSE 2002 conference in Aarhus, and he has been on the program committee of ITiCSE 2000, ITiCSE 2001, and the 2nd, 3rd, and 4th Annual Finnish/Baltic Sea Conference on Computer Science Education (2002-04). Together with Michael Kölling he organized and held a full-day workshop entitled ``Teaching Introductory Object-Oriented Programming -- Dangers, Traps, and a Road Map'' at SIGCSE 2001, and a similar tutorial at ITiCSE 2001. Together with Jens Bennedsen he organized and held a workshop entitled ``Model-Driven Programming Education'' at SIGCSE 2005. He was a participant of two previous ``Killer Examples'' workshops, at OOPSLA 2003 and 2004.
He has published more than a dozen papers on computer science education, including papers on how to teach frameworks and design patterns early in the curriculum. He is also author of a two-volume textbook on programming (in Danish, 1993).
Selected publications:
M. E. Caspersen and H. B. Christensen, ``The Need for Killer Examples for Object-Oriented Frameworks''. In Proceedings of the 18th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2003, Anaheim, California, USA, 26-30 October 2003.
M. E. Caspersen and H. B. Christensen, ``Frameworks in CS1 -- a Different Way of Introducing Event-driven Programming''. In Proceedings of the seventh Annual Conference on Innovation and Technology in Computer Science Education, ITiCSE 2002, Aarhus, Denmark, 24-26 June 2002.
M. E. Caspersen, ``A C++ Framework for Active Objects in Embedded Real-Time Systems -- bridging the gap between modeling and implementation'', In Technology of Object-Oriented Languages and Systems, TOOLS 32, Melbourne, Australia, pp. 52-65. IEEE Computer Society, 1999. ISBN 0-7695-0462-0.
is a Lecturer at the University at Buffalo, State University of New York. She holds a Master's Degree in Computer Science and Engineering from the University at Buffalo, and is currently working on the completion of her Ph.D., which is focused on assessment issues in introductory computer science courses.She has taught an object-oriented introduction to computer science at UB since 2001 and has been involved with the continued improvement of the curriculum in those courses as well as the creation of assignments that blend the introductory material with key object-oriented concepts and especially with the use of design patterns.
Selected publications:
A. Decker (2003) ``A Tale of Two Paradigms'', The Journal of Computer Sciences in Colleges, Vol 19 Issue 2, pp. 238-246.
P. Ventura, C. Egert and A. Decker, (2004) ``Ancestor Worship in CS1: Reexamining the Introduction of Arrays'', 2004 OOPSLA Educator's Symposium, Vancouver, BC, pp. 68-72.
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.
Example presenters
- Design Patterns in JDK Collections
- Christine Bouamalay
- Killer Lab: Flow Simulation and Lead Poisoning Study
- James Heliotis, Computer Science, Rochester Institute of Technology
- Carl Lutzer, Mathematics, Rochester Institute of Technology
- Message Oriented Middleware Cache Pattern - a Pattern in a SOA Environment
- Fang Yan Rao, IBM China Reserach Laboratory
- Ru Fang, IBM China Reserach Laboratory
- Zhong Tian, IBM China Reserach Laboratory
- Harini Srinivasan, IBM Software Group
- Eoin Lane, IBM Software Group
- Lei He, IBM Software Group
- Tim Banks, IBM Software Group
- Using Design Patterns to Help Test Your Clases and Functions
- Bruce Trask, PrismTech
- Angel Roman, PrismTech
Discussants
- Paul Adamczyk, University of Illinois
- Jürgen Börstler, Umeå University
- Martha Kosa,Tennessee Technological University
The discussion periods will center around understanding what makes a particular example a ``killer'', and how the example could be improved or adapted for use at different institutions.
- 8:30 Introduction
- 8:40 Using Design Patterns to Help Test Your Clases and Functions   [submission]   [presentation]
- Angel Roman, Vikram Bhanot
- 9:20 Message Oriented Middleware Cache Pattern - a Pattern in a SOA Environment   [submission]   [presentation]
- Fang Yan Rao, Ru Fang, Zhong Tian
- 10:00 Coffee break
- 10:30 Killer Lab: Flow Simulation and Lead Poisoning Study   [submission]   [presentation]
- James Heliotis
- 11:10 Design Patterns in JDK Collections   [submission]   [presentation]
- Christine Bouamalay
- 11:50 Morning wrap-up, afternoon schedule
- 12:00 Lunch
- 1:00 Small group discussions, round 1
Using Design Patterns to Help Test Your Clases and Functions   [submission]   [presentation]
Message Oriented Middleware Cache Pattern - a Pattern in a SOA Environment   [submission]   [presentation]
Discussion faciliators: Adrienne Decker and Carl AlphonceKiller Lab: Flow Simulation and Lead Poisoning Study   [submission]   [presentation]
Design Patterns in JDK Collections   [submission]   [presentation]
Discussion facilitator: Michael Caspersen- 1:40 Small group discussions, round 2
Using Design Patterns to Help Test Your Clases and Functions   [submission]   [presentation]
Killer Lab: Flow Simulation and Lead Poisoning Study   [submission]   [presentation]
Discussion faciliator: Adrienne DeckerMessage Oriented Middleware Cache Pattern - a Pattern in a SOA Environment   [submission]   [presentation]
Design Patterns in JDK Collections   [submission]   [presentation]
Discussion facilitators: Michael Caspersen and Carl Alphonce- 2:20 Small group discussions, round 3
Using Design Patterns to Help Test Your Clases and Functions   [submission]   [presentation]
Design Patterns in JDK Collections   [submission]   [presentation]
Discussion faciliators: Adrienne Decker and Michael CaspersenMessage Oriented Middleware Cache Pattern - a Pattern in a SOA Environment   [submission]   [presentation]
Killer Lab: Flow Simulation and Lead Poisoning Study   [submission]   [presentation]
Discussion facilitator: Carl Alphonce- 3:00 Coffee break
- 3:30 Poster materials preparation
- 4:20 Poster material presentation
- 4:50 Workshop wrap-up
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 will 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
The presentations are now linked from the schedule above. You can download a copy of the poster.
[Intro] [How to participate] [Important Dates] [Themes and Goals] [Committee] [Activities] [Notes] [Pictures]
Workshop Pictures (click on picture to download full-sized version)
All ready!
![]()
Listing attentively
![]()
![]()
![]()
![]()
![]()
Vikram Bhanot presenting
![]()
Christine Bouamalay presenting
![]()
![]()
James Heliotis presenting
![]()
The workshop poster takes shape
![]()
Afternoon breakout discussion sessions
![]()
![]()
![]()
![]()
Carl G. Alphonce Last modified: Tue Nov 22 18:35:36 EST 2005