Elementary Patterns
and their Role in Instruction
By Eugene Wallingford
A ChiliPLoP 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 2006.
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 maintain 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 15-February, 2006. 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 15, 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.
March 11,
2006: Early registration deadline:
April 11-14,
2006: 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
wallingf@cs.uni.edu
References
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
====