In this module you will study in detail the design of type assignment systems for programming languages and focus on the importance of a sound theoretical framework, in order to be able to reason about the properties of a typed program. You will also study and compare the types systems of various modern functional and object-oriented programming languages.
The provided course notes developed by Prof Van Bakel are fantastic, and significantly better than those found here.
I highly advise you read them instead of these notes, which are barebones revision notes for my own study.
Taught by Professor Steffen van Bakel