Abstrakte Datentypen (ADT) können als Vorstufe von Objektorientierung angesehen werden. Dabei werden noch nicht ganze Gegenstände (Objekte) aus der Realität abgebildet, aber bereits Daten mit zulässigen Operation versehen. Dabei beschreibt der ADT was die Operationen tun, aber nicht wie sie es tun sollen. Nur die Schnittstellen nach aussen wichtig, die Details der Implementierung interessieren nicht. Da ADTs einfach gehalten werden, können sie in vielen Programmen als „Helfer“ eingesetzt werden.
So können z.B. die Zahlenmengen (N, Z, Q, R, C) als ADT mit entsprechend zulässigen mathematischen Operationen versehen werden. In N ist die Subtraktion nur bedingt zulässig, die Menge Z ist gegenüber der Division noch nicht abgeschlossen, usw.
Mathematisch kann man sich auch gut einen 3D-Vektor vorstellen, für welchen dann alle Operationen einschliesslich Skalar-, Vektorprodukt und Berechnung des Betrags definiert werden. Damit wird die Vektorgeometrie zum Kinderspiel.
Anzustrebende Eigenschaften eines gut programmierten ADT und meist auch einer gut spezifizierten Datenstruktur sind:
Universalität: Der einmal entworfene und implementierte ADT kann in jedes beliebige Programm einbezogen und dort benutzt werden.
Präzise Beschreibung: Die Schnittstelle zwischen Implementierung und Anwendung muss eindeutig und vollständig sein.
Einfachheit: Bei der Anwendung interessiert die innere Realisierung des ADT nicht, der ADT übernimmt seine Repräsentation und Verwaltung im Speicher selbst.
Kapselung: Die Schnittstelle soll als eine hermetische Grenze aufgefasst werden. Der Anwender soll sehr genau wissen, was ein ADT tut, aber keinesfalls, wie er es tut.
Geschütztheit: Der Anwender kann in die interne Struktur der Daten nicht eingreifen. Die Gefahr, Daten ungewollt zu löschen bzw. zu verändern sowie Programmierfehler zu begehen, ist dadurch deutlich herabgesetzt.
Modularität: Das modulare Prinzip erlaubt übersichtliches und damit sicheres Programmieren und leichten Austausch von Programmteilen. Bei der Fehlersuche können einzelne Typen isoliert betrachtet werden. Nachträgliche Verbesserungen können über ADTs einfach realisiert werden.
Gegenstände werden eindeutig mit zulässigen Operationen verknüpft. Zum Beispiel kann ein Fenster im Allgemeinen geöffnet und geschlossen werden,
Wie bei
P1 Control: Kontrollstrukturen sind auch hier Entwurf und Implementierung strikt von einander zu trennen. So ist beim Fenster egal, wie es genau geöffnet oder geschlossen wird.
ADTs sind sehr universell einsetzbar, einfach und in sich abgeschlossen bereiten somit den Weg von der Strukturierung zur Objektorientierung.
Ich kann Beispiele von Alltagsdaten nennen, welche sich zur Implementierung als ADT eignen und dies begründen.
Ich kennen die Vorteile von ADTs (Universalität, Einfachheit, Kapselung, Schutz, Modularität) kann diese anhand eines Beispiels erklären.
Ich kann einen ADT (Daten und Operationen) in einer abtrakten Sprache vollständig beschreiben.
Ich kann den Entwurf eines ADTs in einer beliebigen Programmiersprache implementieren.

Natürliche Vorstufe zu OO. Eignet sich auch für enaktive und computerlose Darstellung. —
Paul Miotti 2008/06/24

Welche ADT lassen sich attraktiv vermitteln. Z.B. 3D —
Hakim Ghezal 2008/06/27