The final assignments are out.
You only need to do one of them. Both assignments are much less prescriptive than the assignments so far. You'll have a lot more room to navigate. The assignments are also lighter PL theory, compared to what we've done so far. But, both require you to learn some new material on your own. You'll either learn how to do concurrent programming with the Async monad in OCaml, or you'll learn enough Scala to build a backtracking-search monad.
Excluding tests and explorations, the solution to the Scala assignment should be about 20 lines of code. The solution to the OCaml assignment may reach 200 lines. This doesn't mean that one is any easier than the other.
The C(E)K assignment is out. (Only part 1 is due.)
The type inference assignment is out.
The System F assignment is out.
The type checking assignment is out and due in two weeks.