Over the last few years, a number of computer science (CS) educators have begun to incorporate software patterns into their undergraduate CS courses. Ideas similar to patterns can be traced back to the work of Soloway [14] and Linn and Clancy [8], but consideration of patterns accelerated following the appearance of the pioneering book Design Patterns [5]. The so-called "Gang-of-Four" book documented patterns of object-oriented (OO) design at a time when many CS educators were struggling to master the discipline. Encouraged by the benefits they realized from studying design patterns, some educators began to teach design patterns in their OO courses [6, 1, 10, 13, 3].
CS educators have also begun to document patterns in other types of software and to use the patterns in their courses. Patterns and pattern languages have been written on the subjects of recursion [15], loops [2], OO design [4], "lambda" objects [12], simulating OOP in a functional language [16], and concurrent programming [7]. Other educators are using patterns to organize sections of textbooks [9] and as semester-long themes [11]. In an effort to coordinate some of these explorations and to begin to build a community of support, CS educators have gathered at ChiliPLoP the last two years for the Hot Topic workshops titled Elementary Patterns and their Role in Instruction (1998 and 1999).
However, the prevalence of patterns in undergraduate CS courses does not mean that educators have solved or even come to understand fully the problems created by introducing patterns and pattern languages into the classroom. Merely adding patterns to the course outline does not take advantage of patterns' unique advantages as a teaching tool. How best to integrate patterns into the course's meetings, homework, and exams is not well known. And, even when educators have an idea of how they would like to use patterns in their courses, they face a second dilemma: the need for appropriate patterns and pattern languages for teaching their course content.
To this end, the original ChiliPLoP elementary patterns group proposed and conducted two half-day workshops at SIGCSE'99. These workshops were collaborative sessions addressing two broad issues in this vein:
These workshops were, in the estimation of the organizers, very successful. We introduced a number of CS educators to the ideas of elementary patterns, exposed them to the pattern form and to specific patterns for use in their classrooms, and exposed them to the reading and writing culture of the patterns community. Discussions at the workshop ranged wide and deep, and even we organizers learned more about writing patterns and using them in the classroom. On a more objective note, the Friday evening workshop was well-attended, to the capacity of our room, while the Sunday morning workshop drew only four participants in addition to the six organizers. Participants rated both workshops highly on the evaluation forms submitted to conference officials.
We propose to offer one workshop at SIGCSE 2000 along the same lines as last year's workshops. Our goal is again for the workshop to have an immediate effect on participants' ability to use patterns in their own courses.
Prospective participants will be asked to submit one of the following:
The workshop will consist of readers workshops of existing patterns and pattern languages in use in undergraduate CS courses, discussion of the teaching features of patterns, and collaborative organization of course modules around patterns.
We hope that this process will lead to deeper understanding of patterns' potential benefits and costs, yield practical advice for course designers, and allow us to make progress toward better use of patterns in courses.
Following SIGCSE, we will prepare a report summarizing the workshop and make it available to CS educators via our web repository, along with any other materials that result from the workshops. We will also endeavor to continue working on this issues after the conference has ended.
Primary Workshop Themes
Proposed Agenda
Introduction and background 15 minutes Readers workshops (2 @ 30 minutes each) 60 minutes Working sessions on course organization 60 minutes Presentation and discussion of results 30 minutes Strategies for future work 15 minutes
We are the six participants from the original ChiliPLoP'98 Hot Topic workshop Elementary Patterns and their Role in Instruction. Among us, we have written several undergraduate CS textbooks, including two of the more popular CS1 books based on C++; we have organized birds-of-a-feather sessions on elementary patterns at previous SIGCSE, OOPSLA, and Pattern Languages conferences; and we have published more than a half dozen papers on patterns and pattern languages, all of which document elementary patterns in use in our classrooms.