WS 97/98 - Inhalt Algorithmen und Programmierung III
Teil I: Datenabstraktion und objektorientierte Programmierung
1 Modularisierung
Modula: Definitions- und Implementierungs-Modul, getennte Übersetzung,
Binden; lokale Module . Beispiel Schlange, Beispiel Bibliotheksmodule.
Begriffe: Schnittstelle, Geheimnisprinzip.
2 Datenabstraktion
Beispiel Schlange. Abstraktes Datenobjekt, abstrakter Datentyp.
Schnittstelle, Spezifikation, Implementierung. Module als Objektverwalter.
Klassen, Prototypen versus Klassen. Generizität. Modulbasierte
versus klassenbasierte
Programmierung. Datenabstraktion in Miranda.
3 Polymorphie und Vererbung
Schnittstellentyp, alternative Implementierungen für eine
Schnittstelle. Polymorphe Typsysteme. Vererbung als Erweiterung
von Schnittstelle oder Implementierung, abstrakte Klassen.
Schnittstellen und Klassen in Java.
4 Spezifikation
Spezifikation versus Implementierung, Verifikation.
Informelle, formale und formalsprachliche Spezifikation.
Spezifikation modellierend, algebraisch, mit Miranda.
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.
6 Effiziente Implementierung
Laufzeit- versus Speicherkomplexität, Wiederholung O-Notation (ALP II).
Beispiel lineare Repräsentationen von Mengen.
Teil II: Datenstrukturen und Algorithmen
7 Tupel und Folgen
Verbunde, Felder, Listen; Keller, dynamische Speicherverwaltung,
Entrekursivierung, Auswertung arithmetischer Ausdrücke; Schlangen;
einschlägige Vererbungshierarchien. Manipulation von Zeichenketten.
8 Bäume
Alternative Modelle für Bäume. Beispiele für
Baumstrukturen. Repräsentation: Feld, Geflecht.
Traversieren, Tiefensuche vs. Breitensuche; iteratives
Traversieren.
9 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.
10 Graphen
Modellierung, Anwendungen. Operationen auf Graphen.
Graphalgorithmen: einfaches Suchen, Traversieren; Algorithmen
von Dijkstra, Warshall, Kruskal. Repräsentation:
Geflechte, Adjazenzmatrix/listen.
11 Geometrische Objekte
Modellierung und Repräsentation. Schnittprobleme,
Maßproblem.
12 Algorithmenstrukturen
Backtracking, Divide&Conquer, Greedy, Branch&Bound,
Plane Sweep.
Teil III: Datenspeicherung
13 Speicherverwaltung
Statische vs. dynamische Speicherverwaltung, Keller
und Halde. Haldenverwaltung, Fragmentierung,
Kompaktifizierung. Explizite Speicherfreigabe vs.
automatische Speicherbereinigung; Verweiszähler,
Mark&Sweep.
14 Persistente Objekte
Persistenz. Dateien: Modelle, Operationen,
Repräsentation. Datenbanken: Relationales Datenmodell,
Schema-Architektur, Anfragen, Repräsentation.
Objektorientierte Datenbanken.
Lehre
Home
Letzte Änderung am 28.11.1997