This book is an adaptation of lectures notes written by the author and given to undergraduate computer-science (CS) students in lieu of a text. The goal of the class was to develop a precise mathematical meaning of computation in order to demonstrate there are propositions falling outside the class of computable problems. The text is designed to be given over a single semester and can be under-stood by students with basic training in the rules of inference. The narrative has been tailored to appeal to CS students by framing the problem as ‘What is a computer? ’, which inevitably leads to the investigation of the notion of ‘computation ’ as an abstract concept. After an introduction to set theory and brief refresher of logic and proof techni...