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 8 years.He has organized and been chair of the "Killer Examples" workshops at OOPSLA 2002, 2003, 2004 and 2005. 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:
Carl Alphonce and Blake Martin. (2005). Green: a pedagogically customizable round-tripping UML class diagram Eclipse plug-in. In the proceedings of The Eclipse Technology Exchange, a workshop at the 20th Annual Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA).
C. Alphonce and P. Ventura. (2003). Using graphics to support the teaching of fundamental object-orientation principles in CS1. Proceedings companion of the 18th Annual Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), ACM Press.
C. Alphonce and P. Ventura. (2003). QuickUML: A Tool to Support Iterative Design and Code Development. Proceedings companion of the 18th Annual Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), ACM Press.
C. Alphonce and P. Ventura. (2002). Object-orientation in CS1-CS2 by design. SIGCSE Bulletin 34:3, 70-74.
P. Ventura and C. Alphonce. (2001). 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, held at the 16th Annual Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA).
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 over 20 years and (introductory) object-oriented programming for over 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, 4th, 5th and 6th Annual Finnish/Baltic Sea Conference on Computer Science Education (2002-06). 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, and co-organizer of the workshop at OOPSLA 2005.
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.
Adrienne Decker 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. She was a co-organizer of the 2005 "Killer Examples" workshop.
Selected publications:
Decker A., Ventura, P., Egert, C. (2006) "Through the looking glass: Reflections on using undergraduate teaching assistants in CS1", 37th Annual SIGCSE Technical Symposium on Computer Science Education, Houston, TX, pp. 46—51.
Decker, A., Haydanek, S., and Egert, C. (2005) "When objects collide: Abstractions over common physics problems for capstone projects in CS1", The Journal of Computing Sciences in Colleges, Vol 21 Issue 2, pp. 12—18.
Ventura, P., Egert, C., and Decker, A. (2004) "Ancestor Worship in CS1: Reexamining the Introduction of Arrays", 2004 OOPSLA Educator's Symposium, Vancouver, BC, pp. 68—72.
Decker, A. (2003) "A Tale of Two Paradigms", The Journal of Computer Sciences in Colleges, Vol 19 Issue 2, pp. 238—246.
Bruck Trask has been architecting and implementing large-scale distributed real-time and embedded systems for many years. He has also been teaching OO, UML, Design Patterns, C++ and other classes and study groups intensively for the past 10 years. He has incorporated many design patterns into many real world systems. He is a regular speaker at industry conferences. He is currently the Director of Software and Lead Architect for PrismTech (www.prismtech.com)Selected publications:
The following document describes one of the major programs to which he and his colleague applied patterns heavily: T3_Paniscotti_Tutorial.pdf
Bruce Trask has also co-organized several Design Patterns study groups:
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.
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.
- A Pattern for Distributing Turn-Based Games. James Heliotis and Axel Schreiner (Rochester Institute of Technology)
- State Machine as a State Design Pattern: Expanding a Video Player Using ActionScript 3.0 and the ECMAScript R4 Standards. William B. Sanders (University of Hartford).
- Linked Lists can Exemplify OOD Principles. J Adrian Zimmer (Oklahoma School of Science and Mathematics)
(coming soon!)
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.
(nothing yet)
Pictures are being downloaded, albeit slowly over a wireless link. Check back often :-)