Studienziele:
Kenntnisse über Spezifikationstechniken, Komplexitätsanalyse, Datenstrukturen und Algorithmenentwurf; Fähigkeit zu Spezifikation und Entwurf von Datenstrukturen und Algorithmen
Studieninhalte:
Grundlagen:
Algorithmenbegriffe, programmiersprachliche Konstrukte zur Algorithmenspezifikation, ausgewählte Algorithmenprobleme
Algorithmenanalyse:
Mathematische Grundlagen, Komplexitätsklassen, Laufzeitberechnungen
Abstrakte Datentypen und deren Implementierung:
axiomatische und programmiersprachliche Spezifikation, grundlegende Datenstrukturen (Liste, Stack, Queue etc.)
Sortieralgorithmen:
grundlegende in-memory und external Sortieralgorithmen
Bäume:
Grundlagen, Binärbäume, Mehrwegbäume, AVL-Bäume, binäre Suchbäume und weitere Baumarten
Hashing:
Grundlagen, Kollisionsstrategien, Anwendungen