Design Pattern

Kurzzusammenfassung:

Das Lehr-Lern Arrangement Design Pattern besteht aus einem dreiteiligen Übungspaket mit jeweils einer Übungseinheit der drei ausgewählten Gang of Four Design Pattern, dem Observer-, Decorator- und Command Pattern. Die Übungseinheiten haben jeweils eine zugrundeliegende Problemstellung und sind vor dem Hintergrund des Problembasierten Lernens konstruiert worden. Außerdem kommt hier das Konzept des Scaffolding zum Einsatz: Durch gezieltes Steuern des Umfangs der Unterstützung, die Studierende über die drei Übungseinheiten erhalten, soll insgesamt ein selbstgesteuerter Lernerfolg herbeigeführt werden. Mit dem Observer Pattern wird ein leichter Einstieg in das Thema des Design Pattern geschaffen. Diese Übung ist die erste einer dreiteiligen Übungsreihe, in welcher die Studierenden angeleitet werden, den theoretischen Inhalt auf praktische Anwendungen zu transferieren. Das Command Pattern ist der zweite Teil der Design Pattern Übung. In dieser Übung sollen die Studierenden das Command Pattern auf Basis eines bestehenden Rahmenprogramms verbessern und implementieren. Die Übung Decorator Pattern ist der dritte Teil der dreiteiligen Design Pattern Aufgaben. Dabei sollen die Studierenden bereits selbstständig Quellcode für Decorator Pattern implementieren.


Übersicht

Ziele:

  • Verstehen und Anwenden der Design Pattern: Observer, Decorator und Command Pattern

Didaktische Funktion(en):

  • Wiederholung & Festigung
  • Transfer & Anwendung

Hintergrund / didaktisch-methodische Einordnung:

Sozialform(en):

Partnerarbeit, Pair Programming

Anzahl der Lernenden:

2-3 Personen


Voraussetzungen und Ressourcen

Voraussetzungen:

  • Lehrender: Erfahrungen in Software Engineering, Design Pattern
  • Lernende: Software Engineering Studierende, die bereits eine theoretische Grundlagenvorlesung besucht haben; Theoretische Grundlagen in Design Pattern Erfahrungen in C++ 

Ausstattung & Medien:

  • Jede Gruppe benötigt einen PC und eine IDE mit C++ Compiler. 
  • Ausreichend PCs im CIP-Pool
  • Beamer (für Präsentation)
  • Uhr, falls Pair Programming mit Zeitgeber durchgeführt wird

Ablauf

Observer Pattern

  • 10 min Einleitung, kurze Wiederholung der Theorie
  • 15 min Beschreibung eines eigenen Observer Pattern Beispiels
  • 20 min Vervollständigung des Klassendiagramms Observer Pattern
  • 25 min Beschreibung verschiedener Prinzipien des Observer Pattern
  • 20 min Implementierung des Observer Pattern Rahmenprogramms in Pair Programming

Command Pattern

  • 10 Min Verbesserung des Klassendiagramms
  • 30 Min Implementierung der fehlenden Klassen
  • 35 Min Implementierung der konkreten Konsolenausgabe auf Basis eines Szenarios
  • 5 Min Beantwortung Abschlussfrage

Decorator Pattern

  • 10 Minuten Einleitung, kurze Wiederholung
  • 80 Minuten Eigenständige Bearbeitung des Rahmenprogramms auf Basis des Handouts

Beispiele oder Materialien:

Creative Commons Lizenzvertrag
Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung – Nicht-kommerziell – Weitergabe unter gleichen Bedingungen 4.0 International Lizenz.

Hinweise zur Vorbereitung:

  • Präsentationen
  • Rahmenprogramme vorbereiten
  • benötigte Zeit: 45 Minuten pro Übungseinheit

Hinweise zur Nachbereitung:

Keine Nachbereitung nötig

Hinweise zur Dauer: 90 Minuten pro Übungseinheit


Kritische Einordnung

Vorteile und Stärken:

Design Pattern ist einer der schwierigeren Inhalte für Software Engineering Studierende. Der Scaffolding-Ansatz ebnet schrittweise den Weg zur selbstständigen Umsetzung eines Entwurfsmusters.

Grenzen und Schwächen:

Die Bereitstellung der Rahmenprogramme erfordert es, dass die Studierenden alle die gleiche Entwicklungsumgebung verwenden, was nicht immer der Fall ist.


Literatur und weiterführende Hinweise
  • H.G. Schmidt (1983). Problem‐based learning: rationale and description. In: Medical Education, Vol. 17, pp. 11-16
  • M. J. Prince, R. M. Felder (2006. Inductive teaching and learning methods: Definitions, comparisons, and research bases. In: Journal of Engineering Education, vol. 95, no. 2, pp. 123-138
  • J.J.G. Merrienboer, P. Kirschner (2003). Taking the Load Off a Learner’s Mind. In: Instructional Design for Complex Learning. In: Educational Psychologist
  • Soska, A., Reuter, R., Hauser, F., Reiß, M. & Mottok, J. (2017). Scaffolding in der Lehre von Design Pattern. Tagungsband zum 3. Symposium zur Hochschullehre in den MINT-Fächern, 112–116.