The first two years are carefully designed to allow you as much choice as possible in your final year. In the first year you study core calculus and algebra. On this programme you take modules in either applied mathematics or in discrete mathematics and statistics. In Computer Science you study the foundations of computer science together with program design and programming techniques.
- Mechanics - 10 credits
- Real Analysis and the Calculus - 30 credits
- Vectors, Geometry & Linear Algebra - 20 credits
- Programming in Java - 20 credits
- Logic and Computation - 20 credits
- Data Structures and Algorithms - 20 credits
You take modules in advanced calculus and algebra, management mathematics, algorithms, data structures and logic. Your interests will develop towards either software engineering or the more mathematical themes that involve computation.
- Linear Algebra - 10 credits
- Algebra & Combinatorics 1 - 20 credits
- Probability and Statistics - 10 credits
- Multivariable & Vector Analysis - 20 credits
- Advanced Functional Programming - 20 credits
- Systems Programming in C/C++ - 20 credits
- Security and Networks - 20 credits
The third year offers you a choice of modules with the possibility of specialising in either Mathematics or Computer Science. Project modules, particularly in Computer Science, are encouraged.
- Project in Mathematics (20 credits) OR Project in Computer Science (40 credits)
Optional modules - select modules from each section
Choose 40 credits (if you selected Project in Mathematics) OR 60 credits (if you selected Project in Computer Science). Example optional modules are listed below. Availability is subject to timetabling and prerequisites.
- Differential Equations - 20 credits
- Combinatorics and Communication Theory - 20 credits
- Graph Theory - 20 credits
- Algebra and Combinatorics 2 - 20 credits
- Real and Complex Analysis - 20 credits
- Numerical Method and Programming - 10 credits
- Research Skills in Mathematics - 20 credits
- Statistics - 20 credits
- Mathematical Finance - 20 credits
- Number Theory - 20 credits
- Linear Programming - 10 credits
Choose 60 credits (if you selected Project in Mathematics) OR 20 credits (if you selected Project in Computer Science). Example optional Computer Science modules are listed below. Availability is subject to timetabling and prerequisites.
- Advanced Networking - 20 credits
- Complex Adaptive Systems - 20 credits
- Computer Graphics - 20 credits
- Computer Vision and Imaging - 20 credits
- Computer-Aided Verification - 20 credits
- Human-Computer Interaction - 20 credits
- Individual Study - 20 credits
- Intelligent Robotics - 20 credits
- Language and Cognition - 20 credits
- Machine Learning and Intelligent Data Analysis - 20 credits
- Programming Language Principles, Design, and Implementation - 20 credits
- Security of Real-World Systems - 20 credits
- Teaching Computing in Schools - 20 credits
- Theoretical Foundations for Security - 20 credits
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 2019. 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.