Aktivität 01
Pair-Programming: Singleton implementieren
Paare erhalten einen unvollständigen Code mit mehreren Instanzen einer Klasse. Sie implementieren das Singleton-Muster, testen es und dokumentieren den Effekt auf Speicherverbrauch. Abschließend präsentieren sie den refaktorierten Code der Klasse.
Wie können Entwurfsmuster die Wiederverwendbarkeit und Wartbarkeit von Code verbessern?
ModerationstippGib beim Pair-Programming klare Rollen vor: Eine Person schreibt Code, die andere analysiert und hinterfragt jede Zeile. Wechselt die Rollen nach 15 Minuten.
Worauf zu achten istGeben Sie jedem Schüler ein kleines Kärtchen mit einem kurzen Code-Snippet, das ein Problem beschreibt (z.B. 'Wie stelle ich sicher, dass nur eine Konfigurationseinstellung geladen wird?'). Die Schüler schreiben auf das Kärtchen, welches Entwurfsmuster sie zur Lösung verwenden würden und warum.
AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerung
Komplette Unterrichtsstunde erstellen→· · ·
Aktivität 02
Small Groups: Pattern-Vergleich
Gruppen analysieren drei Szenarien (z.B. Logger, Konfigurationsmanager, UI-Controller) und wählen passende Muster. Sie skizzieren UML-Diagramme, implementieren Prototypen und diskutieren Vor-/Nachteile in Plenum.
Analysieren Sie die Vor- und Nachteile des Singleton-Musters in verschiedenen Kontexten.
ModerationstippStelle beim Pattern-Vergleich konkrete Code-Snippets bereit, die dasselbe Problem einmal mit Factory und einmal mit Builder lösen. So wird der Unterschied greifbar.
Worauf zu achten istStellen Sie eine Frage wie: 'Nennen Sie eine Situation, in der die Verwendung des Singleton-Musters problematisch sein könnte und erklären Sie kurz warum.' Sammeln Sie die Antworten mündlich oder über ein digitales Umfragetool.
AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerung
Komplette Unterrichtsstunde erstellen→· · ·
Aktivität 03
Whole Class: Refactoring-Challenge
Die Klasse refaktoriert gemeinsam einen chaotischen Code-Bestand mit Factory-Muster. Lehrer moderiert, Schüler voten per Tool (z.B. Mentimeter) über Schritte. Abschluss: Gemeinsame Review der Verbesserungen.
Wann ist es sinnvoll, ein bestehendes Entwurfsmuster zu adaptieren oder ein neues zu entwickeln?
ModerationstippMach bei der Refactoring-Challenge vorab ein schlechtes Code-Beispiel sichtbar, zum Beispiel eine Klasse mit 200 Zeilen. Die Schüler sollen erkennen, wie Muster hier Struktur schaffen.
Worauf zu achten istTeilen Sie die Klasse in Kleingruppen auf. Jede Gruppe erhält eine Beschreibung eines einfachen Programmierproblems. Sie sollen eine Lösung entwerfen, die ein bestimmtes Entwurfsmuster nutzt, und diese als einfaches Klassendiagramm darstellen. Anschließend präsentieren sie ihre Lösung der Nachbargruppe, die Feedback zur Klarheit und Korrektheit der Musteranwendung gibt.
AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerung
Komplette Unterrichtsstunde erstellen→· · ·
Aktivität 04
Individual: Muster-Anpassung
Jeder Schüler passt ein Observer-Muster an ein eigenes Projekt an (z.B. Wetter-App). Sie notieren Gründe für Änderungen und teilen in Peer-Feedback-Runde.
Wie können Entwurfsmuster die Wiederverwendbarkeit und Wartbarkeit von Code verbessern?
ModerationstippFordere bei der Muster-Anpassung gezielt Variationen: 'Wie sähe das Singleton aus, wenn wir Thread-Safety mit synchronisierten Methoden umsetzen?'
Worauf zu achten istGeben Sie jedem Schüler ein kleines Kärtchen mit einem kurzen Code-Snippet, das ein Problem beschreibt (z.B. 'Wie stelle ich sicher, dass nur eine Konfigurationseinstellung geladen wird?'). Die Schüler schreiben auf das Kärtchen, welches Entwurfsmuster sie zur Lösung verwenden würden und warum.
AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerung
Komplette Unterrichtsstunde erstellen→Einige Hinweise zum Unterrichten dieser Einheit
Lehrkräfte sollten Entwurfsmuster nicht isoliert unterrichten, sondern immer im Kontext konkreter Probleme. Beginne mit kleinen, fehlerhaften Code-Beispielen, die die Schüler selbst reparieren. Vermeide Frontalunterricht zu den Mustern selbst – stattdessen lass sie durch Tun entstehen. Achte darauf, dass die Diskussion über Vor- und Nachteile im Mittelpunkt steht, nicht die perfekte Umsetzung. Forschung zeigt, dass Schüler Muster besser verstehen, wenn sie deren Wirkung im Code selbst erleben, statt nur Definitionen zu lernen.
Am Ende der Einheit können die Lernenden Entwurfsmuster nicht nur benennen, sondern gezielt einsetzen, ihre Vor- und Nachteile abwägen und in realen Code-Situationen anpassen. Sie diskutieren bewusst, wann ein Muster passt und wann eine einfachere Lösung vorzuziehen ist. Ihr Code wird klarer, testbarer und leichter erweiterbar.
Vorsicht vor diesen Fehlvorstellungen
Während des Pair-Programmings zum Singleton-Muster beobachte, ob Schüler starre Lösungen vorschlagen, die Thread-Safety ignorieren.
Gib den Teams den Auftrag, zwei Varianten zu implementieren: eine naive und eine threadsichere Version. Lasst sie die Unterschiede in der Laufzeit und Komplexität vergleichen.
Während des Pattern-Vergleichs nehmen einige Schüler an, Singleton sei immer die beste Wahl für globale Zustände.
Zeige den Gruppen bewusst Beispiele, in denen Singleton zu Problemen führt, etwa bei Unit-Tests. Fordere sie auf, Alternativen wie Dependency Injection zu skizzieren.
Während der Refactoring-Challenge argumentieren manche, dass mehr Muster automatisch zu besserem Code führen.
Gib den Schülern die Aufgabe, bewusst ein Muster zu entfernen, wenn es den Code unnötig verkompliziert. Lasst sie die Auswirkungen auf Lesbarkeit und Wartung diskutieren.
In dieser Übersicht verwendete Methoden