Elementary Patterns
and their Role in Instruction

By Eugene Wallingford

A ChiliPLoP 2005 Hot Topic

What Are We About?

There are many ways to look at patterns. An especially useful way to think of patterns is as a tool for teaching. We don't use patterns blindly; we learn them. Patterns are all about learning new techniques, understanding when and how to use them.

For a number of years, software educators and practitioners have been documenting patterns that all beginning programmers need to know, dubbed elementary patterns. The result has a been a number of papers addressing different elements of novice programming, including repetition [1], selection [2], recursion [5], code layout [3], and basic OO concepts such as substitution and delegation [4]. These papers cover several areas, but they are not yet complete on their own, and they do not cover all of the areas that an introductory computer science text might cover. Among the missing areas are the use of collections such as arrays or vectors, parameters and return types, and class design.

This workshop will fill in the gaps in the current elementary patterns literature. Participants will write and workshop patterns that either complete an existing set of patterns or address a currently uncovered area of introductory computing instruction.

Our goal at is to produce a much more complete text that a CS1 instructor could use in teaching an introductory CS course. If you would like to help us produce such a text, then you will want to consider attending the elementary patterns Hot Topic workshop at ChiliPLoP 2005. Read on for answers to these questions about the Hot Topic workshop:

What Will We Do?

Our goal is to produce a draft of a textbook that a CS1 instructor can use to teach novices to write object-oriented programs in Java. Some of us will work to complete small pattern languages currently in the elementary patterns literature, and others will draft pattern languages to cover gaps in the literature.

We began work on this project at ChiliPLoP 2003, wrote more at ChiliPLoP 2004, and naintain a wiki that documents our progress and serves as a site for new work.

Prior to the beginning of the workshop, participants will prepare by:

  • reviewing the material on a wiki, to get a sense of where we are,

  • reading some of the elementary patterns literature with which they are unfamiliar,

  • participating in a pre-conference e-mail or wiki discussion that outlines room for improvement in the existing literature and new areas to cover, and

  • write something to bring to the workshop: a pattern, an outline for a small pattern language, a teaching example that uses patterns for some part of the outlined book, etc.

In this way, we can begin the workshop with an outline for a book and some rough material in hand.

How Will We Do It?

We will work in small groups to write, revise, and refactor patterns. We will have access to at least one machine with a wiki on it, to support collaborative work and integration. Occasionally throughout the workshop, we will get back together as a group to workshop what we have written.

The result will be a draft of a book, still rough in many ways but more complete and coherent than the current literature. Participants in the workshop can take this draft to use in their courses, or arrange for others to do so, so that we can get feedback and improve the draft in the year that follows ChiliPLoP.

Who Should Participate?

We hope to attract 4-6 highly motivated and experienced teachers, pattern writers, and software developers to work on this hot topic at ChiliPLoP. To this end, we invite requests to participate from:

  • individuals who teach, whether in academia or industry, using patterns as a means to introduce course content or to organize their courses.

  • pattern writers who are interested in writing the elementary patterns that underlie their more advanced patterns.

  • individuals who do not yet teach using patterns but who have thought about how patterns could be used to organize an elementary course or textbook.

How Do I Apply?

Submit a request to participate by e-mail to Eugene Wallingford by Tuesday, February 1, 2005. We may be able to accept requests after this date, on a space-available basis, but we would like to begin preparing for the workshop as soon as possible.

Your request should indicate your desire to participate, what you hope to achieve by participating, and your experience with patterns and instruction.

If you are invited to participate, you will be expected to:

  • Prepare for the workshop through study, discussion, and writing, as described above.

  • Come to ChiliPLoP prepared to participate actively and to help achieve the workshop goals!

What Are The Important Dates?

The dates to watch for are:

February 1, 2005

Submit your request to participate. We will notify you if you have been selected to participate within a couple of days of your submission.

February 15, 2005
Early registration deadline.
March 22-25, 2005
We gather in Carefree and accomplish our goals!

How Do I Find Out More?

For more on the ideas behind this workshop, see the Elementary Patterns home page, and feel free to contact the workshop organizer:

Eugene Wallingford


  1. Owen Astrachan and Eugene Wallingford, Loop Patterns, Proc. Fifth Pattern Languages of Programs Conference, Allerton Park, Illinois. 1998.

  2. Joe Bergin, Selection Patterns, Proc. Fourth European Pattern Languages of Programs Conference, Bad Irsee, Germany, 1999.

  3. Joe Bergin, Code Layout, Proc. Seventh European Pattern Languages of Programs Conference, Bad Irsee, Germany, 2002.

  4. Dwight Deugo, Foundation Patterns, Proc. Fifth Pattern Languages of Programs Conference, Allerton Park, Illinois, 1998.

  5. Eugene Wallingford, Roundabout: A Pattern Language for Recursive Programming, Proc. Fourth Pattern Languages of Programs Conference, Allerton Park, Illinois, 1997.

  6. Eugene Wallingford, Using a Pattern Language to Evaluate Design, OOPSLA Workshop on Evaluating Object-Oriented Design, Vancouver, British Columbia, 1998.

Eugene Wallingford ==== wallingf@cs.uni.edu ====


Note: PLoP is a trademark of The Hillside Group, Inc.