Automata, Computability, and Complexity: Theory and Applications by Elaine Rich
  1. Working with Logical Formulas
  2. Finite State Machines and Regular Languages
  3. Context-Free Languages and PDAs
  4. Turing Machines and Undecidability
  5. Complexity