This handbook with exercises reveals in formalisms hitherto mainly used for hardware and software design and verification unexpected mathematical beauty. The lambda calculus forms a prototype universal programming language which in its untyped version is related to Lisp and was treated in the first author''s classic The Lambda Calculus (1984). The formalism has since been extended with types and used in functional programming (Haskell Clean) and proof assistants (Coq Isabelle HOL) used in design