School of Computer Science

Module 35325 (2021)

Module description - Advanced Functional Programming (Extended)

The Module Description is a strict subset of the Syllabus Page.

Module Title Advanced Functional Programming (Extended)
School School of Computer Science
Module Code 06-35325
Level 4/M
Member of Staff Martin Escardo Eric Finster
Semester Semester 2 - 20 credits
Pre-requisites
  • 06-30175 - Data Structures & Algorithms
  • 06-35324 - Mathematical and Logical Foundations of Computer Science
Description

This module exposes students to state of the art functional programming languages and their mathematical foundations in the lambda calculus and type theory. Students can expect to develop advanced functional programming skills and awareness of experimental programming languages.

Outcomes

On successful completion of this module, the student should be able to:

  • Be able to formally prove the correctness of complex programs
  • Understand and program with advanced type systems (e.g. dependent or linear)
  • Be aware of and apply advanced idioms in functional programming
  • Form connections with logic and the foundations of mathematics
  • Demonstrate an awareness of the current literature in this area
Assessment
  • Main Assessments: Continuous assessment (100%)
  • Supplementary Assessments: Continuous assessment (100%) over the Summer period