Introduction to the Theory of Computation — Sipser

Michael Sipser, 3rd Edition (Cengage)

The standard text for theoretical computer science: automata theory, formal languages, computability, decidability, reducibility, and computational complexity (P, NP, NP-completeness, space complexity).

Chapters

Exercises added as I work through each chapter.