- Department: Computer Science
- Module co-ordinator: Dr. Kofi Appiah
- Credit value: 10 credits
- Credit level: I
- Academic year of delivery: 2022-23
- See module specification for other years: 2021-22
Functional programming with applications
Pre-requisite modules
Co-requisite modules
- None
Prohibited combinations
- None
Occurrence | Teaching period |
---|---|
A | Spring Term 2022-23 to Summer Term 2022-23 |
This module teaches the basics and some advanced features of typed, lazy functional programming; illustrated with a variety of applications including implementing Domain Specific Languages by both deep & shallow embedding. Covers a range of functional-programming techniques, type classes, and testing tools.
S301 |
Develop, understand and analyse non-trivial small-scale programs in a functional language such as Haskell, including reasoning about equality of simple expressions. |
S302 |
Use the principal features of a TLFN (higher order functions, polymorphism, laziness, data types, type classes) to solve small but non-trivial, well-specified problems. |
S303 |
Construct suitable data types and functions to manipulate Domain Specific Languages in a TLFN. |
S304 |
Use available supporting tools for program development, analysis, testing and debugging, such as QuickCheck and SmallCheck |
S305 |
Discuss the issues affecting the sequential implementation of lazy functional languages, including determining when sequentiality is needed and its implementation through monads. |
S306 |
Explain the differences between declarative and imperative descriptions of computation. |
Task | Length | % of module mark |
---|---|---|
Online Exam -less than 24hrs (Centrally scheduled) Software 3 Exam 1 |
3 hours | 50 |
Online Exam -less than 24hrs (Centrally scheduled) Software 3 Exam 2 |
3 hours | 50 |
None
Task | Length | % of module mark |
---|---|---|
Online Exam -less than 24hrs (Centrally scheduled) Software 3 Exam 1 |
3 hours | 50 |
Online Exam -less than 24hrs (Centrally scheduled) Software 3 Exam 2 |
3 hours | 50 |
Feedback is provided through work in practical sessions, and after the final assessment as per normal University guidelines.
*** Graham Hutton, Programming in Haskell, CUP, 2007
* Bryan O'Sullivan, John Goerzen & Donald Stewart, Real World Haskell, O'Reilly Media, 2008
+ Jeremy Gibbons & Oege de Moor, The Fun of Programming, Palgrave, 2003
+ Christopher Okasaki, Purely Functional Data Structures, CUP, 2008