Call For Participation

Elementary Patterns
and their Role in Instruction

A ChiliPLoP 2004 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 2004. 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, and have 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:

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:

How Do I Apply?

Submit a request to participate by e-mail to Eugene Wallingford by Friday, February 27, 2004. 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:

What Are The Important Dates?

The dates to watch for are:

February 27, 2004

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

March 1, 2004

Early registration deadline.

April 13-16, 2004

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 ==== ==== January 30, 2003