NB: For MSc Students Only
Requirements
Students wishing to take this option are required to take the course on Functional
Programming.
Overview
Students will learn how to design new programming languages in a sound and principled way. The main focus is on
the design of type systems, an area where huge progress has been made over the last few decades. The course
starts with a tiny, functional language and gradually develops the theory underlying modern mainstream
languages, including Java and C#.
Learning Outcomes
By the end of the course, students will have the ability to analyse the design of existing languages, and
to design their own. For those wishing to do research in programming languages, this course brings them
right to the cutting edge.