Über das Modul “Algorithmik”
Inhaltsverzeichnis
Modulübersicht
Das Modul Algorithmik ist ein Pflichtfach an der Technischen Hochschule Köln. Ziel des Moduls ist es, Studierenden fundierte Kenntnisse zur formalen Beschreibung, Speicherung und effizienten Verarbeitung von Daten durch geeignete Algorithmen und Datenstrukturen zu vermitteln.
Lernziele
Studierende lernen in diesem Modul:
- Praktische Problemstellungen formal zu beschreiben und zu charakterisieren,
- Passende Datenstrukturen zur Speicherung von Daten auszuwählen,
- Effiziente Algorithmen auszuwählen, zu entwerfen und zu implementieren,
- Laufzeit und Speicherbedarf von Algorithmen asymptotisch zu analysieren (O-, $\Theta$-Notation).
Vorlesungen
Die Vorlesungen finden zweimal wöchentlich statt (Montags und Donnerstags). In den Vorlesungen werden die theoretischen Grundlagen vermittelt und durch praktische Beispiele veranschaulicht.
Jede Vorlesungseinheit behandelt ein spezifisches Thema aus dem Bereich Algorithmen und Datenstrukturen. Die Vorlesungen sind so gestaltet, dass sie aufeinander aufbauen und ein umfassendes Verständnis der Materie ermöglichen.
Übungen
Direkt im Anschluss an die Vorlesungen finden praktische Übungen statt. In den Übungen haben die Studierenden die Möglichkeit, das in der Vorlesung Gelernte direkt anzuwenden und zu vertiefen.
Kursinhalt & Wochenübersicht
Der Kurs erstreckt sich über 7 Wochen mit jeweils zwei Terminen pro Woche (Montag und Donnerstag):
| Woche | Termin | Thema | Beschreibung & Schwerpunkte |
|---|---|---|---|
| Woche 1 | Montag | Organisation & Abstrakte Datentypen | Einführung in das Modul sowie in grundlegende ADTs (Liste, Stapel/Stack, Warteschlange/Queue, Tabelle). |
| Donnerstag | Asymptotische Analyse | Analyse von Laufzeiten und Speicherbedarf, O-Notation und Komplexitätsklassen. | |
| Woche 2 | Montag | Analyse rekursiver Algorithmen | Asymptotische Analyse von Rekursionen, $\Theta$-Notation, Rekursionsbäume und Mastermethode. |
| Donnerstag | Hashing | Hashtabellen, Hashfunktionen, Kollisionsstrategien (Verkettung, offene Adressierung). | |
| Woche 3 | Montag | Binäre Suchbäume | Einfache binäre Suchbäume, Einfüge-, Such- und Löschoperationen sowie Laufzeitanalysen. |
| Donnerstag | Balancierte Binäre Suchbäume | AVL-Bäume, Rotationen und Gewährleistung logarithmapersistenter Suchzeiten. | |
| Woche 4 | Montag | Prioritätswarteschlangen & Heaps | Abstrakter Datentyp Prioritätswarteschlange, Heap-Datenstruktur und Heapsort. |
| Donnerstag | Graphen I | Grundlagen der Graphentheorie, Graphenrepräsentationen, Breitensuche (BFS) und Tiefensuche (DFS). | |
| Woche 5 | Montag | Graphen II | Fortgeschrittene Graphenalgorithmen und kürzeste Pfade (z. B. Dijkstra-Algorithmus). |
| Donnerstag | Graphen III: Minimale Spannbäume | Einführung in minimale Spannbäume (MST) und Grundlagen. | |
| Woche 6 | Montag | Graphen IV: Minimale Spannbäume | Algorithmen von Kruskal und Prim zur Berechnung minimaler Spannbäume. |
| Donnerstag | Sortieralgorithmen | Vergleichsbasierte und nicht-vergleichsbasierte Sortierverfahren. | |
| Woche 7 | Montag | Dynamische Programmierung I | Entwurfsprinzip der dynamischen Programmierung, Teilproblem-DGP und Überlappungen. |
| Donnerstag | Dynamische Programmierung II | Vertiefung der dynamischen Programmierung anhand praktischer Optimierungsprobleme. |
Ressourcen
Alle Kursmaterialien, einschließlich Folien und Übungsblätter, werden über diese Website bereitgestellt. Zusätzlich werden in der Sektion Materialien weitere Ressourcen wie weiterführende Literatur, Online-Kurse, Tutorials und Tools aufgelistet.
Prüfungsleistung
Informationen zur Prüfungsleistung, Altklausuren und Terminankündigungen finden Sie auf der Seite Prüfungsleistung.