Pattern Understanding

From Open Pattern Repository for Online Learning Systems
Jump to navigation Jump to search


Pattern Understanding
Contributors Christian Köppe
Last modification May 16, 2017
Source Köppe (2011)[1]; Köppe (2013)[2]
Pattern formats OPR Alexandrian
Usability
Learning domain
Stakeholders

Also Known As: Understand Design Patterns, Holistic Pattern Understanding


Holistic Pattern Understanding-alx.png


During the first semesters of their study, students have obtained good knowledge of the basic concepts and techniques of their study. For a computer science student this is knowledge of programming and (object-oriented) principles as well as a good understanding of non-functional requirements like modifiability, reusability, or more general maintainability. You now want to introduce design patterns and make sure that the students understand and apply them as intended.

***

Design patterns are conceptually different from other programming or design techniques, and not taking this into account when teaching them often results in students applying design patterns in an inappropriate way.


***

Therefore: ensure that students understand all aspects of design patterns, their lifecycle, and how their use relates to the overall context by addressing these aspects, the lifecycle and the relations explicitly when teaching design patterns.


This pattern is marked as true invariant, because independent of the domain it is important to understand the whole idea of patterns. Also with patterns of domains other than software design people tend to focus mainly on the solution part. This pattern can be implemented by choosing the appropriate patterns of this language, dependent of the domain and the context the patterns are taught in.

Context

Problem

Forces

Solution

Consequences

Benefits

Liabilities

Evidence

Literature

Discussion

Data

Applied evaluation

Related patterns

Example

References

  1. Patlet first published in Köppe, C. (2011). A pattern language for teaching design patterns (part 2). In Proceedings of the 18th Conference on Pattern Languages of Programs (PLoP 2011). New York:ACM.
  2. Pattern published in Köppe, C. (2013). A Pattern Language for Teaching Design Patterns. In Transactions on Pattern Languages of Programming III (pp. 24-54). Springer Berlin Heidelberg.