Part 1: Regular Languages
1. Finite Automata
2. Regular Expressions
3. Nondeterminism
4. Properties of Regular Languages
5. Applications of Finite Automata
Part II: Context-Free Languages
6. Context-Free Grammars
7. Pushdown Automata
8. Grammars and Equivalencies
9. Properties of Context-free Languages
10. Deterministic Parsing
Part III: Turing Machines
11. Turing Machines
12. Variations of Turning Machines
13. Decidable Problems and Recursive Languages
Part IV: Undecidability
14. Diagonalization and the Halting Problem
15. More Undecidable Problems
16. Recursive Functions
Part V: Complexity Theory
17. Time Complexity
18. Space Complexity
19. NP-Completeness