Tutorial T11


Tutorials  T1  T2  T3  T4  T5  T6  T7  T8  T9  T10  T11  T12  T13  T14  T15  T16  T17  T18  T19  T20  T21 

Pattern Mastery through Pattern Writing


Presenter: James O. Coplien, Christa Schwanninger
Level: Introductory
Day: Monday-Tuesday (June 18-19)


Software patterns are a literary form, designed to communicate expert knowledge about system construction. The most useful patterns are the ones that address structural problems, and which are carefully written to be readable. This course teaches pattern-writing skills in the context of the broader goals and values of the pattern community. The course mixes a small amount of lecture with exercises and small workshops. Attendees do a comparative analysis of published patterns. On the second day, participants work in small teams to write patterns, and participate as an author in a writer's workshop.

Audience:
People who wish to start or enhance pattern programs at their companies and academic institutions, as well as those just wishing to know a bit more about the foundations of patterns. The focus will be on software but we can accommodate people from a wide variety of intellectual and artistic endeavors. NOTE: We can accommodate an arbitrarily large audience with enough advance notice. In addition to the two primary instructors, we can draw on a pool of renowned instructors who have given this course before to arrange that there be one instructor per eight students. People who have taught this course before include Lise Hvatum, Norm Kerth, Richard Gabriel, Frank Buschmann, Liping Zhao, Martine Devos, Robert Hanmer, Luke Hohmann, and others.

Required experience:
None

Presenter's profile:
Jim Coplien is a Distinguished Member of Technical Staff at Bell Laboratories in Naperville, Illinois. He is the author of the "Software Patterns" management briefing and co-editor of several pattern books. Christa Schwanninger is a software engineer at Siemens Corporate Technology in Munich where she works on distributed applications. She has done pioneering work in patterns for compiler construction and language design.