Elementary and Pedagogical Patterns

A SIGCSE 2001 Workshop Proposal


Abstract

This workshop will introduce participants to patterns and focus on two types of patterns of particular interest to educators: elementary patterns and pedagogical patterns. Using patterns to document best practices of novice programming and best practices of computer science instruction allows people to share their expertise more effectively with other educators and with students.


Introduction

This workshop will introduce participants to patterns and focus on two types of patterns of particular interest to educators: elementary patterns and pedagogical patterns. Software patterns first achieved prominence in the object-oriented community in the mid-1990s in the form of design patterns [10], which constitute a critical link in transforming naïve object-oriented designs into sophisticated designs. Computer science educators quickly recognized their benefits in teaching object-oriented design [11, 2, 13, 15, 7]. Work on elementary patterns and pedagogical patterns grew out of this experience.

Elementary patterns are an attempt to bring the benefits of software patterns to novices in computer science. Building on earlier work that sought to document programming knowledge [16, 12], CS educators have begun to document important computer science concepts as patterns and pattern languages, including recursion [17], loops [3], selections [4], OO design [6, 8], nameless functions [14], and simulating OOP in a functional language [18]. The benefits of casting these traditional topics as patterns include (a) a greater emphasis on stating explicitly the trade-offs to be considered when choosing design and programming constructs and (b) an attempt to help students create a more unified way to think about and develop programs.

Pedagogical patterns, on the other hand, are not about the content of computer science, but about its teaching. The idea of patterns (problem, context, forces, solution, examples of use) and of pattern languages (synergistically generating emergent properties from simple forms) have been applied to teaching itself. Work on patterns of pedagogy also began early [1] and has developed into a broader-based effort [6, 9].

Both elementary patterns and pedagogical patterns are an attempt to capture best practice in ways that can be communicated effectively from experts to those who need expert knowledge.


Proposal

We propose a full-day workshop consisting of an introduction to patterns (and especially these two specialty topics) and an activity session in which participants will be helped to discover and write up new patterns.

The morning session will be an introduction to patterns, elementary patterns, and pedagogical patterns. We will mix several styles: presentation, open periods for questions and discussion, and the study of several examples that illustrate the topics being introduced.

The afternoon session will split into two sessions, with Wallingford, Deugo, and Duvall leading an elementary patterns group and Bergin leading a pedagogical patterns group. In these sessions, the group leaders will help participants (a) to examine their own practice to identify patterns and (b) to present them in the form of patterns. We expect that these "pattern mining" sessions will ultimately lead to publishable work, including as future SIGCSE papers.

The long-term goal of this workshop is to engage more educators in the elementary patterns and pedagogical patterns communities so that the best of what we do can be captured and more effectively communicated to one another. This goes beyond the single, but valuable, techniques that are often presented in SIGCSE papers and attempts to unify the practice.


Prospective Co-Organizers

The proposed leaders of this workshop are deeply involved in the study and writing of patterns, especially in areas of elementary and pedagogical patterns. Bergin, Duvall, and Wallingford have organized and led successful SIGCSE workshops on elementary patterns the last two years. They have also been co-organizers of the three annual Elementary Patterns workshops at ChiliPLoP, with Deugo helping to organize the second. All four have been active participants in education- and pattern-related activities at conferences such as OOPSLA, PLoP, EuroPLoP, and regional CS conferences. Wallingford, Bergin, and Deugo have each written many patterns papers that have been presented at these conferences and are considered to be experts in this area. Wallingford maintains the Elementary Patterns Home Page at:

http://www.cs.uni.edu/~wallingf/patterns/elementary

Bergin provides a comprehensive set of links to elementary and pedagogical patterns on his home site at:

http://csis.pace.edu/~bergin

Bergin has been invited to give a three day workshop in Denmark (U. Aarhus) on these topics. Wallingford gave an invited talk at the Consortium for Computing at Small College's Northeast Conference entitled "Using Patterns in the CS Curriculum" [19].


References

  1. Anthony, Dana, "Patterns for Classroom Education", Pattern Languages of Program Design 2, edited by John Vlissides, Jim Coplien, and Norm Kerth, Addison-Wesley, New York, 1996.
  2. Astrachan, Owen, "Design Patterns: An Essential Component of CS Curricula", SIGCSE Bulletin and Proceedings, 30(1):153-160, March 1998.

  3. Astrachan, Owen, and Eugene Wallingford, "Loop Patterns", Proceedings of the Fifth Pattern Languages of Programming Conference, August 12-14, 1998, Allerton Park, Illinois.

  4. Bergin, Joseph, "Patterns for Selection", Proceedings of the Fourth European Conference on Pattern Languages of Programs, July 8-10, 2000, Irsee, Germany.

  5. Bergin, Joseph, "Early Object Patterns", http://csis.pace.edu/%7Ebergin/patterns/PatternObjects.html.

  6. Bergin, Joseph, "Fourteen Pedagogical Patterns", Proceedings of the Fifth European Conference on Pattern Languages of Programs, July 5-9, 2000, Irsee, Germany.

  7. Budd, Timothy, Understanding Object-Oriented Programming with Java, Addison-Wesley, New York, 1998.

  8. Deugo, Dwight, "Foundation Patterns", Proceedings of the Fifth Pattern Languages of Programming Conference, August 12-14, 1998, Allerton Park, Illinois.

  9. Eckstein, Jutta, "Learning to Teach and Learning to Learn: Pedagogical and Social Issues in Education", Proceedings of the Fifth European Conference on Pattern Languages of Programs, July 5-9, 2000, Irsee, Germany.

  10. Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides, Design Patterns, Addison-Wesley, New York, 1995.

  11. Goodrich, Michael, Natasha Gelfand, and Roberto Tamassia, "Teaching Data Structure Design Patterns", SIGCSE Bulletin and Proceedings, 30(1):331-335, March 1998.

  12. Linn, Marcia, and Michael Clancy, "The Case for Case Studies of Programming Problems," Communications of the ACM 35(3):121-132, 1992.

  13. Nguyen, Dung, "Design Patterns for Data Structures", SIGCSE Bulletin and Proceedings, 30(1):336-340, March 1998.

  14. Sandu, Dorin, and Dwight Deugo, "The Lambda Pattern", Proceedings of the Sixth Pattern Languages of Programming Conference, August 16-18, 1999, Allerton Park, Illinois.

  15. Schmidt, Douglas, "CS 242: Developing Object-Oriented Software with Patterns and Frameworks", on-line course materials, http://www.cs.wustl.edu/~schmidt/cs242/.

  16. Soloway, Elliot, "Learning to Program = Learning to Construct Mechanisms and Explanations," Communications of the ACM 29(9):850-858, 1986.

  17. Wallingford, Eugene, "Roundabout, A Pattern Language for Recursive Programming", Proceedings of the Fourth Pattern Languages of Programming Conference, September 3-5, 1997, Allerton Park, Illinois.

  18. Wallingford, Eugene, "Envoy, A Pattern Language for Managing State in a Functional Program", Proceedings of the Sixth Pattern Languages of Programming Conference, August 16-18, 1999, Allerton Park, Illinois.

  19. Wallingford, Eugene, "Using Patterns in the CS Curriculum", http://www.cs.uni.edu/~wallingf/patterns/elementary/ccscne00/presen tation.pdf.