Main Page

From iPatterns
Jump to: navigation, search

What is This Wiki?

This wiki is intended as a repository for instructional patterns ("iPatterns") after the model of architect-philosopher Christoper Alexander's pattern language. (There are no patterns in the repository yet. When the repository begins to be populated with patterns, the main page will contain an index to them, and this will become a secondary page.)

Several years ago, Todd Stubbs (originator of this Web site) took a class from Professor Andrew S. Gibbons at BYU in which he used Christopher Alexander's Notes on the Synthesis of Form[1] as a textbook for the class. A few years later, during a conversation with fellow instructional designer Sharolyn Barnhurst, he realized that instructional design methods and techniques might be better organized as the patterns in a pattern language than in the myriad of other ways they are commonly represented. From those two events this site, iPatterns.org, was borne.

The Origin of Pattern Languages: Christopher Alexander

The original concept of pattern languages was developed by Christopher Alexander to organize various architectural concepts. He described his use of patterns in pattern languages in a "Child’s history of pattern languages" found on his website:

…a pattern is an old idea. The new idea in the book was to organize implicit knowledge about how people solve recurring problems when they go about building things.

For example, if you are building a house you need to go from outside to inside and there are centuries of experiments on how to do this in a "just so" way. Sometimes the transition is marked not by just a door but by a change in elevation (steps, large, small, straight, or curved), or a shaded path, or through a court yard.

We wrote up this knowledge in the form of a pattern about entrance transitions. Patterns are easy to remember and set out as if-then propositions. The book gave 253 patterns about solutions that are known to work.[2]

In Alexander's works, patterns are solutions to generic architectural problems, arrived at intuitively, confirmed empirically, and recorded encyclopedically for use by others. These patterns fit into larger patterns, which in turn, eventually fit into sequences.

Alexander’s concept of pattern languages would have remained an obscure architectural method or “style” had it not been that it has been adopted by several fields outside of architecture. He notes,

People liked our book very much. We were surprised though, when we found out computer programmers liked it, because it was about building not programming. But the programmers said, "this is great, it helps think about patterns in programming and how to write reusable code that we can call upon when we need it."[2]

In fact computer programmers, user interface designers, Web designers, and experts in several other fields have adopted the idea of pattern languages because it organizes and simplifies otherwise difficult concepts and expressions. The current concept of object-oriented languages grew, in part, from Alexander’s concept of pattern language applied to computer programming.

While a few attempts have been made to apply the concept of patterns to instruction (for example, see Olsen, 2008[3]), this is the first we know of to use a "wiki" to that end.

What Makes a Pattern a Pattern?

Each of Christopher Alexander's original patterns started with a reference number and a name, followed by a several paragraphs-long description, often with pictures. His description often provided both examples and counter examples as well as explanations about why and how the pattern should be implemented as described. He also included with his descriptions references to other patterns that could be parent, sibling, or child patterns—as well as "cousins" (patterns that are related, but not directly).[4][5][6]

Coplein[7], and others have analyzed and expanded on Alexander's patterns and identified a meta-pattern of some of the characteristics that each of the patterns in a pattern language should have. Adapting liberaly from Coplein we have the following:

  • Each pattern has a unique identity to distinguish it from other patterns. The identity is often in the form of a name and number.
  • Each pattern solves a specific problem or specific set of problems; patterns capture solutions not just abstract principles or strategies.
  • Each pattern is a proven concept—patterns should capture solutions with a track record of success; they should not be mere speculation.
  • Each pattern reveals relationships—patterns don't just describe, but reveal deeper structures and connections both of a higher and lower order.
  • Hence, each pattern takes place in a context—they are not isolated from their workable context, they are part of it.

For purposes of this wiki, the parts above will be adapted to provide a basic form to the instructional patterns. (Adaptations will occur where the nature of the subject matter—instruction—requires it.)

Put a number of these patterns together in a way that they give context to each other and you have a pattern language.

  • A pattern language is a collection of patterns and the rules and guides that combine them and helps give them context. Pattern languages describe frameworks or families of related systems.

What we are aiming for in this wiki is to create a single, unified pattern language of instructional methods and techniques.

Pattern Language Building is a Community Effort

Ironically, one outcome of the marriage of pattern languages to computer science was the wiki (Hawaiian for quick or hurry!). Programmer Ward Cunningham first developed this well-known form of web-based database so that it would be user-editable to encourage collaboration, and called it the “WikiWikiWeb.” His wiki was originally intended to house the Portland Pattern Repository of computer programs[8]. His reason for creating a wiki for patterns is that pattern languages are just too large and complex for a single individual to work on. Since computers are adept at handling large, complex data sets, a wiki is an ideal way for many people to collaborate in the creation and maintenance of all the patterns in a pattern language.

The process of including many people in this kind of effort is now called crowd-sourcing, and its most famous example is Wikipedia, a huge and growing, crowd-sourced, wiki-based encyclopedia—and the most famous wiki in the world. (Coincidentally, this wiki is built on the same software platform as Wikipedia.)

For this much-less-ambitious effort, we need your help! If you're interested in participating, please contact Todd Stubbs and he'll provide you with a login which will allow you to add and edit the patterns here. We'd love to hear from you![9]

References

  1. Alexander, C. (1964). Notes on the synthesis of form. Oxford: Oxford University Press.
  2. 2.0 2.1 Alexander, C. (n.d.). [www.patternslanguage.com]. (Retrieved July 2011).
  3. Olsen, D. (2008). Teaching Patterns: A Pattern Language for Improving the Quality of Instruction in Higher Education Settings. Available from ProQuest.
  4. Alexander, C. (1977). A pattern language: towns, buildings, construction. Oxford: Oxford University Press.
  5. Alexander, C. (1979). The timeless way of building. Oxford: Oxford University Press.
  6. Alexander, C. (1975). The Oregon experiment. Oxford: Oxford University Press.
  7. Coplein, J.O. (n.d.) Software Patterns. Downloaded from http://hillside.net/patterns/50-patterns-library/patterns/222-design on 14 April 2014.
  8. Cunningham, W. (n.d.). “Portland pattern repository” on the WikiWikiWeb, (Retrieved July 2011). See also "Ward’s wiki.”
  9. Until there is a large enough 'crowd' to help police the content, access is by request or invitation only. But, don't let that stop you from participating! Drop Todd a note!