Functional languages represent the leading edge of programming language design, and the primary setting in which new programming concepts are introduced and studied. This module builds upon the introductory functional programming module by focusing on a number of more advanced topics, including aspects of recent and current research. The precise topics covered will vary from year to year, but will include topics such as programming with effects, reasoning about programs, and improving program efficiency.
Lectures will primarily be given interactively at the whiteboard, and students are expected to take their own notes during the classes. Some supporting material is available here: