Programme/Approved Electives for 2026/27
None
Available as a Free Standing Elective
No
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,2Apply basic linear algebra techniques and statistical methods to summarise, interpret, and manipulate data.: 1,2Apply algorithmic thinking to systematically decompose a problem and produce pseudocode or algorithm descriptions for its solution.: 2Derive the computational complexity of simple algorithms and explain the theoretical limits of computation, including universal machines and undecidability.: 2
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.
Description of Module Assessment
1: Class Test weighted 30%In-class multiple choice testStudents 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 examinationA 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.