Design pattern

This article or chapter is incomplete and its contents need further attention. Some information may be missing or may be wrong, spelling and grammar may have to be improved, use your judgment!

## Contents

* 1 Definition
* 2 Design patterns
* 2.1 Main concepts about Patterns
* 2.2 In software engineering
* 2.3 In education
* 3 Links
* 3.1 Design patterns in education
* 3.2 Design pattern tutorials
* 3.3 Other links
* 4 Bibliography and References

## Definition[edit | edit source]

"The concept of a pattern language has been developed by Christopher Alexander and his colleagues in architecture and urban design. In brief, a pattern language is a network of patterns of varying scales; each pattern is embodied as a concrete prototype, and is related to larger scale patterns which it supports, and to smaller scale patterns which support it. The goal of a pattern language is to capture patterns in their contexts, and to provide a mechanism for understanding the non-local consequences of design decisions." (Erickson)

"A pattern language is a system of best practices for a given field of endeavor. Each practice is expressed as a pair of statements: one statement describes a conflict and the other a resolution to that conflict." (Weinstein 2007)

"Design patterns are used to describe typical solutions for recurring design problems. They help to refine and complete system structures."

See also: educational design language, controlled vocabulary and pedagogical vocabulary.

## Design patterns[edit | edit source]

McAndrew (2004) describe the Alexandrian pattern format (adapted from Goodyear et al. 2004) like this:

i) A picture (showing an archetypal example of the pattern). ii) An introductory paragraph setting the context for the pattern (explaining how it helps to complete some larger patterns). iii) Problem headline, to give the essence of the problem in one or two sentences. iv) The body of the problem (its empirical background, evidence for its validity, examples of different ways the pattern can be manifested). v) The solution. Stated as an instruction, so that you know what to do to build the pattern. vi) A diagrammatic representation of the solution.

vii) A paragraph linking the pattern to the smaller patterns which are needed to complete and embellish it.

There exist many variants of this structure, but the fundamental principles should remain the same (Avgeriou, 2003).

### Main concepts about Patterns[edit | edit source]

Derntl and Botturi (2006) define patterns and pattern languages as follows:

* Design pattern. A design pattern conveys the core of the solution to some relevant, recurring design problem (Alexander et al., 1977).
* Pattern language. A pattern language incorporates a set of patterns relevant to a specific design domain, including rules to combine them, i.e., like words and grammar rules (Alexander et al., 1977)
* Pattern system. A pattern system offers more than a pattern language: it offers tools for creative use, i.e., ways for creating new patterns by understanding the very roots of the system itself—its meta-language features. (e.g. how to use a pattern language, background, requirements, etc.)

### In software engineering[edit | edit source]

According to Harrer and Martens (2006), there exist several approaches that use design patterns:

* Reference architectures and architectural patterns are used to specify basic structure and relationships between the main components of a software system. Reference architectures are e.g. the LTSA, system oriented verbal descriptions, or student oriented descriptions. Architectural patterns are on a more abstract level,
* Design patterns are used to describe typical solutions for recurring design problems. They help to refine and complete system structures.
* Process patterns and Learning Design follow the idea to explicitly model process oriented aspects and to make them re-usable. [E.g.] in ITS, implicit principles (e.g. related to pedagogical principles) are transformed to explicit declarations. This supports and facilitates the work of domain experts; resulting concepts and designs can be re-used. Examples are an exchangable catalogue of tutoring rules, and sequencing of learning activities in the Learning Design.
* Ontologies, Component based design, Frameworks and Refactoring are futher software engineering methods [...].

A collection of patterns which explicitly describes relations between different is called a pattern language.

### In education[edit | edit source]

Design patterns can be used to describe learning designs (e.g. Goodyear, 2000; McAndrew et al. 2006 and 2007; Derntl et al., 2006). See the "design patterns in education" links below.

A typical design pattern in the e-Len project looks like this:

Information about the pattern Student Assignments Management ( retrieved 17:32, 26 February 2009 (UTC) from E-Len

Belongs to SIG
Learning resources and LMS

Maturity level
[picture with three stars]

Category
Instructional patterns

Problem
How to create on-line assignments for students?

Analysis
Assigning exercises and projects to students is a common practice for instructors. In the context of a web-based LMS certain matters have to be resolved: How to communicate issues concerning the assignments to students, how to grade students, etc.

Solution
Provide a tool for instructors to manage assignments.

An instructor should be able to:

* define an assignment by describing the title of the assignment, a description, links to on-line resources, start and due date etc.
* notify the learners about a new assignment
* receive the learner?s papers
* grade the papers and make the grades or the corrected papers available to the learners.

A learner should be able to:

* be notified for the assignment and prepare their documents for submission.
* upload the corresponding documents can or send them to the instructor via e-mail.
* Be notified that their papers have been graded and either view their grade or view the whole paper returned with the instructor?s remarks

Known uses
Virtual-U, WebCT, COSE, Intralearn, Saba, Blackboard, FirstClass, Convene and LearningSpace provide tools for assignments management.

Context
This pattern is applicable to software engineering teams that develop Learning Management Systems. When implemented, its end-users shall be learners and instructors.

References
P. Avgeriou, A. Papasalouros, S. Retalis, Manolis Skordalakis, ?Towards a Pattern Language for Learning Management Systems?, IEEE Educational Technology & Society, Volume 6, Issue 2, pp. 11-24, 2003.
P. Avgeriou, A. Papasalouros, S. Retalis, ?Patterns For Designing Learning Management Systems?, proceedings of the European Pattern Languages of Programming (EuroPLOP) 25th?29th June 2003, Irsee, Germany.

Related patterns

Asynchronous collaborative learning
Synchronous collaborative learning
Student tracking

More information on relations
This pattern is also related to the Student Group Management Pattern in the sense that they both facilitate a problem-based instructional approach. The main difference between the two is that while in the former, assignments are disseminated to the whole class and require personal work of each individual student, in the latter, groups are created in order to encourage the collaboration of students along with the supervision of an instructor.

Author(s)
P. Avgeriou, S. Retalis, A. Papasalouros

Type
Domain specific

Submitted date
2004-03-19

Patterns also can cover a small design space. E.g. in Joe Bergin's Wiki collection of Active Student Patterns (retrieved 17:32, 26 February 2009 (UTC)), we find a list of 18 patterns that are described as follows: "A Pattern Language for keeping students Active. What kinds of assignments and tasks do we give them to help them learn?". He also has a list of Good Student Patterns of which we show the "Try To Improve It pattern:

Synopsis: After you create something and before you make it public, try to improve it.

In work, as in school, you want to have the reputation of producing quality work. Nobody's first attempt is perfect at anything. People who seem to get it right the first time are either very lucky or they work behind the scenes to get it right and make it seem easy.

Therefore: When you have a piece of work to do examine it critically and then try to improve it. Do this before you show it to anyone. You can and should do this with nearly everything from written essays to programs to speeches you must give.

Even better is to seek feedback on what you have done to get advice that can guide you in improving your work. You can get this from your instructor, or, if rules permit, from other students.

Since the wiki from which we quoted seems to quite dead, See Pedagogical Patterns.org for more work from this group. It includes a series of downloadable PDF files that cover each a different range of design patters:

* Teaching from Different Perspectives
* Active Learning
* Feedback
* Experiential Learning
* Patterns for Gaining Different Perspectives

The Patterns for Active Learning include about different patterns that are grouped into 7 "problem classes".

Maximize learning by engaging.
ACTIVE STUDENT, PREFER WRITING, HONOR QUESTIONS, INVISIBLE TEACHER, SHOT GUN SEMINAR, TEST TUBE, TRY IT YOURSELF
Take different skill levels and interests into account.
DIFFERENT EXERCISE LEVELS, STUDENTS DECIDE, TEACHER SELECTS TEAMS, EXPLORE FOR YOURSELF
Bridge the gap between the educational world and real (production/industrial) world.
ADOPT-AN-ARTIFACT, REAL WORLD EXPERIENCE, MASTER-APPRENTICE, CRITIQUE, PROBLEM SOLVING MACHINE
Encourage teamwork.
GROUPS WORK, STUDY GROUPS, ROLE PLAY, WAR GAME
Build on past experience.
INVISIBLE TEACHER, EXPLORE FOR YOURSELF, STUDY GROUPS, TEACHER SELECTS TEAMS, EXPAND THE KNOWN WORLD
Focus on the whole picture.
STUDENT DESIGN SPRINT, LARGER THAN LIFE
Approve and understand the theory.
TEST TUBE, TRY IT YOURSELF

One also may consider formal learning designs as design patterns (e.g. a LAMS module). It is almost self-describing since an other teacher can play it on a LAMS system, before adapting it to his own need. However there are two major differences with respect to Alexander's original concept:

* There is no problem description (except for an eventual description of learning goals etc. in the repository
* It's a prototype (not a generic description).

Finally, you can have a look at the TECFA SEED Catalog, an attempt by Daniel K. Schneider to create a catalog of simple scenarios and that rely on a catalog of elementary activities which in turn make use what we called C3MS bricks.

## Links[edit | edit source]

### Design patterns in education[edit | edit source]

(not complete !)

* Montessori Design Patterns from Leone Learning Systems.

The pedagogical Patterns Project

This seems to be the project in educational design patterns. They explicitly refer to Alexander

* Pedagogical Patterns Project, retrieved May 2007. Browse through this site ...
* SEMINARS - A Pedagogical Pattern Language on how to teach seminar...]
* Fourteen Pedagogical Patterns by Joseph Bergin
* Bergin, Josepth, A Pattern Language for Course Development in Computer Science

The e-Len project

* e-Len was a EU project. It's repository is still alive (2008): "In the E-learning Design Patterns Repository you will find a collection of design pattern for e-learning. These patterns have been jointly developed within the E-LEN projects. This repository is an active entity which is constantly enlarged with the addition of new design patterns", retrieved 12:26, 15 April 2008 (UTC).

### Design pattern tutorials[edit | edit source]

* Brad Appleton, Patterns and Software: Essential Concepts and Terminology

* Joshua Kerievsky, Industrial Logic, Inc., A Learning Guide To Design Patterns

### Other links[edit | edit source]

* The Interaction Design Patterns Page by Tom Erickson. Contains information about resources related to pattern languages for interaction design. Good resource !

* Hills.net, a nonprofit corporation dedicated to improving human communication about computers by encouraging people to codify common programming and design practice (organizes conferences and host the patterns home page, browse the this site).

* Design patters cards (Information Technology) and Posters ($20).

## Bibliography and References[edit | edit source]

* Alexander, C. A (1979) Timeless Way of Building. New York: Oxford University Press.

* Alexander, C., Ishikawa, S., Silverstein, M., Jacobson, M., Fiksdahl-King, I., & Angel, S. A (1977) A Pattern Language. New York: Oxford University Press.

* Alexander, C. (1999) The Origins of Pattern Theory, the Future of the Theory and the Generation of a Living World. IEEE Software 16 (5) 71-82.

* Avgeriou, P., Papasalouros, A., Retalis, S., Skordalakis, E. (2003) Towards a Pattern Language for Learning Management Systems, Educational Technology & Society, 6, 2, 11-24, http://ifets.ieee.org/periodical/6-2/2.html

* Joseph Bergin, Jutta Eckstein, Markus Völter, Marianna Sipos, Eugene Wallingford, Klaus Marquardt, Jane Chandler, Helen Sharp, Mary Lynn Manns (Eds.) Pedagogical Patterns: Advice for Educators, CreateSpace Independent Publishing Platform; Compact edition (August 21, 2012) (Excerpts

* Botturi, L., Derntl, M., Boot, E., & Figl, K. (2006, in press). A classification framework for educational modeling languages. In Proceedings of IEEE International Conference on Advanced learning technologies (ICALT’06), Kerkrade, The Netherlands.

* Derntl, Michael and Luca Botturi (2006), Essential use cases for pedagogical patterns, Computer Science Education, 16:2, 137 - 156, DOI:10.1080/08993400600768182

* Devedzic, V. (2001). A Pattern Language for Architectures of Intelligent Tutors. In: Moore, J.D., Redfield, C. and Johnson, W.L. (eds): Proc. of AI-Ed, San Antonio, TX, US, (2001) 542-544.

* Erickson, T. "Lingua Francas for Design: Sacred Places and Pattern Languages." In The Proceedings of DIS 2000 (Brooklyn, NY, August 17-19, 2000). New York: ACM Press, 2000, pp 357-368. HTML

* Fincher, S. (1999). Analysis of design: An exploration of patterns and pattern languages for pedagogy. Journal of Computers in Mathematics and Science Teaching, 18(3), 331 – 348.

* Fincher, S., & Utting, I. (2002). Pedagogical patterns: Their place in the genre. In Proceedings of 7th Annual Conference on Innovation and technology in computer science education (ITiCSE’02), Aarhus, Denmark (pp. 199 – 202).

* Goodyear, P., Avgeriou, P., Baggetun, R., Bartoluzzi, S., Retalis, S., Ronteltap, F., et al. (2004). Towards a pattern lanugage for networked learning. In Proceedings of 4th International Conference on Networked learning (NLC’04), Lancaster, England (pp. 449 – 455).

* Goodyear, P. (2005) Educational Design and Networked Learning: Patterns, pattern languages and design practice. Australasian Journal of Educational Technology, 21(1), 82-101.

* Harrer, Andreas and Martens, Alke (2006). Towards a Pattern Language for Intelligent Teaching and Training Systems, In: Proc. of Intelligent Tutoring Systems (ITS 2006), edited by Mitsuru Ikeda, Kevin D. Ashley, and Tak-Wai Chan. Springer, Berlin, Germany, pages 298-307. PDF Preprint

* Laurillard, D. (2013). Teaching as a design science: Building pedagogical patterns for learning and technology. Routledge.

* McAndrew, P. and Goodyear, P. (2007) Representing practitioner experiences through learning design and patterns. In Beetham, H., Sharpe, R. (Eds), Rethinking Pedagogy for a Digital Age (pp. 92-102). New York: Routledge.

* McAndrew, P., Goodyear, P., Dalziel, J. (2006) Patterns, designs and activities: Unifying descriptions of learning structures. International Journal of Learning Technology, Volume 2, Numbers 2-3 , pp. 216-242(27).

* McAndrew, P., Goodyear, P. & Dalziel, J. (2005). Patterns, designs and activities: unifying descriptions of learning structures. Preprint of McAndrew et al. 2006. Abstract/Word

* McAndrew, P. (2004). Representing practitioner experiences through learning design and patterns. (The Effectiveness of Resources, Tools and Support Services used by Practitioners in Designing and Delivering E-Learning Activities). JISC, Aug. 2004. Word.

* Schmidt, D., Stal, M., Rohnert, H. and Buschmann, F.: Pattern-oriented Software Architecture - Patterns for Concurrent and Networked Objects. JohnWiley & Sons, Chichester, (2000)

* Thomas Erickson, Supporting Interdisciplinary Design: Towards Pattern Languages for Workplaces, HTML

* Richard N Griffiths, Don't Write Guidelines ­ Write Patterns!, HTML

* Weinstein, D. (2007). The Social Architecture of A Successful Collaborative Learning Environment. Article submitted to Computers and Writing Online 2007. accessed through http://acadianamoo.org/cwonline2007/index.html.