This course could be said to be about the nature of computation. But what is a computation? You have probably encountered the notion of an algorithm as a recipe. Can we establish a more precise definition? Read ‘precise’ as formal. In this class, we will review the mathematical foundations and scaffolding that enable us to prove amazing and powerful results about computation itself and what is (and is not) computable.