This is an introductory course on the foundations of programming languages. The central organizing principle is the identification of language features with types. The theory of programming languages, ...