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 Suchen |
|
| 27.04.26 | V |
Komplexität |
29.04.26 | V | Listen und Sortieren | |
| 04.05.26 | V |
Bäume (V05 und V06) |
06.05.26 | V | Ausgeglichene Bäume | |
| 11.05.26 | V | Digitale Bäume, Heaps, HeapSort | 13.05.26 |
Räumliche Datenstrukturen |
||
| 18.05.26 | V |
Graphen |
20.05.26 | V | Graphalgorithmen I | |
| 25.05.26 | V | Pfingstmontag | 27.05.26 | V | Graphalgorithmen II | |
| 01.06.26 | V | Graphalgorithmen III | 03.06.26 | V | Räumliche Graphen | |
| 08.06.26 | V |
Textalgorithmen I |
10.06.26 | V | Textalgorithmen II | |
| 15.06.26 | V | Hashing I | 17.06.26 | V | Hashing II | |
| 22.06.26 | V |
Verteilte Algorithmen |
24.06.25 | V | Dies Academicus | |
| 29.06.26 | V |
Verteilte Algorithmen Impl. |
01.07.26 | V |
Algorithmen Entwurf I |
|
| 06.07.26 | V |
Algorithmen Entwurf II |
08.07.26 | V | Algorithmen des maschinellen Lernens I | |
|
13.07.26 |
V |
Algorithmen des maschinellen Lernens II |
15.07.26 |
V | Zusammenfassung und Q&A |
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):