Hasso-Plattner-Institut
Prof. Dr. Tobias Friedrich
 

Theoretische Informatik 1

BSc Vorlesung - Winter 2024/25

Personen: Prof. Dr. Tobias Friedrich, Georg Tennigkeit
Links: Moodle

Die Vorlesung Theoretische Informatik 1 ist ein Pflichtmodul im 3. Semester des Bachelors IT-Systems Engineering am Hasso-Plattner-Institut der Universität Potsdam. Hier gibt es alle Informationen für die Voraussetzungen, die Durchführung sowie die Leistungserfassung der Veranstaltung im Wintersemester 2024/2025.

Beschreibung

In der theoretischen Informatik befassen wir uns mit grundlegenden Fragen, die den Computer betreffen:

  • Wie können wir Programme und algorithmische Problemstellungen formal beschreiben?
  • Gibt es Probleme, die kein Computer jemals lösen kann?
  • Sind alle Computer(-modelle) mehr oder weniger gleich? Oder gibt es wesentliche Unterschiede?
  • Wenn man einem Computer mehr Zeit (oder Platz) gibt, kann er dann mehr Probleme lösen als vorher?

Um diese Fragen zu beantworten, vereinfachen wir den komplexen Begriff eines Computers und betrachten zunächst nur sehr einfache Programmiersprachen. Auf diesen bauen wir dann weitere Abstraktionen, um die Funktionalität moderner Programmiersprachen zu imitieren, und dennoch die einfachen Regeln zur Beweisführung annehmen zu können. In diesem Kontext lernen wir zeitgleich formal korrektes Arbeiten, mathematische Denkweisen und sauberes Führen von Beweisen. Auf dem Programm stehen:

  • WHILE-Programmierung
  • das Halteproblem und Nichtentscheidbarkeit
  • Reduktionen
  • die Arithmetische Hierarchie

Zudem geben wir eine Einführung in die Algorithmik. Wir entwerfen effiziente Algorithmen für bekannte Probleme und beweisen dabei auch deren Laufzeit und Korrektheit. Dabei lernen wir verschiedene Techniken zur Problemlösung kennen. Darunter fallen insbesondere:

  • Greedy-Algorithmen
  • Divide and Conquer
  • Dynamische Programmierung

Dabei sind wir darauf bedacht, eine Dualität aufzuzeigen: Auf der einen Seite fragen wir uns häufig, was der schnellste Algorithmus ist, den wir für ein Problem finden können. Auf der anderen Seite möchten wir wissen, ob es mathematisch beweisbar ist, dass es keinen schnelleren Algorithmus geben kann.

Voraussetzungen und Vorbereitung

Formal sind keine Voraussetzungen notwendig. Spaß an kniffeligen Aufgaben ist aber eine exzellente Grundlage! Ebenso ist es von Vorteil, mit den Inhalten aus Mathematik 1 und 2 (wie Aussagen-/Prädikatenlogik, Analysis, Landau-Notation, formales Beweisen) vertraut zu sein.

Wer sich zusätzlich zu den empfohlenen Lehrveranstaltungen im 1./2. Semester vorbereiten möchte, dem empfehlen wir folgende Literatur und Übungsaufgaben:

  • Ch. Meinel, M. Mundhenk: "Mathematische Grundlagen der Informatik". (Grundlagen der Logik, Beweistechnik, Funktionen und Mengentheorie.)
  • A. Beutelspacher: "Das ist o.B.d.A. trivial!". (Best Practices für die Notation von Sätzen und Argumenten)
  • D. Velleman: "How to Prove It: A Structured Approach". (Lesen und Schreiben von Beweisen)
  • Aufgaben zu Exponential- und Logarithmusgleichungen (Gibt es zahlreich im Internet)

Organisation

Die Verwaltung der Vorlesung geschieht über das HPI Moodle. Dort könnt ihr euch mit dem regulären HPI-Login einloggen und für die Veranstaltung eintragen. Die Registrierung im Moodle ist verpflichtend für alle Teilnehmenden, da darüber auch die Verwaltung der Übungsblätter und deren Bewertung läuft.

Bitte beachtet, dass ihr euch zusätzlich dazu noch über das neue CMS-System (MyCampus) für die Veranstaltung registrieren müsst. Ihr registriert euch separat für Veranstaltung und Prüfung.

Wöchentliche Veranstaltungen

Alle Veranstaltungen finden hybrid (in HS 1 und via Zoom) statt; die Zugangsdaten werden im Moodle bereitgestellt.

  • Vorlesung: Dienstags, 13:30 Uhr in HS 1. Die erste Vorlesung findet am 15.10. statt.
  • Übungsgruppen (ab der zweiten Vorlesungswoche):
    • To Be Determined. Die Tutorienslots werden sich nach der Verfügbarkeit unser Tutor:innen richten und wahrscheinlich von den bisher im Stundenplan angegebenen Slots abweichen.
  • Office Hour: einfach in K-2.09 vorbeikommen (und ggf. vorher schreiben)

Klausurtermine und -zulassung

Die Endnote dieser Vorlesung wird durch eine Abschlussklausur ermittelt. Es werden zwei Prüfungstermine angeboten.
Erlaubtes Hilfsmittel in der Klausur ist ein beidseitig beschriebenes DIN-A4-Blatt als Spickzettel.

Darüber hinaus werden wöchentlich Übungen ausgeteilt. Um zur Klausur zugelassen zu werden, benötigt man 50 % der insgesamt erreichbaren Übungspunkte. Nach dem ersten Themenblock wird im Vorlesungsslot ein Übungsblatt in Einzelarbeit bearbeitet, das doppelt für die Klausurzulassung zählt. Details hierzu werden im Moodle bekannt gegeben.

Literatur

  • Schöning: Theoretische Informatik – kurz gefasst. (Gut lesbar, für Berechenbarkeitstheorie)
  • Bläser: Theoretical Computer Science. (Umfangreich, für Berechenbarkeitstheorie)
  • Cormen, Leiserson, Rivest, Stein: Algorithmen – Eine Einführung. (Für Algorithmik)
  • Neubert: Grundkurs Theoretische Informatik.

Vorlesungsteam

Die Vorlesung wird veranstaltet vom Fachgebiet Algorithm Engineering. An der Durchführung sind die folgenden Personen beteiligt:

Dozent

Vorlesung: Dienstags 13:30, HS 1 und voraussichtlich via Zoom (siehe Moodle)

Office: K-2.15
E-Mail: Tobias.Friedrich(at)hpi.de

Übungsleiter

Office Hours: einfach in Raum K-2.09 vorbeikommen (am besten vorher formlos anschreiben) oder digitalen Termin ausmachen.
E-Mail: Georg.Tennigkeit(at)hpi.de

Jannes Malanowski

Tutor

Gruppe: ??? am ???
E-Mail: Jannes.Malanowski(at)student.hpi.de

Janni Röbekke

Tutorin

Gruppe: ??? am ???
E-Mail: Janni.Roebekke(at)student.hpi.de

Johanna Gasse

Tutorin

Gruppe: ??? am ???
E-Mail: Johanna.Gasse(at)student.hpi.de

Konrad Pawlak

Tutor

Gruppe: ??? am ???
E-Mail: Konrad.Pawlak(at)student.hpi.de

Max Blaschke

Tutor

Gruppe: ??? am ???
E-Mail: Max.Blaschke(at)student.hpi.de

Moritz Grimm

Tutor

Gruppe: ??? am ???
E-Mail: Moritz.Grimm(at)student.hpi.de

Paul Sievers

Tutor

Gruppe: ??? am ???
E-Mail: Paul.Sievers(at)student.hpi.de