BSc Computer Science and Mathematics
Please note: This page is for 2026 entry. Click here for 2027 entry.
| UCAS code | GG41 |
|---|---|
| Duration | 3 years |
| Entry year | 2026 |
| Campus | Streatham Campus |
| Typical offer | A levels: AAA - AAB |
|---|---|
|
A-Level: ABB-ABC |
| UCAS code | GG4C |
|---|---|
| Duration | 4 years |
| Entry year | 2026 |
| Campus | Streatham Campus |
| Typical offer | A levels: AAA - AAB |
|---|---|
|
A-Level: ABB-ABC |
Why study BSc Computer Science and Mathematics at Exeter?
- An interdisciplinary degree combining traditional mathematical techniques with exciting contemporary applications in the field of computer science
- Develops practical skills in the specification, design and implementation of computer systems, as well as an understanding of the theory behind them
- Our world-class teaching is informed by active, up-to-the-minute research of international standing in developing fields including machine learning, artificial intelligence, and nature-inspired computation
- Opportunities for industry experience are available through summer placements or a year-long Industrial Placement
- Excellent teaching links with computer-related industry partners such as IBM, The Met Office, NATS and Motorola
Discover Computer Science at the University of Exeter.
![]()
Top 20 in the UK for Computer Science
18th in the Complete University Guide 2026
![]()
Excellent facilities spanning a wide range of machine types and software ecosystems alongside world-class computer science labs
![]()
Partner to the Alan Turing Institute
![]()
Top 15 in the UK for graduate prospects
Joint 12th for graduate prospects for Computer Science in the Complete University Guide 2026 (94%)
Entry requirements (typical offer)
| Qualification | Typical offer | Required subjects |
|---|---|---|
| A-Level | AAA - AAB |
GCE A-Level Maths grade A
Candidates may offer GCE AL Maths, Pure Maths or Further Maths. |
| IB | 36/666-34/665 | HL 6 in Mathematics (Analysis and approaches or Applications and interpretations) |
| BTEC | DDD | Applicants studying a BTEC Extended Diploma are also required to achieve grade A at A' Level in Mathematics, Pure Mathematics or Further Mathematics |
| GCSE | 4 or C | Grade 4/C in GCSE English language |
| Access to HE | 30 L3 credits at Distinction Grade and 15 L3 credits at Merit Grade | 15 L3 credits at Distinction in an acceptable Mathematics subject area |
| T-Level | T-Levels not accepted | N/A |
| Contextual Offer | A-Level: ABB-ABC |
Specific subject requirements must still be achieved where stated above. Find out more about contextual offers. |
| Other accepted qualifications | ||
| English language requirements |
International students need to show they have the required level of English language to study this course. The required test scores for this course fall under Profile B1. Please visit our English language requirements page to view the required test scores and equivalencies from your country. |
|
NB General Studies is not included in any offer.
Grades advertised on each programme webpage are the typical level at which our offers are made and provide information on any specific subjects an applicant will need to have studied in order to be considered for a place on the programme. However, if we receive a large number of applications for the programme we may not be able to make an offer to all those who are predicted to achieve/have achieved grades which are in line with our typical offer. For more information on how applications are assessed and when decisions are released, please see: After you apply
Course content
Your first year gives you a solid foundation in computer science. It includes an introduction to procedural and object-oriented programming, system architectures and professional issues of computing. Mathematics modules develop the skills you'll need for later modules in computer science and artificial intelligence.
The second year includes exposure to rigorous software development and software engineering best practice, together with information systems. You'll choose from research-led modules in computer science and mathematics, and can also select modules from another discipline at the University.
In your final year everything you have learnt in your studies comes together in a significant piece of individual project work in which you'll research, design and implement a substantial software system. A wide range of optional modules allows you to tailor your degree to your specific interests.
You may notice changes to some of our modules over the coming months. This is because we are making space for the following:
- Minors: Future Skills Pathways - Alongside your main degree you may be eligible (depending on your course) to choose modules from another subject to broaden your skills and interests.
- Skills to Thrive built into every degree - Essential skills for your future, including communication, problem-solving, teamwork and digital confidence.
- Increased innovation and wellbeing - More room for creative learning, real-world projects and a healthier study rhythm.
The modules below provide examples of what you can expect to learn on this degree course based on recent academic teaching. The precise modules available to you in future years may vary depending on staff availability and research interests, new topics of study, timetabling and student demand.
Please note that the module information displayed here is subject to change.
105 credits of compulsory modules, 15 credits of optional modules
Compulsory modules
| Code | Module | Credits |
|---|---|---|
| Compulsory 1 | ||
| Programming | 15 | |
| Object-Oriented Programming | 15 | |
| Computers and the Internet | 15 | |
| Foundations | 0 | |
| Mathematical Structures | 30 | |
| Mathematical Methods | 30 | |
ECM1400: Programming
We use computers in almost all aspects of our daily lives and throughout science, so it is easy to take them for granted. However, in order that we can use computers to solve new problems and create new things, we have to be able to program them. This module introduces you to programming and problem solving with a computer. You will learn how to formulate an algorithm to solve a problem, and you will acquire the skills to write, test and debug programs.
This module is an introductory course in computer programming and will introduce you to the fundamental concepts of computer algorithms and programming, with a strong emphasis on practical implementation. You will also learn how to apply analytical and problem-solving skills to the design and implementation of small applications.
ECM1410: Object-Oriented Programming
This module will introduce you to object-oriented problem-solving methods and provide you with object-oriented (OO) techniques for the analysis, design and implementation of solutions. We will introduce you to these concepts, and you will develop skills with a new programming language. By the end of this module, you will be able to apply these skills to design and implement small applications.
The module aims to provide you with a thorough grounding in the fundamentals of object-oriented design concepts, alongside the fundamentals of the Java programming language, and general object-oriented design concepts. It will also introduce you to widely used components of the unified modelling language (UML), teach you how to interpret and implement a Java program from these higher-level designs, along with the pair programming approach used in industry.
ECM1413: Computers and the Internet
This module is designed to equip you with the foundational information you need to understand and work in business and technical fields requiring the use of computers and networking technologies. Computing technology has a diversity of applications, so this module is suitable both for computer science students and for those pursuing other study disciplines. On this module, you will acquire foundational knowledge of computer systems (operating system and computer architecture) and computer networks.
By the end of the module, you should be well placed to make use of an extensive range of hardware and software technologies. In addition, you will have gained the knowledge and skills to enable you to analyse existing computer- and internet-based information systems.
MTH1000: Foundations
University level mathematics differs from that taught in schools not only in the difficulty of the topics and higher abstraction, but also in the style of teaching. This module aims to ease the transition to university level mathematics by bridging the gap between mathematics taught prior to university level, and the material covered in the first year of our mathematics degree, including the programming languages which will be taught in depth in other modules. The module eases you into a university teaching and learning environment and helps revise material from A-level. You will revisit essential skills in algebra, coordinate geometry, vectors, series and sequences, as well as some topics which are covered in Further Mathematics A-level such as complex numbers, matrix algebra, differential equations, and Maclaurin series. In this module, you will go over the theory and see many solved examples, as well as practice many examples to master these essential topics. Attending the lectures of this module is highly recommended to those students who do not have an A-level in Further Mathematics or equivalent, but those who do can also utilise these sessions to review the material and gain more practise experience. This module will also provide the skills needed to communicate mathematics which is a vital skill in all modules to be taken throughout a mathematics course.
MTH1001: Mathematical Structures
A key aspect of mathematics is its ability to unify and generalise disparate situations exhibiting similar properties by developing the concepts and language to describe the common features abstractly and reason about them rigorously. In this module, you will be introduced to the language of logic, sets, and functions which underpins of all modern pure mathematics, and will learn how to use it to construct clear and logically correct mathematical proofs. The content goes beyond mathematics taught at A-level: you will learn and use methods to prove rigorous general results about the convergence of sequences and series, justifying the techniques developed in MTH1002 and laying the foundations for a deeper study of Analysis in MTH2008. You will also learn the definitions and properties of abstract algebraic structures such as groups and vector spaces. These ideas are developed further in MTH2010 and MTH2011. The material in this module is fundamental to many other modules in the mathematics degree programmes. It underpins the topics you will see in more advanced modules in fundemental mathematics and enables a deeper understanding and rigorous justification of the mathematical tools you will meet in more applied mathematics modules and which are widely used in physics, economics, and many other disciplines.
MTH1002: Mathematical Methods
During your mathematics degree, you will be solving problems and proving theories in several branches of mathematics such as in pure mathematics, in applications to science and engineering, and in statistics. Inevitably you need to be able to calculate. That is what gives the mathematics its great power. This module covers developed bodies of useful techniques as a toolkit of common knowledge. It brings emphasis on the techniques rather than the applications of the techniques. Such techniques will enable you to deepen your familiarity with, and generalise, methods that you have seen at school level mathematics. This module will study topics that include the geometry of conic sections, properties of functions such as continuity and differentiability, differential and integral calculus, limits and convergence of sequences and series including Power Series and Taylor Series. The module also develops the fundamentals of vector and matrix theory, multivariate calculus, and the classification of various types of differential equations as well as analytical methods for solving them. The material in this module provide intuition for, and examples of, many of the mathematical structures that will be discussed in the module MTH1001 Mathematical Structures, and supply a firm understanding of methods required in future modules in the mathematics degree. In particular, it develops methods that underpin the modules MTH2003 Differential Equations and MTH2004 Vector Calculus and Applications.
Optional modules
| Code | Module | Credits |
|---|---|---|
| Optional 1 | ||
| Fundamentals of Machine Learning | 15 | |
| Data Structures and Algorithms | 15 | |
COM1011: Fundamentals of Machine Learning
Differently from traditional software, artificially intelligent software can improve performance upon ingesting increasing quantities of data. This module will introduce you to the core concepts that are needed to understand the field of Artificial Intelligence and Machine Learning. You will learn about the principal paradigms from a theoretical point of view and gain practical experience through a series of workshops. In this module we will emphasize the notion and importance of data and you will learn how machines can deal with different types of data sources, ranging from images and text to networks and user preferences.
Co-requisite Modules: ECM1400, MTH1002, MTH1004, or equivalent.
This module is suitable for students with sufficient preparation in Mathematics and Programming.
This module aims to equip you with the fundamental notions to understand and identify the compromises and trade-offs that must be made when using a machine learning approach. It will provide the foundations to understand the principal flavours of machine learning techniques. Emphasis will be placed on how to work effectively with different information sources.
ECM1414: Data Structures and Algorithms
According to an old formula, Algorithms + Data Structures = Programs. This remains as true today as when it was originally formulated by Niklaus Wirth in 1976, and encapsulates the truism that all computation consists of the manipulation of data by means of systematic procedures. But data comes in many different forms (e.g., numerical, alphabetical, graphical) and only by knowing how it is structured can we specify the procedures – algorithms – for manipulating it to produce desired outcomes. Thus, the study of data structures and algorithms constitutes an integrated topic, which forms the subject matter of this module. You will be introduced to some of the key concepts in the area, with plenty of examples to illustrate them, and you will be given a chance to demonstrate your understanding by undertaking exercises. This module builds on the programming knowledge you have already acquired from ECM1400 Programming and will make use of mathematical tools introduced in ECM1415 (Discrete Mathematics for Computer Science) to enable data structures and algorithms to be described precisely.
Prerequisite module: ECM1400, ECM1415 or equivalent.
Please note that the module information displayed here is subject to change.
30 credits of compulsory modules
30-60 credits of Computer Science Optional modules
30-60 credits of Mathematics Optional modules
0-30 credits of Other Optional modules
Compulsory modules
| Code | Module | Credits |
|---|---|---|
| Compulsory 1 | ||
| Team Project | 15 | |
| Software Development | 15 | |
COM2020: Team Project
This module gives you the opportunity to work collaboratively on a substantial practical problem, which you will solve from a computational and data-based perspective. Teams will apply technical skills in software development and data analysis while managing project planning, teamwork, and communication. During the module you will design and develop a solution that balances innovation with feasibility, and develop a prototype that you demonstrate tackles the project according to specific measures of success. You will develop the professional skills required to succeed in technology and data-driven industries.
The aim of this module is to equip you with the necessary practical and theoretical skills to enable you to develop and implement a computational and data-driven solution to a given problem. Early in the module you will be presented with a realistic problem, and you will be asked to work within a team to propose, develop, and implement a solution to the problem. You will learn how to apply a range of evaluation measures to evaluate the success of your team’s solution. Throughout the module you will learn about and deploy teamwork skills to ensure the success of your project.
ECM2414: Software Development
The module will introduce you to software design and development concepts and methods, alongside intermediate and advanced constructs and concepts in the Java programming language, and the programming paradigms these relate to. This includes generic programming (and Java generics), concurrent programming (via Java threads), design patterns, networked programs and nested inner classes. We will also cover widespread tools in software development, including version control and unit testing.
This module will introduce you to methods for the rigorous testing and assessment of software, and prepare you for complex programming tasks in a specific object-oriented programming language, including advanced concepts and syntax, and the use of multiple programs in parallel.
Optional modules
| Code | Module | Credits |
|---|---|---|
| Computer Science Optional Group | ||
| Functional Programming | 15 | |
| Database Theory and Design | 15 | |
| Artificial Intelligence and Applications | 15 | |
| Mobile and Ubiquitous Computing | 15 | |
| Network and Computer Security | 15 | |
| Outside the box: Computer Science Research and Applications | 15 | |
| The C Family | 15 | |
| Mathematics Optional Group | ||
| Differential Equations | 15 | |
| Vector Calculus and Applications | 15 | |
| Real Analysis | 15 | |
| Complex Analysis | 15 | |
| Groups, Rings and Fields | 15 | |
| Linear Algebra | 15 | |
| Optional 3 | ||
| Web Development | 15 | |
| Probability, Statistics and Data | 30 | |
| Numerical Modelling | 15 | |
| Mathematics of Machine Learning and AI | 15 | |
COM2413: Functional Programming
In this module you will discover a style of computer programming -- functional programming -- that contrasts sharply with the more traditional ones of imperative programming (for example, in Python) and object-oriented programming (for example, in Java). Out go the old ideas of sequence (seen as sequences of program statements) and state (seen as updatable variables and storage). Instead, in comes the idea of pure functions as he only means of computation. The resulting programs are both far more elegant and far more amenable to reasoning and mathematical proof. Not only that, but this style of programming makes it possible to solve problems at large scale by providing a more manageable approach to parallel computing.
ECM2419: Database Theory and Design
This module will give you an insight into the theoretical and technical issues underlying current and future database management systems. You will acquire practical and theoretical competence in database modelling and design, as well as gaining familiarity with modern state-of-the-art database technology.
Prerequisite module: ECM1400, ECM1410, ECM1413 or equivalent.
The intention of the module is to equip you with the theoretical and practical knowledge needed to design, develop and manage database systems using modern database management systems. You will get hands-on experience on a selected database management system that is currently in commercial use. By the end of the module you will be competent with the methods for designing, developing and managing database systems and their associated forms-based applications.
ECM2423: Artificial Intelligence and Applications
Artificial Intelligence is the science of getting computers to do things which, when done by humans, involve the exercise of intelligence. It has been an important strand of Computer Science throughout the lifetime of that discipline, and has exerted a significant influence on other areas of Computer Science as well as on practical applications. This module will provide you with a broad overview of Artificial Intelligence, as well as a more detailed understanding, both practical and theoretical, of selected topics within this area. This module is suitable for any student who has a basic knowledge of computer programming, as well as linear algebra, discrete mathematics, and probability theory.
Pre-requisites: ECM1415 and ECM2418
In this module we aim to provide you with a general introduction to some of the main topics within the broad field of Artificial Intelligence, beginning with an overview of the history and philosophy of AI, then proceeding to a more detailed examination of a range of specific sub-areas, including logic and knowledge representation, searching algorithms, machine learning, and natural language processing.
ECM2425: Mobile and Ubiquitous Computing
Computing is no longer a stationary task but an ambient force that anticipates our needs, marking a definitive shift from isolated, general-purpose hardware to a hyper-connected "digital hub" ecosystem. In this landscape, technology moves with us, evolving beyond the desktop to become a proactive, ubiquitous presence that seamlessly integrates personal devices into the fabric of our daily interactions. This module prepares you for the technical challenges of this landscape through two core pillars: practical mobile development and advanced ubiquitous computing concepts.
For the first part of the module, you will gain hands-on experience with Android Studio and the Android SDK, mastering foundational components such as Activities, Fragments, and Services. You will learn to optimise performance through contemporary UI patterns, efficient data persistence, and secure inter-component communication. The second part of the module explores the broader architectures of Mobile and Ubiquitous Computing. You will examine the multi-layered IoT ecosystem, the critical differences between hard and soft real-time systems, and the performance trade-offs inherent in hardware optimisation. Finally, we address the vital issue of security in a hyper-connected world, covering interception and side-channel attacks. This module provides the versatile skills needed to build secure, high-performance applications for the next wave of intelligent distributed systems.
ECM2426: Network and Computer Security
Network and computer security is now widely recognised as a vital aspect in the design, development, and implementation of today’s computer systems. Billions have been spent on strengthening the security of computer systems to defend against hacking, malicious code, data theft, denial-of-service attacks, etc. This module will provide a solid understanding of the main issues related to security in modern computer systems and networks. You will learn the foundations of computer security, techniques to secure complex systems, and gain practical skills in assessing the threats to the security of networked computer systems.
This module aims to create awareness of the need for security and introduce security mechanisms in modern computer systems. We will explore topics such as fundamentals of computer security, technology and principles of network security, cryptography, authentication and digital signatures, access control mechanisms and software security. The module gives you practical hands-on experience of testing security applications, applying security methods, and protecting networked system.
Pre-requisites:
ECM2427: Outside the box: Computer Science Research and Applications
This module gives you a chance to explore the breadth and depth of Computer Science beyond the core technical content of the main syllabus, and to investigate current research in Computer Science and how it is used to solve problems in other areas. It will explore some of the frontiers of research in the department and, through lectures by specialists in other fields, will introduce you to some of the uses of Computer Science methods in business, the sciences, social sciences and humanities.
This module aims to introduce students to current Computer Science beyond the confines of the main syllabus. On one side, it will introduce you to some of the research into new ideas in Computer Science, and on the other, it will explore some applications where Computer Science is essential. You will learn about the nature and purpose of research, some current research problems, the methods employed to tackle them, and how the results are evaluated. You will also learn about some of the ways existing Computer Science techniques and technologies are applied to solve problems outside Computer Science, particularly large-scale computing applications.
You will demonstrate what you have learnt by producing an in-depth review on one of the topics covered by the seminars, and in groups, you will also find out about a current topic of Computer Science and technology and make a presentation on it.
ECM2433: The C Family
The family of C languages includes some of the most widely-used programming languages in science and commerce today. From embedded systems to scientific modelling and from mobile apps to web services, many of the systems around us have been developed in a C family language. Although writing in these compiled languages can be more complex and exacting than some more recent languages, they offer greater performance and direct access to operating system services. In this module you will be introduced to a number of the C family languages, their history and relationships, and the computer systems that they are most commonly used to develop.
This module aims to develop skills in the C family languages including the syntax of each language and its predominant application area. The module also aims to highlight the similarities and differences between each of the languages, to explain their shared history and to describe the relationship between these languages, principally C, C++ and Rust, and languages such as Java and Python.
MTH2003: Differential Equations
Differential equations are at the heart of nearly all modern applications of mathematics to natural and man-made phenomena. Mathematically, all rates of change and acceleration can be described by derivative functions. These include the growth of populations, the spread of diseases, movement of physical objects in response to forces acting on them, or even the fluctuations of the stock market. This course will enable you to demonstrate an understanding of, and competence in, a range of analytical tools for posing and solving differential equations, and their application to situations in science and technology.
MTH2004: Vector Calculus and Applications
This module introduces vector calculus and its applications in particular fluid dynamics and electromagnetism. The module consists of two parts, which are closely linked. In the first part of the module, you will learn about the mathematical theory and techniques of vector calculus. You will develop your competence in using vector calculus in both differential and integral forms. The second part of the module gives an introduction to fluid dynamics and electromagnetism as two applications of vector calculus. It lays down some basic principles using a number of simplifying assumptions.
This introductory vector calculus course aims to increase your understanding of fluid dynamics and electromagnetism. It examines how one can use vector formalism and calculus together to describe and solve many problems in two and three dimensions. For example, the rules that govern the flow of fluids can be described using vector calculus, with resulting laws of motion described by partial differential equations rather than ordinary differential equations.
MTH2008: Real Analysis
Description – summary of the module content
Infinite processes appear naturally in many contexts, from science and engineering to economics. From solving the equation that finds the wave function of a quantum system in physics, processing sensor data in engineering, to calculating prices for options in economics, at the foundation of all of these are infinite processes and the pure mathematics developed to rigorously and correctly handle these processes. That field of pure mathematics is called analysis, and the central object of study in analysis is that if a limit, which further extends to the notions of convergence, continuity, differentiation and integrability.
In this module, you will be introduced to the pioneering work of Cauchy, Riemann and many other notable mathematicians. By building on material from MTH1001 and MTH1002, we will carefully and rigorously develop how to handle real-variable differentiation, Riemann integration, power series, and basic notions of point set topology.
The material in this module is a prerequisite for the study of Complex Analysis (MTH2009) Topology and Metric Spaces (MTH3040) and Fractal Geometry (MTHM004). It is also recommended for those studying Dynamical Systems and Chaos (MTHM018), and is the basis for applications in economics, engineering and physics.
Pre-requisite modules
MTH1001 and MTH1002 (or equivalent)
Aims – intentions of the module
MTH2009: Complex Analysis
The central object of study in analysis is the notion of a limit and related concepts of convergence, continuity, differentiation, and integration.
The objective of this module is to provide you with a rigorous introduction to complex analysis. We will carefully develop an understanding of the analysis of functions of a complex variable, and prove the central theorems governing the differentiation and integration of such functions. You will learn how to handle power series, singularities and contour integration, and see how to apply these to solve a wide range of problems. Quite surprisingly, complex analysis turns out to be a great deal more rigid, and more algebraic, than real analysis, and has many practical applications.
The material in this module has close links with Vector Calculus MTH2004 (although these modules are logically independent), and provides the foundations for further study in a range of subjects, most notably in number theory and geometry.
MTH2010: Groups, Rings and Fields
In this module, you will explore some of the key techniques of modern algebra, including groups, rings, and fields. These topics have their roots in the desire to solve certain equations that arise from arithmetic and geometry.
The most familiar example of a ring is the set of all integers Z=...,-3,-2,-1,0,1,2,3... equipped with the usual operations of addition and multiplication. The familiar properties of these operations serve as a model for the axioms for rings. We can consider whether certain equations have solutions in rings such as the integers. For example, Fermat's Last Theorem famously asserts that if n is a fixed integer that is at least 3, then the equation x^n + y^n = z^n has no solutions for which x, y and z are non-zero integers. Though this problem is easy to state, its solution is extremely difficult: it was first stated in 1637 but the first complete and correct proof was given in 1994. Ring theory is essential for the fourth year module MTHM028 Algebraic Number Theory, which in turn lays the foundations for solving problems such as Fermat's Last Theorem.
Fields are special types of ring in which every non-zero element has a multiplicative inverse. Examples include the rational numbers Q, the real numbers R and the complex numbers C.
MTH2011: Linear Algebra
Abstract vector spaces are important objects in linear algebra, which has its origins in solving linear equations over a field such as the rational, real or complex numbers. The elements of a vector space can be somewhat abstract: for example, they can be functions. However, it is precisely this abstraction that makes the theory of vector spaces such a powerful tool. They arise in almost every area of (pure and applied) mathematics and statistics. For example, PDEs (partial differential equations) of some types are just ODEs (ordinary differential equations) in vector spaces of functions, and numerical and data analysis methods consider vector spaces of increasing dimension to approximate function spaces.
Prerequisite modules: MTH1001and MTH1002 (or equivalent).
This module aims to develop the theories and techniques of modern algebra, particularly in relation to vector spaces and inner product spaces.
COM2021: Web Development
Today, the World Wide Web is a ubiquitous part of everyday life, and an attractive and effective Web presence is vital for any organisation or business. In this module, you will learn about the techniques and technologies that are used to develop usable, accessible, efficient, robust and secure Web sites. These techniques and technologies will be demonstrated by writing programs for both Web clients (typically, browsers) and Web servers. In both cases, the need for portability imposes constrains not found when writing programs for a single operating system.
In this module, you will learn how to create programs that run on Web clients and ones that run on Web servers. The programs that run on Web clients will allow you to gain an understanding of usability and accessibility concerns, and to address these concerns by using scripting, frameworks and style-sheets to create pages that react to user input. The programs that run on Web servers will allow you to gain an understanding of efficiency, robustness and security concerns, and to address these concerns by using programming languages guided by design patterns.
MTH1004: Probability, Statistics and Data
Our ability to collect and analyse data is increasingly driving our world. Statistics is concerned with both the practice of analysing data to learn about the world, and the theory that underpins the methods and models used for data collection and analysis. This theory is itself based on probability, the mathematics of chance and uncertainty. In this module, you will learn about the mathematics of combinatorics and probability, and the key ideas of statistical modelling and inference, in which probability is used to quantify uncertainty. You will also gain experience of employing these ideas to analyse data using statistical software such as the R programming environment. The module develops key ideas and techniques that form the foundation of modules such as MTH2006 Statistical Modelling and Inference.
The aim of this module is to introduce you to basic topics in probability, statistics and data analysis. This module provides the foundation for the second-year stream in Statistical Modelling and Inference, and subsequent modules in statistics in years 3 and 4.
MTH2014: Numerical Modelling
Mathematicians are problem solvers – we take a problem and choose the appropriate tool to solve it. Numerical methods are one of our most powerful tools, especially when using a computer. However, one problem is that computers will often give us an answer, but is it the correct answer? This module will build on MTH1003 to explore advanced numerical methods, exploring when they do and do not work. You will have lectures and practical sessions where real-world applications are explored using Python. The module will prepare you for real-world uses of numerical mathematics and prepare you for future computational modules. The module’s main aim is to equip you with an array of tools to solve real-world problems numerically, but also the mathematical ability to predict and analyse whether these methods will work and when they might fail. One other focus of the module will be efficiency – there are often many ways to numerically solve a problem, but we want to understand which method is the mMTH2015: Mathematics of Machine Learning and AI
This module introduces mathematical foundations of modern machine learning (ML) and artificial intelligence (AI). It covers the mathematical theory of learning (PAC learning), analysis of machine learning algorithms (eg decision trees, artificial neural networks) as mathematical methods for function approximation, and gradient-based optimisation as a paradigm for training ML models for specific tasks. Practical work includes studying code examples of machine learning applications in different fields, and guided projects on advanced topics in ML and AI, such as Natural Language Processing, Formal Proof Systems, and Search Algorithms. Programming/Coding: The main programming language for the examples in this module is python. Students will receive guidance on how to translate examples from python to R. The emphasis of the course is to gain understanding of mathematical foundations of ML and AI and practical experience on worked examples and real-world applications. The module suits studePlease note that the module information displayed here is subject to change.
For more information about the ‘with Year in Industry’ programme, please see the course variants.
120 credits of compulsory modules
Compulsory modules
| Code | Module | Credits |
|---|---|---|
| Compulsory 1 | ||
| Industrial Placement | 120 | |
ECM3419: Industrial Placement
This module will provide you with extensive practical work experience in a business or commercial setting that is of direct relevance to your development as an experienced computer scientist. You will apply the knowledge and skills from taught modules to a real problem in computer science at a professional level. You will be encouraged to use imagination and creativity in problem solving and to develop communication skills, planning and time management and team-working skills. Placements will involve a substantial technical role in the host organisation. Individual placements are subject to availability and approval by the module leader.
This module aims to provide students with the experience of working in industry in order for them to apply the knowledge and skills acquired in an academic environment to an industrial setting.
Please note that the module information displayed here is subject to change.
45 credits of compulsory modules
15-45 credits of Computer Science Optional modules
30-60 credits of Mathematics Optional modules
0-30 credits of Other Optional modules
Compulsory modules
| Code | Module | Credits |
|---|---|---|
| Compulsory 1 | ||
| Individual Literature Review and Project | 45 | |
ECM3401: Individual Literature Review and Project
This is the module in which everything you have learnt in your Computer Science studies comes together in a substantial piece of individual project work, involving initial research and literature review, and specification and design of a software system, followed by implementation, testing, evaluation, and demonstration of the system. You will work under the supervision of an individual staff member who will provide guidance and advice as appropriate.
The aim of the module is to enable you to consolidate the knowledge, understanding, techniques and skills acquired over the previous two years through the specification, design, implementation, testing, evaluation and demonstration of a software system. The module includes both initial research into the project area (including production of a literature review) and production of the system itself following an appropriate development method.
Optional modules
| Code | Module | Credits |
|---|---|---|
| Computer Science Optional Group | ||
| Data Science at Scale | 15 | |
| Computer Vision | 15 | |
| Social Networks and Text Analysis | 15 | |
| Security Assessment and Validation | 15 | |
| Probabilistic Machine Learning | 15 | |
| Enterprise Computing | 15 | |
| Nature-Inspired Computation | 15 | |
| Computability and Complexity | 15 | |
| Algorithms that Changed the World | 15 | |
| High-Performance Computing | 15 | |
| Mathematics Optional Group | ||
| Theory of Weather and Climate | 15 | |
| Number Theory | 15 | |
| Mathematical Biology and Ecology | 15 | |
| Fluid Dynamics | 15 | |
| Partial Differential Equations | 15 | |
| Applied Differential Geometry | 15 | |
| Mathematics: History and Culture | 15 | |
| Graphs, Networks and Algorithms | 15 | |
| Stochastic Processes | 15 | |
| Cryptography | 15 | |
| Mathematics of Climate Change | 15 | |
| Galois Theory | 15 | |
| Computational Nonlinear Dynamics | 15 | |
| Topology and Metric Spaces | 15 | |
| Dynamical Systems and Chaos | 15 | |
| Optional 3 | ||
| Commercial and Industrial Experience | 15 | |
| Aerosols, Clouds and Climate | 15 | |
COM3021: Data Science at Scale
Data science relies on large amounts of data to be effective and many commercial and scientific applications require the analysis of large quantities of heterogenous, noisy data on distributed machines. This module will examine the ways in which algorithms for data science can be implemented for large data and will discuss new algorithms specifically designed for large scale data. You will also work with large-scale distributed and cloud systems for storing and computing with big data.
Through theory and practice this module aims to equip you with an understanding of the principles of distributed computing, particularly on cloud-based systems, the ways in which data can be stored and accessed to allow efficient computation, and efficient algorithms for large-scale computation.
Distributed cloud computing will provide you with the underpinning knowledge required to develop and implement machine learning and artificial intelligence algorithms on distributed high-performance computing systems.
COM3024: Computer Vision
How do we recognise objects and people? How can we catch a ball or navigate a busy room without collisions? These everyday tasks have challenged AI scientists for decades. Recent advances in computer vision have led to major improvements in applications such as face detection, body tracking, autonomous vehicles, and action recognition.
This module introduces the fundamentals of computer vision, covering both classical and state-of-the-art methods. You will gain a theoretical understanding of key algorithms, along with practical skills in image processing, feature extraction, object detection, segmentation, and deep learning for vision tasks. The course also explores 3D vision and modern topics such as video analysis and low-shot learning, providing a broad foundation for solving real-world vision problems.
COM3029: Social Networks and Text Analysis
The rise of the Web has created huge datasets relating to the interaction of users and online content. Much of this content is relational and is best understood using a network perspective (for example, hyperlinked web pages; users linking to content; users linking to users on social platforms). Much of this content consists of unstructured text (for example, webpages, blogs, social media posts) that requires computational methods for analysis at scale. In this module you will learn the core principles of social network analysis and computational text analysis, enabling you to gain insight from the rich data available on the Web.
The aim of this module is to equip you with a range of knowledge and skills needed to make effective use of data from the Web. This module will cover various topics in social network analysis and text analysis, which together allow relational and unstructured text data to be analysed at scale. The module will be taught using the Python language and various open source packages.
The module will be taught in lectures and associated practical work, together with individual self-study and labs. Lectures will introduce the topics of social network analysis and text analysis, accompanied by practical exercises based on lecture material. Assessments will include assessed pitch-deck presentation of the mini-project and an individual mini-project involving the applications of social network and text analysis.
COM3030: Security Assessment and Validation
Even if systems have been developed with security in mind, their security needs to be assessed regularly, as, e.g., new attacks might be developed. Thus, assessing and validating the security of systems, e.g., penetration testing is an important part of cyber security. In this module you will learn the theory and practice of assessing the security of systems and applications both using manual techniques as well as automated approaches. The module focuses on offensive security that might be used by “red teams.”
This module aims to give you a broad understanding in analysing the weaknesses of a system, i.e., the areas an attacker would most likely attack a system. Driven by the discovered weaknesses, we will discuss several offensive security techniques, i.e., simulate how a threat actor (attacker) might gain access to a system, or the data processed by a system.
In more detail, the aims of the module are to enable you to:
- assess the security weaknesses of a system
- develop a strategy how to attack a system
- understand the both the social and technical foundations for attacking systems or organisations
- understand the ethical responsibilities of an offensive security researcher
COM3031: Probabilistic Machine Learning
This module provides an advanced exploration of machine learning and artificial intelligence, focusing on probabilistic modeling, inference techniques, and structured learning methods. It also examines key theoretical foundations alongside advanced techniques, such as Bayesian Neural Networks and Variational Autoencoders, which enable uncertainty quantification and probabilistic generative modeling.. The module delves into Bayesian theory, its role in handling uncertainty, and its connections to approximate inference methods and information theory. Students will also explore techniques for modeling temporally and spatially structured data, including Hidden Markov Models. Additionally, the module introduces reinforcement learning. By integrating probabilistic reasoning, approximate inference, and structured learning, this module equips students with the theoretical depth and practical skills required for tackling complex machine learning problems.
ECM3408: Enterprise Computing
The vast majority of businesses now rely upon well-designed, functional, efficient and secure IT systems to carry out their day-to-day operations and to guide their business strategy. This module introduces you to the techniques required to enable the development of systems that can operate across multiple sites, perhaps even multiple countries, in a secure and efficient manner. In addition, the module highlights the issues and opportunities that can arise from the creation and storage of large-scale datasets. This module will be appropriate for any student interested in the development of enterprise-level software who is studying a programme with significant programming content.
The aim of this module is to introduce you to the enterprise-level techniques used to implement large-scale distributed systems in heterogeneous environments and to consider issues such as interoperability, performance, security and persistence of information within those systems. The module also aims to provide you with an understanding of the latest internet technologies used to assist enterprises in their operation, such as service-oriented architectures, web services and cloud computing.
ECM3412: Nature-Inspired Computation
There is a wide range of tasks, including product design, decision-making, logistics and scheduling, pattern recognition and problem solving, which traditional computation finds either difficult or impossible to perform. However, nature has proven to be highly adept at solving problems, making it possible to take inspiration from these methods and to create computing techniques based on natural systems. This module will provide you with the knowledge to create and apply techniques based on evolution, the intelligence of swarms of insects and flocks of animals, and the way the human brain is thought to process information. This module is appropriate for any student with an interest in natural systems, optimisation and data analysis who has some programming and mathematical experience.
This module aims to provide you with the necessary expertise to create, experiment with and analyse modern nature-inspired algorithms and techniques as applied to problems in industry and industrially motivated research fields such as operations research.
ECM3422: Computability and Complexity
It is popularly supposed that there is no limit to the power of computers to perform any task, so long as it is sufficiently well defined, and to do so quickly and efficiently. In fact this is not so, and it can be proved mathematically that there are well-defined computational tasks which cannot, in principle, be performed by computers as we know them; and other tasks which, while they can be performed, cannot be completed in a feasible amount of time. This module will introduce you to the Turing Machine model of computation which underpins the fundamental theories of computability (concerned with what can be computed at all) and complexity (concerned with how efficiently things which can be computed can be computed). These theories will be introduced in a precise and formal way, and the main results and theorems will be stated and proven.
The overall aim of the module is to introduce the mathematical basis and practical implications of the classical theory of computability and complexity and to consider the extent to which this is still relevant to modern developments in computing.
ECM3428: Algorithms that Changed the World
Algorithms are precisely defined procedures designed to solve computational tasks: they are the life-blood of computing. This module is designed to highlight the importance of algorithms in Computer Science, providing you with an understanding of what algorithms are, how they can be specified and evaluated, and what they can be used for. These general ideas will be illustrated throughout by means of an in-depth study of a range of example algorithms which have played an important part in the development of Computer Science and underpin current computing practice. The prerequisite knowledge may be obtained from two first-year computer science and mathematics modules.
PRE-REQUISITE MODULES: ECM1400, ECM1414, ECM1416
In this module, you will build on the knowledge acquired in ECM1414 (Data Structures and Algorithms) with a more systematic exploration of a range of different types of algorithms and the principles of their design and analysis. A range of specific computational problems will be covered (e.g., operations on strings, graphs, and other data structures, numerical problems), and different algorithms for these problems analysed.
ECM3446: High-Performance Computing
The demand for ever-increasing computational power drives the development and exploitation of high-performance computing that underpins leading edge research in computationally intensive scientific and engineering fields. This module is designed to equip you with a solid foundation and useful skills in high-performance computing. In this module you will learn about current high-performance computer architectures and how the computer architecture influences the performance of algorithms and programs. You will also develop skills in parallel algorithm design and parallel programming, and will gain experience of using a high-performance computing system.
PRE-REQUISITE MODULES : ECM1416, ECM2433
This module aims to provide you with a thorough grounding in parallel programming and the architectures used in high-performance computing. After presenting the fundamental ideas and basic concepts of high-performance computing, the module outlines the architectures, components and parallel programming of high-performance computers. The module will introduce you to recent developments and future trends in architecture and algorithms in high-performance computing.
EMP3001: Commercial and Industrial Experience
This module will provide you with an opportunity to undertake practical work experience in a business, commercial or public sector setting that is of direct relevance to your development as an experienced professional. You will apply the knowledge and skills from taught modules to authentic problem solving in the workplace, which will give you important insights into your potential job role once you graduate from university. You will be encouraged to use imagination and creativity in problem solving and to develop communication skills, planning and time management and team-working skills. Placements will involve taking responsibility for a substantial project, which may be a problem to be solved in the host organisation, in line with your degree programme. Placements are subject to availability, approval by the module convener and full compliance with important Health and Safety procedures and requirements. Placements are normally three months some time during May-September, finishing before autumn classes start. Placements must be a minimum of six weeks full time. It is understood that this will entail around 210 hours of supervised work in order to generate the depth of experience equivalent to the 125 hours of self‑directed study on a focused topic specified under the regulations, as workplace activity is not counted directly as academic study International placements are allowed. Placements can be paid or volunteer.
NSC3009: Aerosols, Clouds and Climate
Climate change is arguably one of the most urgent issues over the next two decades as humanity struggles to meet the 1.5C above pre-industrial target set by the Paris COP21. Concentrations of both greenhouse gases (GHG) and aerosols (particulate matter suspended in the atmosphere) have increased considerably since pre-industrial time. Whilst anthropogenic emissions of GHG warm the planet, aerosol emissions exert a significant, yet poorly quantified cooling that acts to offset a fraction of global warming from GHG.
Reducing current uncertainties associated with estimates of climate change sensitivity to GHG emissions is hampered by our understanding of the strength of the cooling effect aerosol particles have on the climate via their interactions with clouds and sunlight. Despite decades of research the Intergovernmental Panel on Climate Change Assessment Report continue to highlight our low understanding of aerosol-cloud-interactions (ACI) as the key uncertainty hampering our understanding of climate change.
This module is designed to explore the atmospheric physical processes determining the role of aerosols and their interaction with clouds on the climate to provide insight on the importance in reducing current uncertainties associated with aerosol - cloud - interactions (ACI) for adoption of more robust adaptation and mitigation strategies.
Course variants
Computer Science and Mathematics BSc with Industrial Placement
UCAS code - GG4C
This programme includes a year’s paid industrial placement in your third year. You will work on a substantial project and gain first-hand experience of the practical application of computer science. This placement will give you invaluable work experience, significantly enhancing your employability, whilst developing your practical skills.
Does it count towards my degree?
Yes, your industrial placement year counts as 120 credits of your degree.
How does it affect my tuition fee?
If you spend a full year on a work placement, you will pay a reduced tuition fee of 20 per cent of the maximum fee for that year. Visit the Tuition Fees page for more information.
Is the placement paid?
Yes, placements are paid with salaries varying according to role and employer.
How do I apply?
You can apply directly through UCAS using the UCAS code above for BSc Computer Science with Industrial Placement.
Preparation and support
We have excellent links with employers and can provide assistance in finding suitable employment. Professional experience not only develops your CV but helps you to determine your career aspirations.
Fees
Tuition fees for 2026 entry
UK students: £9,790 per year
International students: £31,200 per year
Scholarships
The University of Exeter offers a wide range of scholarships to support your education, with £7 million available for international students applying to study with us in the 2026/27 academic year, including our prestigious Exeter Excellence Scholarships*. We also provide scholarships for sport, music and other achievements, alongside regional and partner awards such as Chevening, The Beacon Trust and the British Council. Financial support is available for students from disadvantaged backgrounds, lower income households and other under-represented groups to help them access, succeed and progress through higher education.
* Terms and conditions, including deadlines, apply. See our website for details.
Learning and teaching
Lectures, seminars and workshops
All our degrees involve a combination of teaching methods, including lectures, seminars, workshops and tutorials. Most modules in mathematics involve three one-hour lectures per week, so you would typically have 12 lectures per week. In the first year there are tutorial classes for each module every week and example classes every fortnight, except for modules involving computing or project work. Thus in the first year you would typically have around 16 contact hours per week.
In addition to this, you are expected to spend about 20 hours per week in private study. The tutorials and exercise classes enable you to discuss the lecture material and coursework problems. Further support is available at lunchtime mathematics surgeries run by postgraduate students. You are encouraged to discuss any mathematical problems or questions that may arise with the lecturer. All lecturers have advertised office hours when they are available to provide help. Working through examples and solving problems is a vital part of learning mathematics so coursework is set in each module.
Virtual learning environment
We're actively engaged in introducing new methods of learning and teaching, including increasing use of interactive computer-based approaches to learning through our virtual learning environment, where the details of all modules are stored in an easily navigable website. You can access detailed information about modules and learning outcomes and interact through activities such as the discussion forums.
A research and practice led culture
We believe every student benefits from being taught by experts active in research and practice. You will discuss the very latest ideas, research discoveries and new technologies in seminars and in the field and you will become actively involved in a research project yourself. All our academic staff are active in internationally-recognised scientific research across a wide range of topics. You will also be taught by leading industry practitioners.
Assessment
Assessment for all degrees is through a combination of examinations and coursework. Examinations are the more important part of the process, but the assessed coursework will help you to work steadily throughout your degree. This is particularly important in Mathematics where the subject matter develops logically from fairly simple beginnings. Written examinations for mathematics modules are held in January and May/June of the first and second years and in May/June of each subsequent year. Most modules also have either a mid-term test or coursework contributing to the assessment.
Coursework typically contributes 20% to the assessment of all modules. In the third year several modules allow you to undertake further coursework to contribute to your overall degree classification.
Optional modules outside of this course
Each year, if you have optional modules available, you can take up to 30 credits in a subject outside of your course. This can increase your employability and widen your intellectual horizons.
Minors: Future Skills Pathways
You can study a Future Skills Pathway alongside your main degree by choosing up to 30 credits of modules from a different subject area in your second and final years.
World-class facilities
Our latest computing facilities are world-class spacious teaching labs allowing comfortable, collaborative working in a sensory-friendly environment.
Your future
Exeter has an excellent reputation with graduate recruiters and a strong employment record. Our graduates excel in specialist computer science fields and across a broad range of other sectors.
We offer a very wide range of opportunities for you to develop the skills employers are looking for, including industrial placements and study abroad. Visit our Career and employability webpages to find out more.
Mathematics has long influenced the development of computer science, and the rapid growth of computing power has led to the development of techniques and algorithms which have in turn influenced the mathematics community, making this joint degree a natural combination. In addition graduates from the programme are well prepared for careers requiring either or both of the disciplines.
There has never been a greater need for experts in computing. From the complex IT systems used in modern businesses to sophisticated online gaming experiences, computers are a familiar characteristic of the modern world. This makes for a fascinating range of careers that require the technical expertise of a computer scientist (someone who understands the science behind computer technology).
As an Exeter Computing graduate you may find yourself working with business IT systems, the web, mobile communications or games technology, or in the management and development of the safety-critical systems that control aeroplanes, trains and nuclear power stations.
During your time with us you’ll develop your problem-solving skills, your technical competence and your ability to analyse and reflect on issues relating to computer technology. These are essential skills whether you wish to work for a leading computing company developing new technologies, enter the world of business and finance, or if you would like to use your degree in a different role where you can use your abilities to analyse and solve problems.
Career Paths
The broad-based skills acquired during your degree will give you an excellent grounding for a wide variety of careers, not only those related to Computer Science but also in wider fields. Examples of roles recent graduates are now working as include:
- Academic research
- Business Analysts, Architects or Systems Designer
- Cyber Security Professional
- Engineer
- Financial Accounts Manager
- IT Network Professional
- IT Quality and Testing Professional
- Programmer
- Software Developer
Industrial Experience
As part of the three-year degree, you can choose to take an optional Commercial and Industrial Experience module during the vacation before the third year (subject to availability). This very rewarding opportunity allows you to gain paid work experience while earning credits towards your degree programme. Following the placement you can report on your experience which, alongside a report from the employer, enables you to count your experience as a third-year optional module. We have excellent links with employers and can provide assistance in finding suitable employment.







