WS 98/99 - Inhalt Algorithmen und Programmierung III
Teil I: Datenabstraktion und objektorientierte Programmierung
1 Strukturierung großer Programme
Java: Klasse, Paket.
Modula: Definitions- und Implementierungs-Modul. Getrennte Übersetzung,
Binden, Laden. Bibliotheksklassen/module.
Kernbegriffe: Modulare Struktur, Schnittstelle, Geheimnisprinzip.
2 Datenabstraktion
Beispiel Schlange. Abstraktes Datenobjekt, abstrakter Datentyp.
Schnittstelle versus Klasse.
Module als Objektverwalter. Modulbasierte versus klassenbasierte
Programmierung. Datenabstraktion in Haskell.
3 Polymorphie und Vererbung
Schnittstellentyp, alternative Implementierungen für eine
Schnittstelle. Polymorphe Typsysteme. Vererbung als Erweiterung
von Schnittstelle oder Implementierung, abstrakte Klassen.
Typklassen in Haskell.
4 Spezifikation
Spezifikation versus Implementierung, Verifikation.
Informelle, formale und formalsprachliche Spezifikation.
Spezifikation modellierend, algebraisch, mit Haskell.
5 Korrekte Implementierung
Datenrepräsentation und zugehörige Algorithmen.
Abstraktionsfunktion, abstrakte und konkrete Invariante.
Korrektheit von Repräsentation und Algorithmen (Pre/Postconditions).
Behandlung von Ausnahmen.
Teil II: Datenstrukturen und Algorithmen
6 Tupel und Folgen
Verbunde, Felder, Listen; Keller, dynamische Speicherverwaltung,
Entrekursivierung, Auswertung arithmetischer Ausdrücke; Schlangen;
einschlägige Vererbungshierarchien. Manipulation von Zeichenketten.
7 Bäume
Alternative Modelle für Bäume. Beispiele für
Baumstrukturen. Repräsentation: Feld, Geflecht.
Traversieren, Tiefendurchlauf vs. Breitendurchlauf; iteratives
Traversieren.
8 Mengen, Multimengen, Relationen
Repräsentation: linear sortiert/unsortiert, Bitfeld,
Streuspeicherung, Suchbäume (AVL, B, B*, ISAM), Heap.
Prioritätsschlangen. Mengen von Folgen (trie).
Relationen; Indexe.
9 Graphen
Modellierung, Anwendungen. Operationen auf Graphen.
Graphalgorithmen: einfaches Suchen, Traversieren; Algorithmen
von Dijkstra, Warshall, Kruskal. Repräsentation:
Geflechte, Adjazenzmatrix/listen.
10 Geometrische Objekte
Modellierung und Repräsentation. Schnittprobleme,
Maßproblem.
11 Resümee: Algorithmenstrukturen
Backtracking, Divide&Conquer, Greedy, Branch&Bound,
Plane Sweep.
Teil III: Datenspeicherung
12 Speicherverwaltung
Statische vs. dynamische Speicherverwaltung, Keller
und Halde. Haldenverwaltung, Fragmentierung,
Kompaktifizierung. Explizite Speicherfreigabe vs.
automatische Speicherbereinigung; Verweiszähler,
Mark&Sweep.
13 Persistente Objekte
Persistenz. Dateien: Modelle, Operationen,
Repräsentation. Vorschau auf Datenbanken: Relationales Datenmodell,
Schema-Architektur, Anfragen, Repräsentation.
Objektorientierte Datenbanken.
Lehre
Home
Letzte Änderung am 9.10.98