Effiziente Algorithmen
Der Aufbau robuster und effizienter Programme erfordert leistungsfähige Methoden zur Organisation von Daten, also Datenstrukturen, und systematische Verfahren zur Problemlösung, also Algorithmen. Dieses Modul konzentriert sich auf diese beiden zentralen Themen. Die Studierenden befassen sich mit wichtigen Datenstrukturen wie trees und dictionaries sowie mit grundlegenden algorithmischen Strategien wie Rekursion, dynamic programming und greedy Verfahren. Das Modul zeigt auf, wie die Wahl der passenden Datenstruktur die Laufzeit und den Speicherbedarf eines Programms direkt beeinflusst. Die Studierenden lernen, diese Leistung mithilfe der Analyse von Zeit und Speicherbedarf zu beurteilen und praktisch mit Profiling zu überprüfen. Abschliessend behandelt das Modul effiziente Methoden zur Speicherung und Übertragung von Daten unter Verwendung gängiger industrieller Formate. Ziel ist es, die theoretischen Grundlagen mit der praktischen rechnerischen Leistung zu verbinden.
Komplexitätsanalyse
- Analysieren die Zeit und Speicherbedarf von Algorithmen
- Beschreiben die Skalierbarkeit mit geeigneten Komplexitätsmasse
Datenstrukturen
- Erklären grundlegende Datenstrukturen wie trees und dictionaries
- Auswählen passende Datenstrukturen für effiziente Algorithmen
- Verstehen gängige Methoden zur Datenspeicherung und Serialisierung
Algorithmen
- Beschreiben grundlegende Eigenschaften effizienter Algorithmen
- Begründen algorithmische Entscheidungen im Data Science Kontext
- Beurteilen die Effizienz von Algorithmen anhand von Datenstruktur und Rechenaufwand
Implementierung und Profiling
- Anwenden gängiger industrieller Datenformate in praktischen Situationen
- Entwerfen und implementieren algorithmische Konzepte im Code
- Nutzen Profiling Werkzeuge zur Analyse von Laufzeitproblemen
