- Sommersemester 2024

Dozent: Dominik Scheder vorname.nachname@gmail.com

Raum: TBA

Zeit: TBA


Inhalt

  1. Grundlegende algorithmische Prinzipien und Datenstrukturen. Binäre Suche. Sortieren. Datenstrukturen zum Finden, Einfügen, Löschen wie Binärbäume und Hashtabellen. Im Verlaufe dieses Teils auch Auseinandersetzung mit mathematischer Beweisfindung und Beweisführung und allgemein formalen Methoden.
  2. Formale Sprachen. Grundlegend geht es um die Frage Wie können wir unendliche Mengen, die in der Computer-Praxis vorkommen (z.B. die Menge aller syntaktisch korrekten Email-Adressen) formal beschreiben, verarbeiten, verstehen? Insbesondere:
    • Reguläre Sprachen: reguläre Grammatiken, endliche Automaten, reguläre Ausdrücke. Praktische Anwendung / Programmierprojekt: Syntax-Highlighting von Html-Quelltext.
    • Kontextfreie Sprachen: kontextfreie Grammatiken, Kellerautomaten. Methoden für das Parsen von kontextfreien Sprachen: \(LL(k), LR(1)\). Konkrete Parser für konkrete Grammatiken. Programmierprojekt: Auswertung und Umformung von arithmetischen Ausdrücken, z.B. Alltagsnotation (3 + 4) * (2 + 1) in Racket-Style (* (+ 2 1) (+ 3 4)) umformen / Zeichenroboter, der eine primitive Programmiersprache in Svg-Grafik übersetzt (siehe auch Material der Veranstaltungen früherer Jahre)
  3. Allgemeine Modelle für Berechenbarkeit: allgemeine Grammatiken, Turing-Maschinen. Wort-Problem, Universal-Maschine, Unentscheidbarkeit.

Literatur

  • Michael Sipser: Introduction to the Theory of Computing