The theory of computation starts with defining computation itself, often through Turing machines, and quickly moves to big questions like the Halting problem and P vs NP. Free textbooks, like Jim ...