CS3350 Automata, Computability and Formal Languages

Theoretical computing models and the formal languages they characterize: Finite state machines, regular expressions, pushdown automata, context-free grammars, Turing machines and computability. Capabilities and limitations of each model, and applications including lexical analysis and parsing. Major topics include:


The syllabus can be found here.


Part of what should be learned in this class is to reason theoretically on programming languages and on what can be computed by a computer. We can structure our reasoning by writing things up, in the right type of mathematical language. This write-up will eventually give our own textbook to refer to. We will do the write-up collectively, using LaTeX and this git repository.


There will be 3 Homework Assignments in this class.


There will be 3 exams in this class:


Copyright (C) 2026 Christoph Lauter