Module 06-35309 (2022)
Advanced Functional Programming
Level 3/H
Martin Escardo Eric Finster | Semester 2 | 20 credits |
Co-ordinator: Martin Escardo
Reviewer: Eric Finster
The Module Description is a strict subset of this Syllabus Page.
Outline
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.
Learning 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
Pre-requisites
- 06-30175 - Data Structures & Algorithms
- 06-35324 - Mathematical and Logical Foundations of Computer Science
- 06-35393 - Theories of Computation
- 06-34253 - Functional Programming
Taught with
- 06-35325 - Advanced Functional Programming (Extended)
Cannot be taken with
- 06-35325 - Advanced Functional Programming (Extended)
Assessment
- Main Assessments: Continuous assessment (100%)
- Supplementary Assessments: Continuous assessment (100%) over the Summer period
Programmes containing this module
- BSc Artificial Intelligence & Computer Science [0144]
- BSc Artificial Intelligence & Computer Science with an Industrial Year [9502]
- BSc Artificial Intelligence & Computer Science with Study Abroad [452B]
- BSc Computer Science [4436]
- BSc Computer Science with an Industrial Year [9499]
- BSc Computer Science with Digital Technology Partnership (PwC) [610C]
- BSc Computer Science with Digital Technology Partnership (Vodafone) [893C]
- BSc Computer Science with Study Abroad [5571]
- BSc Mathematics and Computer Science [5196]
- BSc Mathematics and Computer Science with an Industrial Year [9495]
- MEng Computer Science/Software Engineering [4754]
- MEng Computer Science/Software Engineering with an Industrial Year [9501]
- MSci Computer Science [4443]
- MSci Computer Science with an Industrial Year [9509]
- MSci Computer Science with Study Abroad [5576]
- MSci Mathematics and Computer Science [5197]
- MSci Mathematics and Computer Science with an Industrial Year [9496]