Aktivität 01
Pair Programming: Interface-Implementierung
Paare definieren eine Schnittstelle für Formen (z. B. Fläche berechnen). Jede Person implementiert eine Klasse (Kreis, Rechteck). Gemeinsam testen sie polymorph in einer Hauptmethode. Diskutieren Sie Erweiterbarkeit.
Erklären Sie, wie Polymorphie die Flexibilität und Erweiterbarkeit von Code erhöht.
ModerationstippWährend der Pair-Programming-Phase gezielt die Kontrolle übernehmen, wenn Partner die Unterschiede zwischen Schnittstellen und abstrakten Klassen nicht direkt erkennen können, und gezielt Fragen stellen, die zum Nachdenken anregen.
Worauf zu achten istDie Schüler erhalten ein Code-Snippet mit einer abstrakten Klasse und mehreren abgeleiteten Klassen. Sie sollen eine Methode überschreiben und erklären, wie Polymorphie hier angewendet wird, um eine Liste von Objekten der abgeleiteten Klassen zu verarbeiten.
AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerungBeziehungsfähigkeit
Komplette Unterrichtsstunde erstellen→· · ·
Aktivität 02
Small Groups: Polymorphie-Refactoring
Gruppen erhalten ein starres Programm mit dupliziertem Code. Sie refactoren es mit einer abstrakten Superklasse und Polymorphie. Testen Sie mit neuen Unterklassen und protokollieren Verbesserungen.
Differentiieren Sie zwischen abstrakten Klassen und Schnittstellen in der Objektorientierung.
ModerationstippBei der Polymorphie-Refactoring-Aufgabe explizit darauf achten, dass die Gruppen nicht nur Code umschreiben, sondern auch die Gemeinsamkeiten und Unterschiede der Methodenaufrufe dokumentieren.
Worauf zu achten istStellen Sie die Frage: 'Wann würden Sie eine abstrakte Klasse und wann eine Schnittstelle verwenden?' Lassen Sie die Schüler in Kleingruppen diskutieren und ihre Argumente anhand von Beispielen wie einem 'Tier'-Modell oder einem 'Formen'-Zeichenprogramm begründen.
AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerungBeziehungsfähigkeit
Komplette Unterrichtsstunde erstellen→· · ·
Aktivität 03
Whole Class: Szenario-Ausbau
Klasse erweitert gemeinsam ein Grafik-Editor-Beispiel. Lehrer demonstriert Schnittstelle, Schüler schlagen Erweiterungen vor und implementieren in Echtzeit. Abschließende Diskussion zu Wartbarkeit.
Konstruieren Sie ein Szenario, in dem Polymorphie die Wartbarkeit des Codes verbessert.
ModerationstippBeim Szenario-Ausbau als Lehrkraft bewusst Fehler einbauen, die die Lernenden in der Diskussion entdecken und korrigieren müssen, um das Konzept der losen Kopplung zu verdeutlichen.
Worauf zu achten istZeigen Sie eine einfache Klassenhierarchie (z. B. Fahrzeug -> Auto, Fahrrad) und eine Liste von Methoden. Die Schüler sollen identifizieren, welche Methoden polymorph aufgerufen werden können und welche Schnittstelle oder abstrakte Klasse dafür notwendig wäre.
AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerungBeziehungsfähigkeit
Komplette Unterrichtsstunde erstellen→· · ·
Aktivität 04
Individual: Erweiterungs-Challenge
Jeder Schüler erweitert ein vorgegebenes polymorphes System um eine neue Klasse mit Schnittstelle. Peer-Review folgt, um Flexibilität zu bewerten.
Erklären Sie, wie Polymorphie die Flexibilität und Erweiterbarkeit von Code erhöht.
Worauf zu achten istDie Schüler erhalten ein Code-Snippet mit einer abstrakten Klasse und mehreren abgeleiteten Klassen. Sie sollen eine Methode überschreiben und erklären, wie Polymorphie hier angewendet wird, um eine Liste von Objekten der abgeleiteten Klassen zu verarbeiten.
AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerungBeziehungsfähigkeit
Komplette Unterrichtsstunde erstellen→Einige Hinweise zum Unterrichten dieser Einheit
Erfahrene Lehrkräfte beginnen mit konkreten Beispielen, bevor abstrakte Konzepte eingeführt werden. Vermeiden Sie es, zu schnell in Theorie abzugleiten, und nutzen Sie Fehler als Lernchance. Der beste Ansatz ist, die Schülerinnen und Schüler selbst entdecken zu lassen, warum Polymorphie und Schnittstellen nützlich sind, statt es ihnen vorzuschreiben. Visualisierungen wie Klassendiagramme helfen, die Zusammenhänge sichtbar zu machen.
Erfolgreiches Lernen zeigt sich, wenn die Lernenden selbstständig polymorphe Methodenaufrufe erklären können und gezielt Schnittstellen oder abstrakte Klassen einsetzen, um flexible Code-Strukturen zu erstellen. Sie erkennen auch, wann welche Lösung besser passt und können ihre Entscheidungen begründen.
Vorsicht vor diesen Fehlvorstellungen
Während der Pair-Programming-Aktivität 'Interface-Implementierung' beobachten Sie...
Erinnern Sie die Partner daran, dass Polymorphie durch Überschreibung und nicht durch Überladung entsteht. Lassen Sie sie testen, wie derselbe Methodenname in verschiedenen Klassen unterschiedliche Ergebnisse liefert, indem sie Objekte in einer Liste speichern und durchlaufen.
Während der Small-Groups-Aktivität 'Polymorphie-Refactoring' achten Sie auf...
Fragen Sie die Gruppen gezielt, warum sie sich für eine Schnittstelle oder eine abstrakte Klasse entschieden haben. Fordern Sie sie auf, zu erklären, wie der Code ohne Polymorphie aussehen würde, um den Nutzen der losen Kopplung sichtbar zu machen.
Während der Individual-Aktivität 'Erweiterungs-Challenge' fällt auf...
Weisen Sie darauf hin, dass abstrakte Klassen nicht instanziiert werden können, indem Sie den Compiler-Fehler direkt mit den Lernenden analysieren und gemeinsam korrigieren lassen.
In dieser Übersicht verwendete Methoden