Inhalte:
Ausgangspunkt ist das Geheimnisprinzip und seine Bedeutung für die Strukturierung von Programmen und die Konstruktion
von Datenobjekten mittels Modulen und Klassen. Eine zentrale Rolle bei der Modellierung von Daten spielt
der Begriff der Datenabstraktion, verbunden mit der Unterscheidung zwischen Spezifikation und Implementierung
abstrakter Datenobjekte und Datentypen. Folgen, Mengen, Relationen, Bäume, Graphen und geometrische Objekte
werden als abstrakte Typen eingeführt. Anschließend werden effizient manipulierbare Repräsentationen dieser Typen
betrachtet und die zugehörigen Algorithmen auf ihre Komplexität hin untersucht.
In der objektorientierten Programmierung spielen neben der Datenabstraktion Vererbung und Polymorphie eine wesentliche
Rolle. Abstrakte Datentypen werden daher häufig unter Verwendung von Vererbungsmechanismen spezifiziert
und implementiert. Für typische Problemlösungen lassen sich Entwurfsmuster angeben; die Behandlung der
Muster Iterator, Kompositum, Abstrakte Fabrik bietet sich an.
Technische Aspekte der Datenspeicherung im Arbeitsspeicher (Keller und Halde) und im Hintergrundspeicher (Dateien,
persistente Objekte) werden behandelt. Programmiert wird sowohl in objektorientierten als auch in funktionalen
Sprachen.