Inhalte: Studierende lernen formale Sprachen und verschiedene algorithmische Probleme kennen und üben exemplarisch deren Anwendung. Darüber hinaus erlernen sie reguläre Sprachen, erarbeiten sich einzelne Darstellungsformen und diskutieren ihre grundlegenden Eigenschaften. Sie lernen Turing-Maschinen kennen, erarbeiten sich Entscheid-barkeit und Semi-Entscheidbarkeit, die Church-Turing-These, sowie Reduktionen und üben deren Anwendung. Zu-letzt erlernen sie einzelne formale Grammatiken, Chomsky-Hierarchie, kontextfreie Sprachen und die Theorie der NP-Vollständigkeit.