Algorithmen und Datenstrukturen
Wann und Wo
Vorlesung: Montag, 11-13 Uhr, RUD 26, 0'115
Vorlesung: Mittwoch, 11-13 Uhr, RUD 26, 0'115
Übung: Montag, 13-15 Uhr, RUD 26, 1'305 (Gruppe1)
Übung: Montag, 15-17 Uhr, RUD 26, 1'305 (Gruppe2)
Übung: Dienstag, 11-13 Uhr, RUD 26, 1'305 (Gruppe3)
Übung: Dienstag, 15-17 Uhr, RUD 26, 1'305 (Gruppe4)
Übung: Mittwoch, 9-11 Uhr, RUD 26, 1'305 (Gruppe5)
Übung: Mittwoch, 15-17 Uhr, RUD 26, 1'305 (Gruppe7)
Übung: Freitag, 11-13 Uhr, RUD 26, 1'305 (Gruppe8)
Übung: Freitag, 13-15 Uhr, RUD 26, 1'305 (Gruppe9)
Wer
Dozent: Prof. Lars Grunske / Vera Chekan / Fabian Brandt-Tumescheit / Timo Fritsch / Jonas Kramer
Beschreibung und Aufbau der Lehrveranstaltung
Studierende erlernen grundlegende Algorithmen und Datenstrukturen und sind in der Lage, für ein gegebenes Problem das am besten geeignete Verfahren auszuwählen. Sie können einfache Algorithmen bzgl. ihrer Effizienz bewerten und vergleichen.
- Grundlegende Datenstrukturen (z. B. Arrays, Listen, Stacks, Queues, Heaps)
- Landau-Kalkül, Laufzeitanalyse (worst case, average case, amortisiert)
- Effiziente Sortierverfahren (z.B. Quicksort, Radixsort)
- Rekursive Algorithmen und Backtracking
- Effiziente Suche (z. B. binäre Suche) und Verwaltung (z. B. Hashing, binäre und balancierte Suchbäume)
- Einfache Graphenalgorithmen (z.B. Depth/Breadth-First Search, kürzeste Wege mit Dijkstra, aufspannende Bäume, transitive Hülle)
- Ausgewählte schwere algorithmische Probleme und geeignete Lösungsmethoden.
Jedes Verfahren wird ausführlich vorgestellt und in seiner Komplexität analysiert. Die Korrektheit ausgewählter Beispiele wird bewiesen.
Terminplanung bis Semesterende (Änderungen möglich)
|
Mo, 11.00-13.00 |
|
Thema |
|
Mi, 11.00-13.00 |
|
Thema |
| 13.04.26 | V | Vorstellung des Vorlesungs- und Übungskonzeptes | 15.04.26 | V | Keine Vorlesung | |
|
20.04.26 |
V | Einführung in Datenstrukuturen und Komplexität (V01 und V02) |
22.04.26 |
V |
Listen und Sortieren |
|
| 27.04.26 | V |
Komplexität |
29.04.26 | V | Max-Subarray und Korrektheit und Termination von Algorithmen | |
| 04.05.26 | V |
Einführung Bäume |
06.05.26 | V | Binäre Bäume | |
| 11.05.26 | V | Ausgeglichene Bäume | 13.05.26 | V |
B-Bäume, Tries |
|
| 18.05.26 | V |
Digitale Bäume, Heaps, HeapSort |
20.05.26 | V | Räumliche Datenstrukturen | |
| 25.05.26 | V | Pfingstmontag | 27.05.26 | V | Graphen | |
| 01.06.26 | V | Graphalgorithmen I | 03.06.26 | V | Graphalgorithmen II | |
| 08.06.26 | V |
Graphalgorithmen III Räumliche Graphen |
10.06.26 | V | Textalgorithmen I | |
| 15.06.26 | V |
Textalgorithmen II Hashing I |
17.06.26 | V | Hashing II | |
| 22.06.26 | V |
Algorithmen Entwurf I |
24.06.25 | V | Dies Academicus | |
| 29.06.26 | V |
Algorithmen Entwurf II |
01.07.26 | V |
Algorithmen des maschinellen Lernens I |
|
| 06.07.26 | V* |
Verteilte Algorithmen |
08.07.26 | V* | Verteilte Algorithmen Impl. | |
|
13.07.26 |
V* |
Algorithmen des maschinellen Lernens II Zusammenfassung |
15.07.26 |
V | keine Vorlesung |
Literatur
- Saake, Sattler: Algorithmen und Datenstrukturen (mit Java), dpunkt.Verlag
- Cormen, Leiserson, Rivest, Stein: Introduction to Algorithms, MIT Press
Voraussetzungen und Prüfung
Grundlegende Kenntnisse in der Programmierung, wie zum Beispiel im Modul „Grundlagen der Programmierung“ vermittelt, werden vorausgesetzt.
Klausurtermin 1 (120 min):
Klausurtermin 2 (120 min):