Die Studenten lernen viele der in der Informatik immer wiederkehrenden Algorithmen und Datenstrukturen kennen. Weiterhin können sie abschätzen, in welcher Situation bestimmte komplexe Datentypen eingesetzt werden, wie diese funktionieren und welchen Laufzeitaufwand sie besitzen. Sie werden befähigt die Korrektheit von Algorithmen zu beweisen. In der Übung wenden Sie Ihre erlangten Kenntnisse anhand verschiedener Aufgaben an.
Die Vorlesung gliedert sich in mehrere Teile, die inhaltlich aufeinander aufbauen:
Zusätzliche wöchentliche Übungsaufgaben für die Vor- und Nacharbeit der Vorlesungsinhalte und zur Prüfungsvorbereitung.
Einfache Aufgaben in der Vorlesung.
Die Studierenden vertiefen das in der Vorlesung erworbene Wissen, indem sie ausgewählte Algorithmen in Java implementieren und testen. Dazu verwenden sie jeweils Standard-Entwicklungsumgebungen.
Die zu implementierenden Algorithmen und Datenstrukturen werden in einer abschliessenden Aufgabe kulminiert eingesetzt.
Die Vorlesung vermittelt die Grenzen der Berechnungskraft heutiger Computer, die selbst bei potentiell unendlich viel vorhandenem Speicherplatz auftreten. Themen sind vor allem die Berechen- und Unentscheidbarkeit diverser Probleme. Ebenso wird eine Einführung in die Theorie hartnäckiger Probleme gegeben.
Den Studierenden werden dazu die folgenden Gebiete der theoretischen Informatik vermittelt: elementare Berechnungsmodelle wie Turingmaschinen und WHILE-Programme, die Church-Turing-These, Unentscheidbarkeit sowie eine Einführung in die Komplexitätstheorie. Die P=NP Frage sowie die Ausnutzung hartnäckiger Probleme für sogenannte Zero-Knowledge-Beweise werden ebenfalls besprochen.
Mit dieser Lehrveranstaltung erhalten die Studierenden eine Vorstellung von prinzipiell schwer oder sogar vollständig unlösbaren Aufgabenstellungen. Sie verstehen, dass folglich Kompromisse bei der Qualität der gewünschten Ergebnisse oder der Laufzeit eingegangen werden müssen.
Die Lehrveranstaltung findet als reine Vorlesung statt. Zahlreiche Übungsaufgaben vertiefen die vermittelten Gebiete und werden in evtl. zusätzlich angebotenen Tutorien diskutiert.