Programmierung ist ein - wenn nicht der - zentrale Bestandteil der Informatik. Insofern muss ein an einer "grundlagen- und methodenorientierten Ausbildung" ausgerichteter Informatikstudiengang großen Wert darauf legen, die wichtigen Aspekte der Programmierung zu beleuchten. Einer dieser Aspekte umfasst den effizienten Umgang mit großen Daten. Grundlegende Kenntnisse darüber und in diesem Zusammenhang verwendete Methoden werden im Modul "Algorithmen und Datenstrukturen" vermittelt.
Ziel der Vorlesung ist das Erlernen von wesentlichen Datenstrukturen und Algorithmen wie Sortierverfahren, Suchalgorithmen und aphentheoretischen Algorithmen sowie deren Analyse bezüglich Laufzeit und Speicherbedarf.
Laufzeitanalyse von Algorithmen, pessimale und amortisierte Laufzeiten, Algorithmische Methoden (Rekursion, dynamische Programmierung, Divide and Conquer, Backtracking), Sortieralgorithmen, Listen, Prioritätsschlangen, Suchbäume, Hashtabellen, Graphalgorithmen (Tiefensuche, Breitensuche, kürzeste Wege)
G1.1
Schriftliche Klausur am Ende der Vorlesung und erfolgreiches Bearbeiten von Übungsaufgaben. Die in den Übungen erzielten Punkte können als Bonus in die Modulnote eingehen. Einzelheiten werden am Anfang der Vorlesung bekanntgegeben.
Bearbeiten von wöchentlichen Hausaufgaben und deren Präsentation in den Übungen. Ausserdem sollen Präsenzaufgaben in den Übungen gelöst werden.
Grundlage für viele Vorlesungen in der Informatik im Bachelor- und Masterstudiengang, insbesondere Lineare Optimierung, Effiziente Algorithmen und Approximative Algorithmen.