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.