Main Page

From iPatterns
Revision as of 10:08, 5 September 2014 by Ipatterns-admin (Talk | contribs)

Jump to: navigation, search

What is This Wiki?

Several years ago, a class that I took from Professor Andrew S. Gibbons at BYU used Christopher Alexander's Notes on the Synthesis of Form[1] as a textbook. It wasn't until years later during a conversation with fellow instructional designer Sharolyn Barnhurst that I suddenly 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 that conversation iPatterns.org was borne.

This wiki is intended as a repository for instructional patterns ("iPatterns") after the model of Alexander's pattern language.

The Origin of Pattern Languages: Christopher Alexander

The concept of pattern languages was developed by philosopher-architect Christopher Alexander. 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, so-called 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.

Of course, 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, 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 name to distinguish it from other patterns.
  • 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, not just speculation
  • Each pattern describes 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 form the basic format for an instructional pattern. (Deviations will be where expansion due to the subject matter of instruction makes sense.)

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 pattern language of instructional methods and techniques.

Pattern Language Building is a Community Effort

Ironically, one outcome of the marriage of pattern languages and computer science was programmer Ward Cunningham’s development of a “wiki,” a well-known form of web-based database that is user-editable, which he originally devised to house the Portland Pattern Repository[8]. The idea is that pattern languages are just too large and complex for a single individual to do. Since computers are adept at handling large, complex data sets, what was needed was a way for many people to participate in the creation and maintenance (read: "editing") of the data set.

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

But, for this much-less-ambitious effort, we need your help! If you're interested in participating, please contact Todd Stubbs and I'll provide you with a login which will allow you to edit the patterns here. I'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' that participants can help police the content, access is by request or invitation only. But, don't let that stop you from participating!