Year 1
The first two years are carefully designed to allow you as much choice as possible in your final year. In Computer Science you study the foundations of computer science together with program design and programming techniques.
Data Structure & Algorithms - 20 credits
Mechanics - 10 credits
Object Oriented Programming - 20 credits
Probability & Statistics - 10 credits
Real Analysis - 20 credits
Theories of Computation - 20 credits
Vectors, Geometry & Linear Algebra - 20 credits
Year 2
Core modules
Algebra & Combinatorics 1 - 20 credits
Functional Programming - 20 credits
Operating Systems and Systems Programming - 20 credits
Real & Complex Analysis - 20 credits
Security and Networks - 20 credits
Optional modules
Choose 20 credits of options. Example optional modules:
Differential Equations - 20 credits
Statistics - 20 credits
Year 3
This year offers you a choice of modules with the possibility of specialising in either Mathematics or Computer Science. The objective is to allow you to have a 40/80, 60/60 or 80/40 split in module choices between Mathematics/Computer Science, subject to you completing at least 20 credits of taught modules from either School and which must include the module Linear Algebra and Linear Programming from the School of Mathematics.
Core modules
Either Computer Science Project (40 credits) or Research Skills in Mathematics (20 credits)
Linear Algebra & Linear Programming - 20 credits
Optional modules
If you take the 40 credit project in Computer Science above you must take an additional 20 credits of taught modules offered by Computer Science with 60 credits offered by Mathematics.
If a you take the 20 credit project in Mathematics above then you can choose to do between 20 and 60 additional credits in Mathematics, which include Linear Algebra and Linear Programming listed above, and between 40 and 80 credits from Computer Science.
All modules 20 credits, examples of optional modules listed below:
Mathematics modules
Algebra & Combinatorics 2
Combinatorics and Communication Theory
Differential Equations
Graph Theory
Mathematical Finance
Multivariable and Vector Analysis
Number Theory
Statistics
Computer Science modules
Advanced Functional Programming
Advanced Networking
Algorithms and Complexity
Computer Vision and Imaging
Computer-Aided Verification
Evolutionary Computation
Human-Computer Interaction
Intelligent Interactive Systems
Intelligent Robotics
Machine Learning and Intelligent Data Analysis
Mobile & Ubiquitous Computing
Natural Language Processing
Neural Computation
Programming Language Principles, Design, and Implementation
Quantum Computing
Security of Real-World Systems
Teaching Computer Science in Schools
Year 4
Choose a project (40 credits) from the core modules below.
- If the project in Computer Science was taken in year 4, then the project in Mathematics in year 5 must be taken.
- If the project in Mathematics was taken at year 4, then similarly the project in Computer Science at year 5 must be taken.
Core module
Project in Mathematics OR Software Project in Computer Science - 40 credits
Optional modules
80 credits of options. All modules 20 credits, examples of optional modules listed below.
Mathematics modules
Choose a maximum of 60 credits from the following:
Advanced Topics in Combinatorics
Applied Statistics
Combinatorics and Communication Theory
Continuum Mechanics
Group Theory
Graph Theory
Mathematical Finance
Medical Statistics
Methods in Partial Differential Equations
Number Theory
Numerical Methods and Numerical Linear Algebra
Randomness and Computation
Statistical Methods in Finance and Economics
Computer Science modules
Choose a minimum of 20 credits to a maximum of 60 credits from the following - the credits of the project plus modules chosen from this list and the previous list must total 120:
Advanced Functional Programming (Extended)
Advanced Networking (Extended)
Algorithms and Complexity (Extended
Computer Vision and Imaging
Computer-Aided Verification (Extended)
Evolutionary Computation (Extended)
Forensics, Malware, and Penetration Testing
Human-Computer Interaction (Extended)
Intelligent Interactive Systems (Extended)
Intelligent Robotics (Extended)
Machine Learning and Intelligent Data Analysis (Extended
Mobile & Ubiquitous Computing (Extended)
Natural Language Processing (Extended
Neural Computation (Extended
Programming Language Principles, Design, and Implementation (Extended)
Quantum Computing (Extended)
Secure Software and Hardware Systems
Security of Real-World Systems
Teaching Computer Science in Schools (Extended)
Please note: The modules listed on the website for this programme are regularly reviewed to ensure they are up-to-date and informed by the latest research and teaching methods. Unless indicated otherwise, the modules listed for this programme are for students starting in 2023. On rare occasions, we may need to make unexpected changes to core modules; in this event we will contact offer holders as soon as possible to inform or consult them as appropriate.
Show less