Die Studenten lernen grundlegende Algorithmen und Datenstrukturen kennen. Sie sollen abschätzen, in welcher Situation spezifische und komplexe Datentypen eingesetzt werden, wie diese funktionieren und welchen Zeitaufwand sie besitzen. Sie können die Korrektheit von Algorithmen beweisen. In der Übung müssen Sie Ihre erlangten Kenntnisse anhand verschiedener Aufgaben anwenden. Sie erlernen theoretische Berechenbarkeitsmodelle und deren Grenzen.
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.
Vorführen und Diskussioin der Lösungen in den Übungen.
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.