Die Ausbildung
Zu den grundlegegenden Algorithmen und Datenstrukturen gehören Sortieren, assoziative Arrays und Hash-Funktionen, Prioritätswarteschlangen, dynamische Felder, Suchbäume, Graphenalgorithmen und Stringalgorithmen.
Zu den Methoden, Techniken zur Komplexitätsabschätzung und Korrektheitsbeweisen gehören die asymptotische Analyse, O-Notation, Induktionsbeweise, Divide and Conquer, Amortisierte Analyse, Potentialfunktionen und Dynamische Programmierung.
Zu den besonderen Techniken zur effizienten Umsetzung gehören Verständnis und Beachtung von Cache- und IO-Effizienz, Verständnis und Beachtung von Coding Standards, Unit Testing, Laufzeitmessungen und Profiling.
Ziele des Kurses
Ziel dieses Kurses ist es, Kenntnisse und Fertigkeiten zur Beurteilung der Qualität von Algorithmen und zur in der Praxis effizienten Implementierung zu vermitteln.
Insbesondere werden dabei solche Algorithmen und Qualitätsaspekte behandelt, die für den Entwurf und die Analyse von IEMS grundlegend sind.
Das Modul vermittelt Teilnehmern die Fähigkeit, Laufzeit und Speicherbedarf von Algorithmen mit mathematischen Mitteln abzuschätzen. Sie beherrschen die wichtigsten Techniken zum Entwurf und zur Analyse von Algorithmen und können die Mächtigkeit algorithmischer Entwurfsprinzipien, wie Divide and Conquer, Dynamische Programmierung, Randomisierung, u.ä. einschätzen und anwenden. Sie kennen Standard-Datenstrukturen (Listen, Bäume, Graphen), wissen, wie man sie nutzt, und kennen wichtige Algorithmen für Bäume und Graphen.