Kursen är uppdelad i tre separata moduler som täcker olika aspekter av typer, semantik och programspråksteori:
1. Operationell semantik och lambdakalkylen
- Småstegs- och storstegs-operationell semantik
- Otypad lambdakalkylen
- Grundläggande typad funktionell programmering
2. Typad lambdakalkyl med utökningar
- Typregler
- Typsundhetsbevis
- Semantik för let-bindning, par, tupler, records, sums, och listor
- Referenser och undantag
3. Subtypning och polymorfism
- Subtypspolymorfism
- Parametrisk polymorfism
- Ad-hoc polymorfism
- Strukturella och nominella typsystem
- Gradvis typning