Nachdem sich die Schüler in der zweiten Hälfte des vorangegangenen Schuljahrs mit statischer Modellierung beschäftigt haben, wenden sie sich nun grundlegenden Konzepten der automatischen Verarbeitung von Information zu. Anknüpfend an ihre Erfahrungen mit einfachen Abläufen bei der Bedienung von Automaten aus ihrer Lebensumgebung, wie z. B. Fahrkartenautomaten, lernen sie, dass sich diese Abläufe durch eine Gliederung in Zustände und Zustandsübergänge der beteiligten Objekte beschreiben lassen. Folgen von Zustandsübergängen führen die Schüler zu den Grundstrukturen von Algorithmen. Die Jugendlichen erkennen dabei die wesentlichen Bausteine algorithmischer Ablaufbeschreibungen wieder, mit denen sie sich bereits in Jahrgangsstufe 7 beschäftigt haben. Sie verwenden nun Algorithmen zur Beschreibung der Funktionsweise von Methoden und vertiefen dabei ihre Kenntnisse im Erstellen von Ablaufvorschriften.
Den Schülern wird deutlich, dass in der objektorientierten Sichtweise alle bisher angewandten Techniken zielgerichtet und miteinander verzahnt zur Lösung umfangreicherer Aufgabenstellungen genutzt werden können. Gleichzeitig gewinnen sie ein deutlich tieferes Verständnis für die bereits in den Jahrgangsstufen 6 und 7 eingeführten Fachbegriffe der objektorientierten Sichtweise.
Die neuen Inhalte begegnen den Schülern im Rahmen von ausbaufähigen Aufgabenstellungen, wobei die praktische Arbeit einen großen Anteil des Unterrichts umfasst. Gleichzeitig erfahren die Jugendlichen auch schrittweise die grundlegenden Vorgehensweisen bei der Planung von Softwareprojekten. Sie erkennen, dass erst durch sorgfältig geplante Teamarbeit in Verbindung mit einem soliden Fundament an Wissen und einer klar strukturierten Vorgehensweise die Lösung von schwierigen, für den Einzelnen zu umfangreichen Aufgabenstellungen möglich wird.
Inf 10.1 Objekte und Abläufe
Die Schüler beschäftigen sich nun intensiver mit dem Verhalten von Objekten. Dabei lernen sie, Abläufe zu modellieren und automatisierte Vorgänge zu gestalten. Sie entwerfen Zustandsmodelle sowie Algorithmen und überprüfen deren Stimmigkeit durch Realisierung auf einem Computer.
Inf 10.1.1 Zusammenfassung und Festigung der bisher erlernten objektorientierten Konzepte (ca. 4 Std.)
Unter Verwendung einer geeigneten Entwicklungsumgebung für die objektorientierte Modellierung wiederholen und präzisieren die Schüler anhand von einfachen Beispielen die bekannten Begriffe und Notationen der objektorientierten Sichtweise. Dabei wird ihnen deutlich, dass Objekte im Wesentlichen eine Einheit aus Attributen und Methoden darstellen. Die Schüler greifen hierbei ihre Kenntnisse über Daten und Funktionen aus der vorhergehenden Jahrgangsstufe auf.
-
Wiederholung und Präzisierung der Begriffe Objekt, Klasse, Attribut, Methode
-
Objekt als Kombination aus Attributen und Methoden
-
graphische Darstellung von Klassen und Objekten, Beschreibung statischer Beziehungen durch Objekt- bzw. Klassendiagramme
Inf 10.1.2 Zustände von Objekten und algorithmische Beschreibung von Abläufen (ca. 22 Std.)
Die Schüler lernen, die Veränderungen von Objekten mithilfe von Zuständen und Übergängen zu beschreiben sowie mit Zustandsübergangsdiagrammen zu dokumentieren. Bei der Umsetzung dieser Zustandsmodelle in objektorientierte Programme legen sie die Zustände durch Werte von Attributen (Variablen) fest und ordnen den Übergängen Methodenaufrufe zu. Dabei wird den Jugendlichen deutlich, dass zwischen den Zuständen der realen Objekte, deren Verhalten simuliert werden soll, und den Zuständen der Programmobjekte zu unterscheiden ist.
Bei dieser Umsetzung der Zustandsmodelle in objektorientierte Programme verwenden die Schüler bereits bekannte Bausteine von Algorithmen. Anhand überschaubarer Beispiele vertiefen sie so ihre Kenntnisse über die algorithmische Beschreibung von Abläufen. Zudem verdeutlicht ihnen die Zustandssicht auf Attribute, dass sich der Variablenbegriff der Informatik von dem der Mathematik grundlegend unterscheidet.
-
Zustand von Objekten: Festlegung durch Zustände der Attribute, Zustandsübergang durch Wertzuweisung
-
Zustandsdiagramme einfacher Automaten (Zustand, Zustandsübergang: auslösende Aktion, Bedingung und ausgelöste Aktion), Zustandsübergangstabelle
-
Variablenkonzept am Beispiel von Attributen (Bezeichner, Wert, Typ bzw. Klasse, Zuweisung)
-
einfache und zusammengesetzte Datentypen, insbesondere Feld
-
Lebenszyklus von Objekten von der Instanzierung über die Initialisierung bis zur Freigabe
-
Algorithmen: Begriff, Strukturelemente, graphische Darstellung
-
Umsetzung der beschriebenen Abläufe in objektorientierte Programme; Beispiele für einfache Algorithmen
Inf 10.1.3 Beziehungen zwischen Objekten (ca. 10 Std.)
Die Schüler erkennen, dass wesentliche Abläufe eines Systems auf der Kommunikation zwischen seinen Objekten basieren. Für die vollständige Beschreibung müssen neben den bereits kennengelernten statischen auch die dynamischen Beziehungen zwischen Objekten bzw. Klassen erfasst werden. Hierfür lernen die Jugendlichen geeignete graphische Notationen kennen und erarbeiten Möglichkeiten zur Realisierung der Beziehungen in einer Programmiersprache.
- Kommunikation zwischen Objekten durch Aufruf von Methoden; Interaktionsdiagramme; Datenkapselung
- Definition von Schnittstellen: Ein- bzw. Ausgangsparameter, Funktionswert, Probleme bei der Verwendung globaler Variablen
- Realisierung der Enthält-Beziehung, Referenzen auf Objekte
Inf 10.2 Generalisierung und Spezialisierung (ca. 10 Std.)
Die Jugendlichen verwenden hierarchische Strukturen zur Ordnung ihrer Erfahrungswelt. Sie erkennen, dass sich diese oft durch eine spezielle Art von Beziehungen zwischen den Klassen eines Modells darstellen lassen. Die Schüler lernen hier das Prinzip der Vererbung kennen und wenden es an. Sie beschäftigen sich insbesondere mit der Möglichkeit einer zunehmenden Spezialisierung durch Veränderung ererbter Methoden.
- Generalisierung bzw. Spezialisierung durch Ober- bzw. Unterklassen, Abbildung in Klassendiagramme, Vererbung
- Polymorphismus und Überschreiben (overriding) von Methoden
Inf 10.3 Anwendungsbeispiel (ca. 10 Std.)
Ein Projekt (z. B. Flugbuchungssystem, Simulation zeitdynamischer Systeme wie Populationsentwicklung) bietet den Jugendlichen die Möglichkeit zu erfahren, dass erst das Zusammenspiel ihrer bisher erworbenen Kenntnisse und konstruktives Arbeiten im Team es erlauben, komplexere Aufgabenstellungen zu bearbeiten. Sie setzen mehrere Beschreibungstechniken ein und machen sich damit deren Zusammenwirken in einem größeren Kontext bewusst.