Pattern Course - 2004

Joseph Bergin, Professor
Fred Grossman, Professor

This course will examine the creation and use of patterns of software. Students will read patterns and write patterns. We interpret "Patterns of Software" broadly to include design patterns, organizational patterns, and even the pedagogical patterns used in teaching software. For those who don't have another idea early on, Bergin is developing a set of patterns for doing XP. Students may participate in this effort. A number of patterns have been written, but more need to be discovered and written. This may eventually be a book.

Activities

Each month each reading group will select readings from the PLoP conferences (or other source) for reading and leading web discussion. You will have some say in which papers your team works on. All will take part in the major readings/discussions named in the activities list above. The professors will give some direction to the discussions.

Aside from the readings and discussions you will have three major activities. (1) Pattern Writing, (2) Introducing Patterns, and (3) Research on Patterns. These numbers are keyed into the assignment list below.

(Activity 1) The first may be done in groups of two or three and requires that you develop a few related patterns on a topic of interest to yourselves. Prior to January 24 you should think about what topics you might develop and mention them on the course list. You will need something fairly well developed by February 21. You may, of course, submit your pattern papers to the PLoP conference. See the Hillside site for details. We will publish the papers in a Pace University Tech Report.

(Activity 2) The second activity involves Introducing Patterns into Organizations. In this you will introduce a small set of related patterns of your choice into your own organization and report on its success. This will require a descriptive paper detailing the introduction plan (which patterns, why they were chosen, how you will go about introducing them), the execution of the plan, and the success or failure of the activity. You may do this in small groups if it is feasible. You may assist another in introduction of the pattern in their own organization rather than doing so in your own.

(Activity 3) The third activity is individual and it too should be begun early. You must write a paper, 12 pages or more, proposing both a research topic around the idea of software patterns AND a suggested research plan for answering the questions you propose. Note that writing patterns is not research, but measuring the effectiveness of patterns is. There are other possibilities as well.

Those taking the course for two credits do the first activity (1. Pattern Writing) and one of the others, but do not need to do all three. Those taking the course for three credits must complete all three activities.

Along with discussion and the usual activity (list/wiki) the activities will be major components of your course grade.

Readings and Resources

Some of these you have previously read. You should re-read them.

Coplien, Software Patterns, 2000
http://www.rcnchicago.com/~jcoplien/Patterns/WhitePaper/

Gerard Meszaros and Jim Doble have written a pattern language for pattern writing. It appears in [PLOPD 3] and here: http://webclass.cqu.edu.au/Patterns/Resources/writers/language/

How to shepherd a paper prior to a conference:
http://jerry.cs.uiuc.edu/~plop/plop2k/shepherding.pdf

Jim Coplien (Cope) has written a pattern language for the running of a pattern workshop. Pattern workshops are sometimes called conferences, but they are run on a completely different model.
http://www.bell-labs.com/~cope/Patterns/WritersWorkshops/

(Optional) PLOPD 2, Vlissides, Coplien, Kerth: Addison Wesley

Shalloway & Trott, Design Patterns Explained

Coplien, "A Generative Development-Process Pattern Language"
http://www.bell-labs.com/people/cope/Patterns/Process/index.html

Kerievsky, Pools of Insight: A Pattern Language for Study Groups
http://industriallogic.com/papers/khdraft.pdf

Weir and Noble, Process Patterns for Personal Practice, (MS word file)
http://www.argo.be/europlop/Papers/Final/Weir2.doc (Skim this paper)

Manns and Rising, Evolving a Patterns Culture. (NEW VERSION) Download at: http://www.cs.unca.edu/~manns/intropatterns.html

Original Wiki: http://c2.com/ppr/index.html

The Hillside Group: http://hillside.net/

PLoP Conference Papers

Assignments

Numbers in parentheses refer to the major activities above. If no number is listed it applies to everyone.

Prior to January 24 (Review)

(Review) Coplien, Software Patterns, 2000
http://www.rcnchicago.com/~jcoplien/Patterns/WhitePaper/

Prior to February 21 (Pattern Writing)

(Read and discuss) Gerard Meszaros and Jim Doble have written a pattern language for pattern writing. It appears in [PLOPD 3] and here: http://webclass.cqu.edu.au/Patterns/Resources/writers/language/

(Activity 1) Begin in groups to develop your patterns.

(Activity 3) Begin to think about your research paper. Outline one or two areas that you might develop further.

(Activity 2) Choose patterns for introduction into your organization and justify them.

Readings/discussions from the PLoP conference papers

Prior to March 20 (Pattern Rewriting with a Shepherd)

(Read and discuss) How to shepherd a paper prior to a conference:
http://jerry.cs.uiuc.edu/~plop/plop2k/shepherding.pdf

(Activity 3) Develop your research topic paper.

(Activity 2) Develop your pattern introduction plan and begin to implement it.

(Activity 1) Interact with your pattern shepherd on your patterns.Re write your patterns about three times. I will attempt to find real shepherds from the patterns community for you.

Readings/discussions from the PLoP conference papers

Prior to April 17 (Pattern Refinement)

(Read and discuss) Jim Coplien (Cope) has written a pattern language for the running of a pattern workshop. Pattern workshops are sometimes called conferences, but they are run on a completely different model.
http://www.bell-labs.com/~cope/Patterns/WritersWorkshops/

(Activity 3) Refine your research topic paper.

(Activity 2) Continue work on implementing your introduction plan.

(Activity 1) Preliminary public copy of your patterns to Bergin by April 5 (PDF or RTF). You will be assigned to a workshop with a few other authors. Read the papers of your workshop JUST prior to April 12. On the 12th we will workshop the patterns.

Readings/discussions from the PLoP conference papers

Prior to May 8 (Pattern Publishing)

(Read and discuss) Manns and Rising, Evolving a Patterns Culture. (NEW VERSION) Download at: http://www.cs.unca.edu/~manns/intropatterns.html

(Activity 1) Rewrite your patterns in light of what you learned at the workshop.

(Activity 3) Finish your research topic paper.

(Activity 2) Write the report on your introduction plan.

(Activity 1) Publishing the patterns in a local Patterns Journal. Final copy to Bergin/Grossman by May 1 (PDF or RTF).

Readings/discussions from the PLoP conference papers

Schedule of Face to Face meetings

January 24 (Overview)

Mary Lynn Manns and Linda Rising will be visitors. They know as much about patterns as anyone in the world.

http://members.cox.net/risingl1/
http://www.cs.unca.edu/~manns/

Research design sprint.

February 21 (Writing)

Discussion of research areas.

Discussion of Introducing Patterns

Presentation of some of the patterns you have written.

March 20 (Shepherding)

Presentation of some of the patterns you have written.

Discussion

April 17 (Workshopping) (Bergin will be away)

Workshop of the patterns.

May 8 (Summary)

Brief presentations of Research Papers and Pattern Introduction Activities.


Last Updated: January 15, 2004