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
wallingf@cs.uni.edu
References
-
Owen Astrachan and Eugene Wallingford,
Loop Patterns, Proc. Fifth Pattern Languages of Programs
Conference, Allerton Park, Illinois. 1998.
-
Joe Bergin,
Selection Patterns, Proc. Fourth European Pattern Languages of
Programs Conference, Bad Irsee, Germany, 1999.
-
Joe Bergin,
Code Layout, Proc. Seventh European Pattern Languages of Programs
Conference, Bad Irsee, Germany, 2002.
-
Dwight Deugo,
Foundation Patterns, Proc. Fifth Pattern Languages of Programs
Conference, Allerton Park, Illinois, 1998.
-
Eugene Wallingford,
Roundabout: A Pattern Language for Recursive Programming, Proc.
Fourth Pattern Languages of Programs Conference, Allerton Park, Illinois,
1997.
-
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 ====