Friday’s lecture introduced the first topic for the course, on types in programming languages: some of the ways they are used, and their relation to the mathematical models of lambdacalculus and type theory. This lecture presented the simplytyped lambdacalculus and some examples of programming language support for firstclass functions.
Link: Slides for Lecture 2
Homework
Read this paper and do some of the exercises.
 Achim Jung. A Short Introduction to the LambdaCalculus.
You may find it helpful to first read pages 1–7 of Pierce’s
Foundational Calculi for Programming Languages which introduces the untyped lambdacalculus.
Other Reading
Alligator Eggs! A Puzzle Game Bret Victor Links: Alligator Eggs; Animation 

FirstClass Function Wikipedia I think this a fair overview, leading in to issues of anonymous functions, closures, and higherorder functions in programming languages. Links: Wikipedia page now; Wikipedia page as at 20160923 
References
A Set of Postulates for the Foundation of Logic Alonzo Church Annals of Mathematics Series 2, 33:346â€“366. Princeton, 1932. The original lambdacalculus. 

Types and Programming Languages Benjamin C. Pierce MIT Press, 2002 A comprehensive introduction to type systems in computer science and programming languages. Links: Author’s page; Publisher’s page; Edinburgh University Library copies 

Advanced Topics in Types and Programming Languages Benjamin C. Pierce, Editor Builds on the previous book with chapters presenting several concrete applications of types to programming, each by experts in the field. Links: Author’s page; Publisher’s page; Edinburgh University Library copies 