Undergraduate Degrees

MSci Computer Science

Please note: This page is for 2027 entry. Click here for 2026 entry.

UCAS code I402
Duration 4 years
Entry year 2027
Campus Streatham Campus
Typical offer

View full entry requirements

A levels: AAA - AAB
IB: 36/666-34/665
BTEC: DDD

Contextual offers

A-Level: ABB-BBB
IB: 32/655-30/555
BTEC: DDM

Why study MSci Computer Science at Exeter?

  • Develop practical skills in the specification, design and implementation of computer systems, as well as an understanding of the theory behind them.
  • Benefit from excellent facilities spanning a wide range of machine types and software ecosystems.
  • 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.
  • Our four-year programme mirrors the BSc Computer Science programme during the first three years, but also includes completion of a research-focused MSci.
  • Opportunities for industry experience are available through summer placements.
  • Comprehensive, relevant programmes inspired by the Computer Science development cycle: theory, design, develop, test and apply.
  • We maintain excellent teaching links with computer-related industry partners such as IBM, The Met Office, NATS and Motorola.

View 2026 Entry

Request a prospectus

Open Days

How to apply

Contact

Web: Enquire online

Phone: +44 (0)1392 72 72 72

Discover Computer Science at the University of Exeter

Top 20 icon

Top 20 in the UK for Computer Science

Computer icon

Excellent facilities spanning a wide range of machine types and software ecosystems alongside world-class computer science labs

Handshake icon

Partner to the Alan Turing Institute

Graduation cap and diploma icon: symbolizing academic achievement and success.

Top 10 in the UK for graduate prospects

Joint 9th for graduate prospects for Computer Science in the Complete University Guide 2027

Black and White BCS logo
Engineering Council accredited degree.

Accredited by BCS, The Chartered Institute for IT for the purposes of fully meeting the academic requirement for registration as a Chartered IT Professional.

Accredited by BCS, The Chartered Institute for IT  on behalf of the Engineering Council for the purposes of fully meeting the academic requirement for registration as a Chartered Engineer.

Entry requirements (typical offer)

Qualification Typical offer Required subjects
A-Level AAA - AAB GCE A-Level Maths grade B

Candidates may offer GCE AL Maths, Pure Maths or Further Maths.
IB 36/666-34/665 HL 5 in Mathematics (Analysis and approaches or Applications and interpretations)
BTEC DDD Applicants studying a BTEC Extended Diploma are also required to achieve a grade B at A' Level in 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 12 L3 credits at Merit Grade in an acceptable Mathematics subject area
T-Level T-Levels not accepted N/A
Contextual Offer

A-Level: ABB-BBB
IB: 32/655-30/555
BTEC: DDM

Specific subject requirements must still be achieved where stated above. Find out more about contextual offers.

Other accepted qualifications

View 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

International Foundation programmes

Prepare for entry to Year 1 of an undergraduate degree with the Exeter International Foundation course.

Course content

The 4-year MSci Computer Science programme provides the opportunity to study more advanced material and obtain a higher-level qualification.

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 design and development best practice, together with information systems and networks. In your third year you'll complete a significant piece of individual project work in which you'll research, design and implement a substantial software system. 

In your final year everything you have learnt in your Computer Science studies comes together as you undertake an individual research project and group development project. Advanced computer science modules allow you to further develop skills in your chosen area of interest.

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.

120 credits of compulsory modules

Compulsory modules

CodeModuleCredits
Compulsory 1
Fundamentals of Machine Learning15
Programming15
Social and Professional Issues of the Information Age15
Object-Oriented Programming15
Computers and the Internet15
Data Structures and Algorithms15
Discrete Mathematics for Computer Science15
Computational Mathematics15

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.

View an example full module specification

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.

View an example full module specification

ECM1407: Social and Professional Issues of the Information Age

The module aims to provide you with the tools to reflect upon your role in the interface between digital technologies and society and on the moral and ethical use of information and information systems. By taking this module, you will become aware of your legal responsibilities and rights as an IT professional and as a user of digital technologies. The module will cover ethical theories, computer law and professional codes of conduct, and will address the ways in which broader areas of law (e.g. defamation, contracts, privacy and freedom of information legislation) impact upon technology users and IT professionals.

This module will introduce you to the law regulating the use of information and digital technology. It will enhance your awareness and critical thinking skills regarding the social impact of information technology, and help you relate professional codes of conduct to ethical theories.

View an example full module specification

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.

View an example full module specification

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.

View an example full module specification

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.

View an example full module specification

ECM1415: Discrete Mathematics for Computer Science

Discrete mathematics is concerned with quantities which vary discretely, and because of that has an important role in Computer Science, in which discrete structures such as sets, graphs, lists, and trees play a fundamental role, and the underlying forms of reasoning are based on propositional and predicate logic rather than on calculus and mathematical analysis, with an emphasis on counting rather than measuring, e.g. enumerating permutations and combinations of objects satisfying specified conditions. This module will provide a thorough grounding in the fundamental structures and methods of discrete mathematics that are required for computer science.

The aim of this module is to provide you with the basic concepts and tools developed in discrete mathematics disciplines but needed for the study of computer science. As such, it forms an essential part of a rounded education of a computer scientist or computer expert whose work includes computer-based data manipulations.

View an example full module specification

ECM1416: Computational Mathematics

Computer science draws from a wide range of essential mathematical techniques. This module will provide a solid foundation on the required mathematical tools and how to use them in solving computer science problems. This module will introduce linear algebra and vector spaces, statistics and probabilities and numerical optimization.  In the course of this module, you will learn to apply theoretical knowledge in concrete programming tasks.  This module complements previous mathematics module and is essential for all engaged in a Computer Science program.

In this module we aim to provide you with a foundation in the essential mathematical tools used in advanced computer science topics. We will teach you how to use vector and matrices, statistics and probabilities and numerical optimization methods and implement them in computer programs.

View an example full module specification

Please note that the module information displayed here is subject to change.

90 credits of compulsory modules, 30 credits of optional modules

Compulsory modules

CodeModuleCredits
Compulsory 1
Team Project15
Functional Programming15
Software Development15
Database Theory and Design15
Network and Computer Security15
Outside the box: Computer Science Research and Applications15

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.

View an example full module specification

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.

View an example full module specification

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.

View an example full module specification

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.

View an example full module specification

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:

View an example full module specification

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.

View an example full module specification

Optional modules

CodeModuleCredits
Optional 1
Web Development15
Artificial Intelligence and Applications15
Mobile and Ubiquitous Computing15
The C Family15

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.

View an example full module specification

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.

View an example full module specification

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.

View an example full module specification

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.

View an example full module specification

Please note that the module information displayed here is subject to change.

45-90 credits of compulsory modules, 30-75 credits of optional modules

Students taking the Study Abroad programme must take the compulsory modules in the Study Abroad Compulsory Group instead of ECM3401

Compulsory modules

CodeModuleCredits
Compulsory 1
Individual Literature Review and Project45
Study Abroad Compulsory
Term of Computer Science Studies Abroad60
Computer Science Individual Project30

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.

View an example full module specification

ECM3429: Term of Computer Science Studies Abroad

This module provides a full term of studies in Computer Science and related subjects at an agreed partner university in a foreign country. It provides you with an excellent opportunity to gain knowledge of Computer Science material that is not covered at Exeter, or that is studied from a new perspective. In addition it allows you to experience how other cultures learn, perceive and use Computer Science. Study at another agreed partner university where the language of instruction is not English may be approved subject to the requirement that you can demonstrate knowledge of that language to A level equivalence or higher. This module is available to students on a four-year integrated masters programme in term one of stage three. To register on this module, you must achieve 55% at stage two and 60% average in term one of stage two, and be enrolled on an MSci Computer Science programme.

View an example full module specification

ECM3430: Computer Science Individual Project

In this module you will make use of the knowledge and skills acquired in the first two years in the specification, design, implementation, testing and evaluation of a substantial piece of software. This is an individual project, meaning that you will be working on your own, with the guidance of an academic staff supervisor. You will be expected to follow the principles of software development which you have learnt in the Stage 2 module ECM2414 Software Development.

PRE-REQUISITE MODULES ECM2414, ECM3429 (Term of Computer Science Study Abroad)

This module is intended for students taking “Study Abroad” option in the MSci Computer Science programme. The aim of this module is to give you the opportunity to develop a substantial piece of software using the principles of software development acquired in earlier stages of the programme. It will also serve as a technical preparation for the research-oriented project to be undertaken at Stage 4. Before embarking on the project, you will have produced, during your term abroad, a literature review in an area of Computer Science; it is expected that your project topic will normally be in this area.

View an example full module specification

Optional modules

CodeModuleCredits
Optional 1
Data Science at Scale15
Computer Vision15
Social Networks and Text Analysis15
Security Assessment and Validation15
Probabilistic Machine Learning15
Enterprise Computing15
Nature-Inspired Computation15
Computability and Complexity15
Algorithms that Changed the World15
High-Performance Computing15
Commercial and Industrial Experience15

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.

View an example full module specification

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.

View an example full module specification

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.

View an example full module specification

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

View an example full module specification

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.

View an example full module specification

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.

View an example full module specification

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.

View an example full module specification

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.

View an example full module specification

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.

View an example full module specification

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.

View an example full module specification

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.

View an example full module specification

Please note that the module information displayed here is subject to change.

60 credits of compulsory modules, 60 credits of optional modules

Compulsory modules

CodeModuleCredits
Compulsory 1
Group Development Project30
Individual Research Project30

ECMM427: Group Development Project

This module provides an opportunity for you to undertake a software development project for an external “customer”. The project will be large enough that you will have to work in teams, and varied enough that you will have to develop separate pieces of the project according to your interests and abilities. As well as applying and enhancing your existing Computer Science skills, you will have to demonstrate knowledge of the customer’s motivations, practices and constraints, and contextualise this within the legal and ethical framework of the profession.

The aim of this module is to give you experience of developing software for a customer who has a good understanding of their own domain, but not such a good one of yours (Computer Science). It will give you an opportunity to apply knowledge and skills gained from taught modules and independent learning to a real computing problem, working as part of a team in a professional way. You will have to interpret and negotiate customer requirements, to produce creative and imaginative solutions that meet these requirements, and to listen to and act on customer criticisms of your solutions.

View an example full module specification

ECMM428: Individual Research Project

In this module, you will be analysing and working towards the solution to a selected research problem in the field of Computer Science. This is an independent piece of work, which includes several aspects of research, implementation and analysis of the results achieved. You will be supervised by an expert from the relevant sub-discipline. Owing to the diversity of topics where Computer Science tools and techniques can be applied, there is a wide spectrum of possibilities for project selection, as well as a broad choice of methods and techniques that may be used to solve and analyse the problem considered.

Pre-requisite: ECM3401

This module is intended to build on the experience gained in the project at level 3, allowing you to conduct a more advanced project, with a substantial research element. The module aims to put into practice the knowledge acquired from the taught elements of the programme and to give you experience of many aspects of research work, including literature review, planning, experimentation and analysis, interpretation of results, and presentation. You will also gain valuable experience in concisely presenting scientific results via the writing of an academic research paper. Presenting the results of commissioned research in a compact and clear form is an essential research skill in both industry and academia.

View an example full module specification

Optional modules

CodeModuleCredits
Optional 1
Network Science15
Text Mining and Natural Language Processing15
Deep Learning15
Generative AI Applications15
Large Language Models and Applications15
Multi-Objective Optimisation and Decision Making15
Digital Twins and Simulation15
Nature-Inspired Computation15
Machine Learning15
Evolutionary Computation and Optimisation15
Computer Modelling and Simulation15
Computer Vision15
Social Networks and Text Analysis15
Building Secure and Trustworthy Systems15
Security Assessment and Validation15

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.

Find out more about tuition fees and scholarships

Learning and teaching

Lectures, seminars and workshops

We make use of a variety of teaching styles, including lectures, seminars, workshops and tutorials. Most modules involve two or three lectures per week, so you would typically have about 10 lectures each week. In addition, workshops and tutorials support and develop what you’ve learnt in lectures and enable you to discuss the lecture material and coursework in more detail. You’ll have over 15 hours of direct contact time per week with your tutors and you will be expected to supplement your lectures with independent study. You should expect your total workload to average about 40 hours per week during term time.

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

Modules are assessed by a combination of continuous assessment through small practical exercises, project work, essay writing, presentations and exam.

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.

Find out more about minor options

Expand text

World-class facilities

Our latest computing facilities are world-class spacious teaching labs allowing comfortable, collaborative working in a sensory-friendly environment. 

Your future

Students laughing together in a computer lab

A degree from Exeter is highly valued by employers. Management and personal skills are built into our programmes and our students take advantage of the wide range of extracurricular and personal development opportunities offered by the University, including volunteering and playing an active role in student societies.

Our staff are active in developing our programmes and services to improve the employability of our students. We also have a dedicated Careers Consultant who provides career workshops tailored to computer science, as well as support in job applications and interview skills. The Career Zone run several careers fairs throughout the year which are particularly successful in putting major UK employers in touch with Exeter students. Relevant employers visit the department from the first year to meet and hold mock interviews with students, with the aim of helping them to develop their career ideas at an early enough stage to help with module choices and placement decisions

Career opportunities for computer scientists are limitless and graduates can be found working in the private and public sector in areas such as software engineering, health, communications, education, life sciences, physical sciences, finance and manufacturing. Computer scientists from Exeter have a reputation as being articulate, numerate, problem solvers, who typically claim great job satisfaction, a good salary and a huge range of career possibilities.

Our single honours Computer Science degrees explore more than simply how computers and software work.  They focus on the wider context within which the subject must operate; from the precise technical details to the social, scientific and industrial application. By combining logical thinking with key mathematical skills, they will lead to a wide variety of careers which require graduates who understand the science behind computer technology.

Career Paths

As an Exeter Computer Science and IT graduate you may find yourself working with business IT systems, the web, mobile communications, games technology, or in the management and development of the safety-critical systems that control planes, trains and power stations.

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 four-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.

Expand text