This introductory text covers the key areas of computer science, including recursive function theory, formal languages, and automata. It assumes very little background in formal mathematics. The book is divided into five parts: Computability, Grammars and Automata, Logic, Complexity, and Unsolvability.