Instead of exercises, we will ask you to implement graded projects of a duration of approximatively two weeks each. Students are encouraged to work in groups of two to three.

### Projets

- Project 1: Numerals and Booleans
- Project 2: Untyped lambda calculus
- Project 3: Simply-typed lambda calculus
- Project 4: Simply-typed lambda calculus extensions
- Project 5: Simply-typed lambda calculus with type inference
- Project 6: Featherweight Java