Skip to main content

Unit information: Imperative and Functional Programming in 2024/25

Please note: Programme and unit information may change as the relevant academic field develops. We may also make changes to the structure of programmes and assessments to improve the student experience.

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)

None

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

None

Units you may not take alongside this one

None

School/department School of Computer Science
Faculty Faculty of Engineering

Unit Information

Unit Directors: Tilo Burghardt and Meng Wang

Why is this unit important?

This unit provides an introduction to imperative and functional programming, which are two of the fundamental paradigms of programming. They form together with object-orientated programming one of the foundational pillars of computer science.

How does this unit fit into your programme of study?

This is a mandatory unit that is taken in year 1.

Your learning on this unit

An overview of content

The unit runs in two distinct streams taught alongside each other 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.

How will students, personally, be different as a result of the unit?

By introducing students to two key paradigms of programming in parallel students will build a holistic understanding of controlling computation via programs. Students will start to develop foundational thinking skills regarding an imperative epistemology with precise notions of ‘how to compute’ and a functional epistemology with precise notions of ‘what to compute’.

Learning Outcomes

Successful completion of this unit will enable students to:

  1. Identify and synthesise syntactically and semantically correct imperative programs.
  2. Write effective, efficient and tested code in an imperative programming language to solve basic computational problems.
  3. Write imperative programs according to a detailed specification of functionality.
  4. Identify and synthesise syntactically and semantically correct functional programs.
  5. Write effective, efficient and tested code in a functional programming language to solve basic computational problems.

How you will learn

Teaching will be delivered through a combination of:

  • a combination of synchronous lectures and asynchronous videos and/or materials to introduce fundamental concepts and support revision
  • scheduled labs and help sessions covering formative programming tasks and problem sheets with staff support for hands-on programming
  • self-directed exercises with opportunities to discuss these in person in weekly labs and provision sample solutions for further scaffolding and differentiation opportunities

How you will be assessed

Tasks which help you learn and prepare you for summative tasks (formative):

Weekly formative labs cover example programming exercises, problems, sample solutions, and optional programming exercises, all with direct, in-person feedback from unit teaching staff.

Tasks which count towards your unit mark (summative):

  • Imperative programming coursework 1 (20%) (ILOs 1-2)
  • Imperative programming coursework 2 (30%) (ILOs 1-3)
  • Functional programming coursework (10%) (ILO 5)
  • Exam (in the TB1 examination period, 40%) (ILOs 4-5)

Additionally, the December exam is considered a “must pass” component: students must achieve a mark of at least 40% in this assessment to be awarded credit points for this unit.

When assessment does not go to plan:

Students will be required to retake a failed “must-pass” component in a like-for-like fashion, in accordance with the University rules and regulations.

Students that do not achieve a pass mark overall will be required to retake failed assessments in a like-for-like fashion, in accordance with the University rules and regulations.

Resources

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.

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

Feedback