Skip to main content

Unit information: Imperative and Functional Programming in 2020/21

Please note: you are viewing unit and programme information for a past academic year. Please see the current academic year for up to date information.

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




School/department Department of Computer Science
Faculty Faculty of Engineering

Description including Unit Aims

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 focussing 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.

Intended Learning Outcomes

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

Teaching Information

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.

Assessment Information

50% Coursework, 50% January Timed Assessment

Reading and References