CS141-15 Functional Programming

Academic year
Computer Science
Undergraduate Level 1
Module leader
Michael Gale
Credit value
Module duration
10 weeks
100% exam
Study location
University of Warwick main campus, Coventry
Introductory description

The principal aim of this module is to introduce students to the functional programming paradigm.

Module aims

Students should be able to understand the differences between imperative and functional programming, apply functional programming techniques, and write programs in Haskell.

Outline syllabus

This is an indicative module outline only to give an indication of the sort of topics that may be covered. Actual sessions held may differ.

Learning outcomes

By the end of the module, students should be able to:

Indicative reading list

Please see Talis Aspire link for most up to date list.

View reading list on Talis Aspire

Subject specific skills

Understanding of Functional Programming as a programming paradigm, including intermediate knowledge of programming abstractions and formal reasoning. See syllabus for details.

Transferable skills

Technical skills.
Critical thinking.

Study time

Type Required
Lectures 30 sessions of 1 hour (20%)
Practical classes 10 sessions of 1 hour (7%)
Private study 110 hours (73%)
Total 150 hours
Private study description

Background reading of recommended texts.
Work on unsupervised practical assignments.
Exam revision.


No further costs have been identified for this module.

You do not need to pass all assessment components to pass the module.

Assessment group R
Weighting Study time
CS141 resit examination 100%
Feedback on assessment

Individual feedback on coursework via Tabula

Past exam papers for CS141

Post-requisite modules

If you pass this module, you can take:


This module is Optional for:

  • Year 1 of UCSA-G500 Undergraduate Computer Science
  • Year 1 of UCSA-G503 Undergraduate Computer Science MEng
  • Year 1 of UCSA-I1N1 Undergraduate Computer Science with Business Studies
  • Year 1 of UCSA-G406 Undergraduate Computer Systems Engineering
  • Year 1 of UCSA-G408 Undergraduate Computer Systems Engineering
  • Year 2 of UCSA-G5N1 Undergraduate Computer and Management Sciences

This module is Option list B for:

  • Year 1 of UCSA-G4G1 Undergraduate Discrete Mathematics
  • Year 1 of UCSA-G4G3 Undergraduate Discrete Mathematics