Advanced chapters cover the Ackerman function, Tarski’s theorem on the non-representability of truth, Goedel’s incompleteness and Rosser’s incompleteness theorems, two short proofs of the incompleteness theorem that are based on Lob's deliverability conditions, Church’s thesis, the second recursion theorem and applications, a provably recursive universal function for the primitive recursive functions, Oracle computations and various classes of computable functionals, the Arithmetical hierarchy, Turing reducibility and Turing degrees and the priority method, a thorough exposition of various versions of the first recursive theorem, Blum’s complexity, Hierarchies of primitive recursive functions, and a machine-independent characterisation of Cobham's feasibly computable functions.