Theory of Types and Programming Languages

Staff

Documents

Assignments

Project 1 - The NB Language

Project 2 - Untyped Lambda Calculus

Project 3 - Simply Typed Lambda Calculus

Project 4 - STLC Extensions

Project 5 - STLC with Type Reconstruction

Material

Videos

You can find links to the lecture videos on Canvas.

Course Slides

Course Introduction

Download the slides here.

Arithmetic Expressions - Abstract Syntax and Proof Principles

Download the slides here.

The Untyped Lambda Calculus (1)

Download the slides here.

The Untyped Lambda Calculus (2)

Download the slides here.

The Simply Typed Lambda Calculus

Download the slides here.

Simple Extensions to STLC

Download the slides here.

More Extensions to STLC

Download the slides here.

Recursion and State in STLC

Download the slides here.

Type Reconstruction and Polymorphism

Download the slides here.

Subtyping

Download the slides here.

Dependent Types

Download the slides here.

Objects

Download the slides here.

Foundations of Scala

Download the slides here.

Supplementary Material: Featherweight Java

Download the exercises here.

Pen & Paper Exercises

Pen & Paper Exercises #1

Download the exercises here. Download the solutions here.

Pen & Paper Exercises #2

Download the exercises here. Download the solutions here.

Pen & Paper Exercises #3

Download the exercises here. Download the solutions here.

Pen & Paper Exercises #4

Download the exercises here. Download the solutions here.