The modules offered in each year are listed below.
The progression requirements, year weightings and degree classification thresholds can be found in the corresponding programme specification, which can be found here: https://www.imperial.ac.uk/staff/tools-and-reference/quality-assurance-enhancement/programme-information/programme-specifications/
Further details of the assessment breakdown for each degree/year combination can be found from the corresponding year notice boards:
https://www.imperial.ac.uk/computing/current-students/course-admin/noticeboards/
The regulations for all undergraduate taught programmes of study, including the re-sit policy on failed modules, can be found here: https://www.imperial.ac.uk/about/governance/academic-governance/regulations/2022-23-regulations-a/
Year One
Academic year 23-24
Core
Autumn
- 40001 Introduction to Computer Systems
- 40007 Introduction to Databases
- 40016 Calculus
- COMPM0101 Introduction to DoC Systems
Autumn and Spring
- 40018 Discrete Mathematics, Logic & Reasoning
- 40018A Discrete Mathematics, Logic & Reasoning (Part 1)
Autumn, Spring and Summer
Spring
Extracurricular
Autumn
Autumn, Spring and Summer
- COMPM0193 Additional Tuition
- COMPM0701 Programming Competition Training
- COMPM0804 Student Support and Wellbeing
Year Two
Academic year 23-24
Compulsory
Autumn
- 50001 Algorithm Design and Analysis
- 50002 Software Engineering Design
- 50003 Models of Computation
- 50004 Operating Systems
Autumn and Spring
Spring
- 50005 Networks and Communications
- 50006 Compilers
- 50007.2 Introduction to Prolog
- 50008 Probability and Statistics
Spring and Summer
Summer
Elective - Choose 5 ECTS (should be equivalent to 1 module)
Spring
Extracurricular
Autumn
Autumn, Spring and Summer
Year Three
Academic year 23-24
Core
Summer
Elective - Choose from 15 to 30 ECTS (should be equivalent to 3 to 6 modules) from the following list
Autumn
- 60001 Advanced Computer Architecture
- 60007 The Theory and Practice of Concurrent Programming
- 60016 Operations Research
- 60023 Type Systems for Programming Languages
- 60029 Data Processing Systems
- 60032 Networked Systems
- 70015 Mathematics for Machine Learning
Spring
- 60003 Communicating Computer Science in Schools
- 60008 Custom Computing
- 60009 Distributed Algorithms
- 60015 Network and Web Security
- 60017 System Performance Engineering
- 60021 3rd Year Software Engineering Group Project (10 ECTS)
Selective 1 - Choose from 10 to 20 ECTS (should be equivalent to 2 to 4 modules) from the following list
Autumn
Spring
Compulsory - Choose from 5 to 7.5 ECTS (should be equivalent to 1 module) from the following list
Autumn and Spring
Elective - Choose from 0 to 7.5 ECTS (should be equivalent to 0 to 1 modules) from the following list
Autumn and Spring
Extracurricular
Autumn
Autumn, Spring and Summer
Year Four
Academic year 23-24
Core
Autumn
Autumn, Spring and Summer
Selective 1 - Choose from 10 to 35 ECTS (should be equivalent to 2 to 7 modules) from the following list
Autumn
- 70015 Mathematics for Machine Learning
- 70028 Reinforcement Learning
- 70100 Computational Neurodynamics
- 70101 Human-Robot Interaction
Spring
- 70001 Advanced Computer Graphics
- 70010 Deep Learning
- 70014 Machine Learning for Imaging
- 70067 Robot Learning
Elective - Choose from 0 to 25 ECTS (should be equivalent to 0 to 5 modules) from the following list
Autumn
- 70005 Complexity
- 70006 Computational Finance
- 70017 Principles of Distributed Ledgers
- 70018 Privacy Engineering
- 70020 Program Analysis
- 70022 Scalable Systems and Data
- 70023 Scalable Software Verification
- 70025 Software Engineering for Industry
- 70068 Scheduling and Resource Allocation
- 70086 Advanced Computer Architecture
- 70103 Statistical Information Theory
Spring
- 70004 Advanced Computer Security
- 70007 Computational Optimisation
- 70009 Cryptography Engineering
- 70016 Natural Language Processing
- 70021 Quantum Computing
- 70024 Software Reliability
- 70031 Modal Logic for Strategic Reasoning in AI
- 70070 Custom Computing
- 70098 Methods and Tools in the Theory of Computing
- 70105 Deep Graph-Based Learning
- 70889W Non-Euclidean Methods in Machine Learning
Elective - Choose from 0 to 12.5 ECTS (should be equivalent to 0 to 2 modules) from the following list
Autumn and Spring
- COMPM0451 External Module I (5 ECTS)
- COMPM0452 External Module I (7.5 ECTS)
- COMPM0453 External Module II (5 ECTS)