Working with Logical Formulas
Finite State Machines and Regular Languages
Context-Free Languages and PDAs
Turing Machines and Undecidability
Complexity