Skip to main content

Unit information: Imperative and Functional Programming in 2023/24

Unit name Imperative and Functional Programming
Unit code COMS10016
Credit points 20
Level of study C/4
Teaching block(s) Teaching Block 1 (weeks 1 - 12)
Unit director Dr. Burghardt
Open unit status Not open
Units you must take before you take this one (pre-requisite units)


Units you must take alongside this one (co-requisite units)


Units you may not take alongside this one


School/department School of Computer Science
Faculty Faculty of Engineering

Unit Information

Unit Directors: Tilo Burghardt and Meng Wang

This unit provides an introduction to imperative and functional programming, assuming no prior exposure to the paradigms.

The unit runs in two distinct streams each focusing on one of the paradigms:

  • For imperative programming, the aim is to introduce the notion of state and sequential operations. Important principles include recursion and iteration, assignment, and an understanding of the stack and heap.
  • For functional programming, the aim is to introduce types and functions. Important principles include datatypes, evaluation order, higher-order functions, and purity.

Your learning on this unit

Successful completion of this unit will enable students to:

  1. Understand the structure and semantics of both imperative and functional programs
  2. Differentiate between the key features and characteristics of both types of language, so that they can...
  3. Select the most appropriate language for a given implementation task
  4. Write effective and efficient code in both imperative and functional programming languages

How you will learn

Teaching will be delivered through a combination of synchronous and asynchronous sessions, including lectures and programming activities supported by help sessions, problem sheets and/or self-directed exercises.

How you will be assessed

60% Coursework; 40% January Exam


If this unit has a Resource List, you will normally find a link to it in the Blackboard area for the unit. Sometimes there will be a separate link for each weekly topic.

If you are unable to access a list through Blackboard, you can also find it via the Resource Lists homepage. Search for the list by the unit name or code (e.g. COMS10016).

How much time the unit requires
Each credit equates to 10 hours of total student input. For example a 20 credit unit will take you 200 hours of study to complete. Your total learning time is made up of contact time, directed learning tasks, independent learning and assessment activity.

See the University Workload statement relating to this unit for more information.

The Board of Examiners will consider all cases where students have failed or not completed the assessments required for credit. The Board considers each student's outcomes across all the units which contribute to each year's programme of study. For appropriate assessments, if you have self-certificated your absence, you will normally be required to complete it the next time it runs (for assessments at the end of TB1 and TB2 this is usually in the next re-assessment period).
The Board of Examiners will take into account any exceptional circumstances and operates within the Regulations and Code of Practice for Taught Programmes.