Skip to main content Skip to navigation

CS256 - Functional Programming

  • Module code: CS256
  • Module name: Functional Programming
  • Department: Computer Science
  • Credit: 15

Content and teaching | Assessment | Availability

Module content and teaching

Principal aims

To empower students with a firm foundation in the theory and practise of functional programming (FP); To provide students with a formal framework in which to motivate and develop an understanding of multiple programming language paradigms.

Principal learning outcomes

On completion of the module the student should be able to: design and develop substantive FP software in Haskell; to critically consider common features and issues in designing a multi-paradigm programming language such as Python.

Timetabled teaching activities

Term 1. 20 one-hour lectures, 10 Haskell lab sessions.

Departmental link

Other essential notes

Prerequisites: Programming: CS118. Mathematics: CS130, CS136, CS138, IB104 or IB121

Module assessment

Assessment group Assessment name Percentage
15 CATS (Module code: CS256-15)
D (Assessed/examined work) Assessed Course Work 40%
Examination - Main Summer Exam Period (weeks 4-9) 60%

Module availability

This module is available on the following courses:



Optional Core


  • BSc Computing Systems (G400) - Year 2
  • MEng Computing Systems (G402) - Year 2
  • Undergraduate Discrete Mathematics (G4G1) - Year 2
  • Undergraduate Discrete Mathematics (G4G3) - Year 2
  • Undergraduate Computer Science (G500) - Year 2
  • Undergraduate Computer Science MEng (G503) - Year 2
  • Undergraduate Computer and Management Sciences (G5N1) - Year 2
  • Undergraduate Computer and Business Studies (GN51) - Year 2