One of the major concerns of theoretical computer science is the classifi? cation of problems in terms of how hard they are. The natural measure of difficulty of a function is the amount of time needed to compute it (as a function of the length of the input). Other resources, such as space, have also been considered. In recursion theory, by contrast, a function is considered to be easy to compute if there exists some algorithm that computes it. We wish to classify functions that are hard, i.e., not computable, in a quantitative way. We cannot use time or space, since the functions are not even computable. We cannot use Turing degree, since this notion is not quantitative. Hence we need a new notion of complexity-much like time or spac~that is quantitative and yet in some way captures the level of difficulty (such as the Turing degree) of a function.One of the major concerns of theoretical computer science is the classifi? cation of problems in terms of how hard they are. The natural measure of difficulty of a function is the amount of time needed to compute it (as a function of the length of the input). Other resources, such as space, have also been considered. In recursion theory, by contrast, a function is considered to be easy to compute if there exists some algorithm that computes it. We wish to classify functions that are hard, i.e., not computable, in a quantitative way. We cannot use time or space, since the functions are not even computable. We cannot use Turing degree, since this notion is not quantitative. Hence we need a new notion of complexity-much like time or spac~that is quantitative and yet in some way captures the level of difficulty (such as the Turing degree) of a function.A: Getting Your Feet Wet.- 1 Basic Concepts.- 1.1 Notation, Conventions, and Definitions.- 1.2 Basic Recursion Theory.- 1.2.1 Recursive and Recursively Enumerable Sets.- 1.2.2 Reductions.- 1.2.3 Jump and the Arithmetic Hierarchy.- 1.2.4 Simulation and Dovetailing.- 1.3 Useful ClC.