Mathematical Preliminaries
Graph theory — set theory
Finite Automata
Deterministic finite automata — non-deterministic finite automata
Regular Expressions and Languages
Regular expressions & languages — equivalence of DFA, NFA and regular expressions — properties of regular languages — pumping lemma for regular languages — efficient state minimisation
Context-Free Grammars and Languages
Context-free grammars and languages — parse trees — normal forms — pumping lemma for CFL — properties of CFL
Pushdown Automata
Pushdown automata — equivalence of PDA and context-free languages — CYK algorithm
Turing Machines and Computability
Turing machines — extensions of Turing machines — computability & Church Turing-hypothesis — alternative models of computation (programming languages) — halting problem
Complexity Theory
Definitions — complexity classes — class NP