Kommentar |
Studierende kennen 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 Kenntnisse in der Programmierung, wie zum Beispiel im Modul „Grundlagen der Programmierung“ vermittelt.
- 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. |