CSC-10087 - Computational Foundations
Coordinator: Marco Ortolani Room: CR102 Tel: +44 1782 7 33264
Lecture Time:
Level: Level 4
Credits: 15
Study Hours: 150
School Office: 01782 733075

Programme/Approved Electives for 2026/27

None

Available as a Free Standing Elective

No

Co-requisites

None

Prerequisites

None

Barred Combinations

None

Description for 2026/27

This module introduces the core mathematical and algorithmic principles that underpin Computer Science, enabling students to model, analyse, and solve real‑world computational problems. Students will learn to work with abstract data structures such as sets, relations, functions, and graphs to represent complex scenarios, apply basic statistical techniques to summarise and interpret data, and develop algorithmic thinking to approach problem-solving systematically. The module also explores the theoretical limits and complexity of computation, helping students understand how these constraints shape practical solutions. Through a combination of abstraction, reasoning, and hands‑on problem solving, students will build a solid foundation for further study in algorithms, data science, and computer science.

Aims
This module aims to introduce the core mathematical and algorithmic principles that underpin Computer Science, enabling students to model, analyse, and solve real-world computational problems. Students will learn to work with abstract data structures to represent complex scenarios, apply basic linear algebra and statistical techniques to manipulate, summarise, and interpret data, and develop algorithmic thinking to approach problem-solving systematically.
The module also explores the theoretical limits and complexity of computation, helping students understand how these constraints shape practical solutions. Through a combination of abstraction, reasoning, and hands-on problem solving, students will construct basic mathematical and logical arguments and build a solid foundation for further study in algorithms, data science, and computer science.

Intended Learning Outcomes

Represent and analyse computational problems using mathematical abstractions, including sets, relations, functions, and graphs.: 1,2
Apply basic linear algebra techniques and statistical methods to summarise, interpret, and manipulate data.: 1,2
Apply algorithmic thinking to systematically decompose a problem and produce pseudocode or algorithm descriptions for its solution.: 2
Derive the computational complexity of simple algorithms and explain the theoretical limits of computation, including universal machines and undecidability.: 2

Study hours

Two hours of live in person lectures and one hour tutorial each week for 12 weeks.
Tutorial sessions will involve students forming into small groups to work on problems sheets together. One of the tutorials will be a mock exam question, taken under exam conditions, to better prepare for the end of module exam.
An indicative breakdown of the independent study is 11 hours of tutorial preparation, 22 hours of tutorial revision, 27 hours of background reading, 42 hours of revision of lecture materials for the exam, and 10 hours of revision of past papers and their solutions.
Two hours for taking the exam.

School Rules

None

Description of Module Assessment

1: Class Test weighted 30%
In-class multiple choice test
Students will undertake a one-hour multiple-choice class test covering the analysis of real-world problems represented with logical and discrete structures, and problem-solving skills. The class test will take place in the latter half of the module, approximately week 7-8. There will be approx 20 multiple-choice questions.

2: Exam weighted 70%
Two-hour unseen examination
A 2-hour unseen examination. Students will answer four questions out of five available on the exam paper, covering the full content of the module. Sample and past exam papers will be made available to students, with solutions to consult. A mock exam question will be attempted by students as formative learning during a tutorial session under exam conditions, to help them prepare for the end-of-module exam.