Zur Hauptnavigation springen [Alt]+[0] Zum Seiteninhalt springen [Alt]+[1]

Einleitung

Bildungsplanbezug

Das vorliegende Material soll exemplarisch Ideen zur Umsetzung der Bildungsstandards Informatik im Leistungsfach der Kursstufe zum Thema: „Strukturierte und objektorientierte Programmierung“ skizzieren. Der Fokus liegt dabei auf folgenden Kompetenzen:

(14) generische Datentypen bei der Instanziierung vorgegebener Klassen verwenden

(15) sprachliche Mittel zur Sammlung gleichartiger Objekte (Collection) und zum Durchlaufen aller Elemente der Sammlung1 (zum Beispiel Iteration, foreach, Lambdaausdrücke etc.) nutzen

Von den Lernenden wird in beiden Kompetenzen lediglich die Nutzung verlangt, ohne näheres über die Implementierung der generischen Datentypen und der ebenfalls generischen Sammlungen zu kennen. Dies ist nur dann möglich, wenn eine Beschreibung dieser vorliegt. Anstatt diese den Schülerinnen und Schülern vorzugeben, bietet sich die offizielle Dokumentation der grundlegenden APIs der Java-Plattform an. Dies ist ganz im Sinne folgender Kompetenz im selben Abschnitt des Bildungsplans:

(22) Dokumentationen zu gegebenem Quellcode und Bibliotheken nutzen

Entsprechend befähigt die Kompetenz (22) gerade dazu (14) und (15) zu erlernen.

Einbindung in den Unterricht

Dieses Dokument liefert nun die Hintergründe zu den oben genannten Kompetenzen und basiert größtenteils auf der offiziellen Sprachspezifikation2 und der Dokumentation der grundlegenden APIs3 insbesondere java.util und java.util.function. Erstere enthält das Collections Framework, letztere funktionale Interfaces, welche für Lambdaausdrücke benötigt werden.

Es gibt zu dem Thema viele offizielle wie inoffizielle Erklärungen und Anleitungen in englisch wie auch auf deutsch. Allerdings werden Fachbegriffe oft unterschiedlich und teils auch ungenau bzw. falsch ins deutsche übersetzt. Bei der Verwendung dieser Quellen und Begriffe im Unterricht können daher Fehlvorstellungen entstehen.

So wird beispielsweise im Zusammenhang mit Methoden der Begriff „actual parameter“ teils mit „aktueller Parameter“ übersetzt. „Aktuell“ suggeriert, dass sich der Parameter mit der Zeit ändern kann. Genau genommen kann jedoch nur ein konkreter Wert beim Methodenaufruf übergeben werden, ohne dass sich der Parameter (benannter Wertespeicher) selbst ändert. Im Methodenkontext ist diese Ungenauigkeit nicht weiter schlimm, da der Wert von der Methode selbst manipuliert werden darf. Wird allerdings im Kontext generischer Typen „actual type parameter“ mit „aktueller Typparameter“ übersetzt, könnte der Eindruck entstehen, dass es sich hier ebenfalls um einen Wert handelt, welcher nach Instanziierung einer generisch definierten Klasse von dieser verändert werden kann. Dies ist aber nicht der Fall. Zur klaren Abgrenzung verwendet dieses Dokument daher den Begriff „Argument“ für manipulierbare Werte oder Objekte und „Parameter“ für benannte Wertespeicher. Bei einer Abstraktion wird ‚formal‘ vorangestellt, bei einer Konkretisierung ‚konkret‘. Die genauen Begriffsdefinitionen finden sich im entsprechenden Abschnitt (Seiten 7,12).

Das Hintergrunddokument ist für die Lehrkraft gedacht. Es behandelt weit aus mehr, als im Unterricht mit den Schülerinnen und Schülern behandelt werden kann und muss. Vielmehr soll es das Wichtigste für die Lehrkraft präzise und knapp auf deutsch zusammenfassen und sicherstellen, dass eine korrekte und einheitliche Fachsprache verwendet wird.

In den Dokumenten 02_Stoffverteilungsplan.odt und 03_Unterrichtsverlauf.odt wird ein möglicher Unterrichtsgang mit Aufgaben skizziert. Dieser stellt klar, welche Inhalte tatsächlich im Unterricht behandelt werden sollen und verweist auf entsprechende Stellen des Hintergrunddokuments, die für eigenes Unterrichtsmaterial geeignet sind.

Der Unterrichtsgang setzt voraus, dass die Grundlagen der Objektorientierung (Klasse, Attribute, Methoden mit Parametern und Rückgabewerten, Datentypen und Typumwandlung, Methodensignatur, Zugriffsmodifikation insbesondere Setter/Getter, Kapselung, Konstruktoren und Instanziierung) bereits bekannt und eingeübt sind.

Es bietet sich an, die Einheit vor der Unterrichtseinheit zu ADTs einzuschieben, da dort die Implementierung einiger ADTs generisch erfolgen kann. Im Graphentester der Unterrichtseinheit „Graphen und ihre Algorithmen“ können Lambdaausdrücke verwendet werden. Sollen Lambdaausdrücke unterrichtet werden, dann am besten vor dieser Einheit.

 

1 Es gibt zwei Arten zusammengesetzter Datentypen zur Speicherung gleichartiger Objekte. Arrays und Collections wie Listen, Bäume, Queues, Stacks, etc. Da der Bildungsplan bei Arrays von „Speicherung und Verarbeitung gleichartiger Daten“ (Brückenkurs 3.1.2 Algorithmen) spricht und bei „sprachliche Mittel zur Sammlung gleichartiger Objekte“ (15) explizit den Begriff Collection angibt, werden Arrays hier nicht zu den Sammlungen gezählt.

2 https://docs.oracle.com/javase/specs/jls/se11/html/index.html(ausgewertet am 22.12.2020)

3 https://docs.oracle.com/en/java/javase/11/docs/api/java.base/module-summary.html(ausgewertet am 22.12.2020)

 

Hintergrundinformationen: Herunterladen [odt][370 KB]

Hintergrundinformationen: Herunterladen [pdf][480 KB]

 

Weiter zu Technische Hintergründe