MPhil ACS
Students select five taught modules in total, distributed across Michaelmas and Lent terms. Students should select no more than four modules from those offered in Michaelmas and no more than two modules from those offered in Lent. A module that starts in Michaelmas term and continues in Lent term will count as a single module. The taught modules are delivered in a range of styles and have a variety of assessment methods. For example: traditional Lecture-based modules which have the prefix 'L' such as 'L11 Algebraic path problems'; modules with a large proportion of Practical classes have the prefix 'P' such as 'P51 High performance networking'; and Reading clubs or seminar style modules have the prefix 'R' such as 'R254 Cybercrime'.
Please check the lecture timetables for timetable details.
Michaelmas term
- Advanced Graphics and Image Processing
(L352) – Dr Rafal Mantiuk
– 16 h
Advanced Graphics covers topics related to processing, perception and display of images. The focus of the course is on the algorithms behind new emerging display technologies, such as virtual reality, augmented reality, and high dynamic range displays. It complements two computer graphics courses, Introduction to Graphics and Further Graphics, by introducing problems that became the part of graphics pipeline: tone-mapping, post-processing, displays and models of visual perception.
- Advanced Operating Systems
(L341) – Prof Robert Watson
– 16 h
Operating systems are complex, concurrent, and rapidly evolving software systems: the process model, hardware abstraction, storage and networking services, security primitives, and tracing/analysis/debugging tools are a critical foundation for our contemporary computing environments. This course teaches a blend of operating-system design and implementation as well as systems research methodology through a series of lectures and practical material split into three two-week sub-modules.
- Advanced Topics in Computer Architecture
(R265) – Prof Simon Moore, Dr Robert Mullins, Dr Jonathan Woodruff
– 16 h
This course aims to provide students with an introduction to a range of advanced topics in computer architecture. It will explore the current and future challenges facing the architects of modern computers. These will also be used to illustrate the many different influences and trade-offs involved in computer architecture.
- Advanced Topics in Computer Systems
(R01) – Prof Richard Mortier
– 16 h
An overview of systems research, a broad area covering operating systems, database systems, file systems, distributed systems and networking. The focus will be on critical thinking: the ability to argue for and/or against a particular approach or idea.
- Affective Artificial Intelligence
(L344) – Prof Hatice Gunes
– 16 h
Affective Artificial Intelligence (Affective AI) aims to imbue machines with social and emotional intelligence (EQ). More specifically, Affective AI aims to create artificially intelligent systems and machines that can recognize, interpret, process, and simulate human social signals and behaviours, expressions, and emotions, to enhance human-AI interaction and communication. To achieve this goal, Affective AI draws upon various scientific disciplines, including machine learning, computer vision, speech / natural language / signal processing, psychology and cognitive science, and ethics and social sciences.
- Artificial Intelligence of Things
(L333) – Dr Dong Ma
– 16 h
Artificial Intelligence of Things (AIoT) represents the convergence of intelligent data-driven models with interconnected physical systems. This module introduces both the foundational concepts of the Internet of Things (IoT) and the emerging shift towards embedding intelligence within these systems. It aims to develop an understanding of AIoT as a progression from traditional IoT towards closed-loop intelligent systems, emphasising system architecture, data-centric design, and the deployment of intelligence across heterogeneous and resource-constrained platforms.
- Computer Security: Principles and Foundations
(R209) – Prof Robert Watson, Prof Alice Hutchings, Prof Alastair Beresford, Dr Martin Kleppmann
– 16 h
This course aims to provide students with a research-level introduction to the history and central themes of computer security, from its 1970s foundations to a selection of current topics. Throughout the course, we will consider diverse research methodologies used in the discipline, proposed approaches and systems intended to address security problems discovered with increasingly ubiquitous use of computer systems, along with the adversarial research intended to identify gaps and vulnerabilities.
- Countertechnologies: Better Technology Through Critical Practice
(R175) – Prof Katie Seaborn, Dr Advait Sarkar
– 16 h
This module trains computer scientists to become critical practitioners of technology. Students encounter major intellectual traditions from outside computer science (philosophy of technology, media theory, science and technology studies, critical race studies, and the history and sociology of computing) and learn to apply these perspectives to the analysis and design of technical systems. The distinctive aim is that critique leads to construction: students do not merely identify what is wrong with technology, but design and build technical artefacts that embody alternative approaches. By the end of the module, students can articulate what is problematic about a technology, explain why using arguments grounded in scholarly traditions, and demonstrate what a better alternative would look like by building one.
- Digital Signal Processing
(L314) – Dr Markus Kuhn
– 16 h
This course teaches basic signal-processing principles necessary to understand many modern high-tech systems, with examples from audio processing, image coding, radio communication, radar, and software-defined radio. Students will gain practical experience from numerical experiments in programming assignments (in Julia, MATLAB or NumPy).
- Discourse and Pragmatics
(L99) – Prof Simone Teufel
– 16 h
Teach theoretical background in linguistics that enables systems to interpret sentences in the context of a task or in the context of a large text, and introduce systems that provide such analyses, when such systems exist. Discourse linguistics concerns tasks such as summarization, language generation, reasoning and text understanding. Pragmatics concerns problems of interpretation of a linguistic signal in the utterance context. Pragmatics concerns tasks such as dialogue systems. Pragmatics and Discourse also affect evaluation of NLP systems. Upon completing the course, students should be aware of the theoretical phenomena in Discourse Linguistics and Pragmatics. Students are prepared for research in building discourse linguistics and pragmatics informed systems. Awareness of the phenomena described in the module also enables them to perform better evaluation of NLP systems, for instance by identifying semantic problems in NLP system output which are not based on sentence semantics itself, but on the larger context.
- Information, Energy and Intelligence
(L172) – Prof Neil Lawrence
– 16 h
A century ago, many patents were submitted proposing perpetual motion. We know why that was impossible: the second law of thermodynamics. Today, billions are being invested in promises of superintelligence. But what are the limits? This module builds mathematical machinery needed to answer that question rigorously. Entropy appears in three apparently separate traditions — thermodynamics (Boltzmann, Gibbs), information theory (Shannon), and Bayesian inference (Jaynes) — and turns out to be the same mathematical object viewed from different operational assumptions. Information geometry (Amari) provides the unifying geometric language.
- Large-scale data processing and optimisation
(R244) – Dr Eiko Yoneki
– 16 h
This module provides an introduction to large-scale data processing, optimisation, and the impact on computer system's architecture. Large-scale distributed applications with high volume data processing such as training of machine learning will grow ever more in importance. Integrating machine learning approaches (e.g. Bayesian Optimisation, Reinforcement Learning) for system optimisation will be also explored in this course.
- Machine Learning and the Physical World
(L48) – Dr Carl Henrik Ek
– 16 h
The module “Machine Learning and the Physical World” is focused on machine learning systems that interact directly with the real world. Building artificial systems that interact with the physical world have significantly different challenges compared to the purely digital domain. In the real world data is scares, often uncertain and decisions can have costly and irreversible consequences. However, we also have the benefit of centuries of scientific knowledge that we can draw from. This module will provide the methodological background to machine learning applied in this scenario. We will study how we can build models with a principled treatment of uncertainty, allowing us to leverage prior knowledge and provide decisions that can be interrogated.
- Machine Learning for Language Processing
(L101) – Prof Andreas Vlachos
– 16 h
This module aims to provide an introduction to machine learning with specific application to tasks such as document classification, spam email filtering, language modelling, part-of-speech tagging, and named entity and event recognition for textual information extraction.
- Machine Visual Perception
(L335) – Dr Cengiz Oztireli, Dr Christopher Town
– 16 h
This course aims at introducing the theoretical fundamentals and practical techniques for machine perception, the capability of computers to interpret data resulting from sensor measurements. It will introduce modern machine learning techniques with a focus on machine perception for visual data.
- Network Architectures
(R02) – Prof Jon Crowcroft
– 16 h
The world needs more network architects! This module will discuss and critique historical and contemporary network architectures including ATM, TCP/IP and 3G, as well as cover emerging sensor networks and delay tolerant approaches.
- Overview of Natural Language Processing
(L390) – Dr Fermin Moscoso del Prado Martin, Dr Yulong Chen
– 18 h
This module introduces the fundamental techniques of natural language processing. It aims to explain the potential and the main limitations of these techniques. Some current research issues are introduced and some current and potential applications discussed and evaluated. Students will also be introduced to practical experimentation in natural language processing.
- Probabilistic machine learning
(L173) – Dr Damon Wischik
– 16 h
Teach the probabilistic basis of advanced techniques in neural network modelling
- Quantum Complexity Theory
(L330) – Prof Tom Gur
– 16 h
This module is a research-focused introduction to the theory of quantum computing. The aim is to prepare the students to conduct research in quantum algorithms and quantum complexity theory.
- Security, Privacy and Accountability in AI-Driven IoT Systems
(R267) – Prof Richard Mortier, Dr Vadim Safronov
– 16 h
This module examines the security, privacy and accountability challenges that arise as AI becomes ubiquitous across IoT and cyber-physical systems. AI plays a dual role throughout: it offers powerful tools for protecting resource-constrained IoT deployments, enabling smarter and faster threat detection, and privacy-preserving decentralised learning; yet it simultaneously introduces new vulnerabilities and expands the attack surface. The resource constraints inherent to IoT/CPS networked systems such as limited compute and communication capacity, shape both sides of this tension, restricting where and how AI can be deployed, making secure, accountable and privacy-preserving design significantly harder. Each week is centred on critical reading and discussion of research papers, engaging students with state-of-the-art work in the field.
- Understanding Quantum Architecture
(L332) – Dr Prakash Murali
– 16 h
This course covers the architecture of a practical-scale quantum computer. We will examine the resource requirements of practical quantum applications, understand the different layers of the quantum stack, the techniques used in these layers and examine how these layers come together to enable practical quantum advantage over classical computing.
Lent term
- Advanced Reinforcement Learning
(L171) – Dr Rika Antonova
– 16 h
The aim of this module is to present state-of-the-art reinforcement learning (RL) methods, incentivise students to understand RL theory and develop skills for coding deep RL methods. RL has seen unprecedented success in recent years. However, the majority of RL methods still require intricate skills and insights for successful applications. The goal of this module is to communicate the promising aspects of RL, but also ensure that students understand the limitations of the current RL methods.
- AI-Augmented Software Engineering - Reimagining the Software Engineering Life Cycle (SDLC)
(L174) – Prof Neil Lawrence, Dr Christian Cabrera Jojoa
– 16 h
This course aims to equip students with a multidisciplinary set of skills for transforming the software development life cycle (SDLC) using the latest AI advances. While different stakeholders in the SDLC have core competencies and responsibilities (e.g., developers write code), they also perform multiple additional tasks outside of their core competencies (e.g., documentation, meetings and discussions, training). Therefore, there are multiple opportunities to use AI to assist or automate SDLC tasks, even outside the core competencies.
- Computing for Collective Intelligence
(R181) – Prof Amanda Prorok
– 16 h
There is a substantial body of academic work demonstrating that complex life is built by cooperation across scales: collections of genes cooperate to produce organisms, cells cooperate to produce multi-cellular organisms and multicellular animals cooperate to form complex social groups. Arguably, all intelligence is collective intelligence. Yet, to-date, many artificially intelligent agents (both embodied and virtual), are generally not conceived from the ground up to interact with other intelligent agents (be it machines or humans). The canonical AI problem is that of a monolithic and solitary machine confronting a non-social environment. This course aims to balance this trend by (i) equipping students with conceptual and practical knowledge on collective intelligence from a computational standpoint, and (ii) by conveying various computational paradigms by which collective intelligence can be modelled as well as synthesized.
- Computing for the Energy Transition
(R357) – Prof Srinivasan Keshav
– 16 h
The goal of the module is to make students aware of one of the most important changes happening in the world today: the transition of energy systems away from fossil fuels to renewables. Crucially, this will depend on deep integration of computing and communication technologies. The module will highlight key research achievements and areas for future work.
- Cybercrime
(R354) – Prof Alice Hutchings, Dr Richard Clayton, Dr Jack Hughes
– 16 h
This module examines major topics relating to cybercrime from an interdisciplinary perspective. These include offense types and techniques, targets, victimisation, social and financial cost, criminal marketplaces, offenders, detection and prevention, and regulation and policing. The module outlines: Key debates in cybercrime research; how crime is committed using computer systems; and provides an understanding of how cybercrime is regulated, policed, detected and prevented.
- Explainable Artificial Intelligence
(L193) – Dr Carl Henrik Ek, Mateo Espinosa Zarlenga, Dr Zohreh Shams
– 16 h
The recent palpable introduction of Artificial Intelligence (AI) models to everyday consumer-facing products, services, and tools brings forth several new technical challenges and ethical considerations. Amongst these is the fact that most of these models are driven by Deep Neural Networks (DNNs), models that, although extremely expressive and useful, are notoriously complex and opaque. This “black-box” nature of DNNs limits their ability to be successfully deployed in critical scenarios such as those in healthcare and law. Explainable Artificial Intelligence (XAI) is a fast-moving subfield of AI that aims to circumvent this crucial limitation of DNNs by either (i) constructing human-understandable explanations for their predictions, or (ii) designing novel neural architectures that are interpretable by construction.
- Homotopy Type Theory
(L103) – Dr Jon Sterling
– 16 h
This lecture course will provide an introduction to Homotopy Type Theory, a new area of foundations combining homotopy theory, type theory, and higher category theory.
- Human Language Structures and Computation
(L95) – Prof Paula Buttery, Dr Fermin Moscoso del Prado Martin
– 16 h
This module aims to provide a brief introduction to linguistics for computer scientists and then goes on to cover some of the core tasks in natural language processing (NLP), focussing on statistical tagging and parsing. We will look at how to evaluate taggers and parsers and see how well state-of-the-art tools perform given current techniques.
- Introduction to Networking and Systems Measurements
(L50) – Prof Andrew Moore
– 16 h
Systems research refers to the study of a broad range of behaviours arising from a complex system design, including resource sharing and scheduling; interactions between hardware and software; network topology, protocol and device design and implementation; low-level operating systems; interconnects; storage and more. This module will teach performance measurement methodology and practice through profiling experiments, expose students to real-world systems artefacts evident through different measurement tools, develop scientific writing skills through a series of laboratory reports, and provide research skills for characterisation and modelling of systems and networks using measurements.
- Mobile Health
(L349) – Prof Cecilia Mascolo, Dr Jing Han
– 16 h
The course aims to pick up knowledge developed in undergraduate courses, related to machine learning as well as basic networking and systems and develop the concepts further into their applications into mobile systems and wearable with the aim of aiding the monitoring of our health.
- Multicore Semantics and Programming
(L304) – Prof Peter Sewell, Dr Timothy Harris, Dr Christopher Pulte
– 16 h
In recent years multiprocessors have become ubiquitous, but building reliable concurrent systems with good performance remains very challenging. This module introduces some of the theory and the practice of concurrent programming, from hardware memory models and the design of high-level programming languages to the correctness and performance properties of concurrent algorithms.
- Principles of AI-driven Neuroscience and Translational Biomedicine
(L205) – Prof Pietro Lio', Michail Mamalakis, Dr Tiago Azevedo
– 16 h
This module aims to provide students with a comprehensive understanding of the interplay between selected AI models, such as convolutional neural networks (CNNs), transformers, graph neural networks and Agentic AI; and core concepts in brain anatomy, connectomics, and medical imaging.
- Principles of Machine Learning Systems
(L46) – Prof Nic Lane, Dr Titouan Parcollet
– 16 h
This course will examine the emerging principles and methodologies that underpin scalable and efficient machine learning systems. Primarily, the course will focus on an exciting cross-section of algorithms and system techniques that are used to support the training and inference of machine learning models under a spectrum of computing systems that range from constrained embedded systems up to large-scale distributed systems. It will also touch up the new engineering practices that are developing in support of such systems at scale. When needed to appreciate issues of scalability and efficiency, the course will drill down to certain aspects of computer architecture, systems software and distributed systems and explore how these interact with the usage and deployment of state-of-the-art machine learning.
- Proof Assistants
(L81) – Dr Thomas Bauereiss, Prof Peter Sewell, Dr Leo Ali Dominique Stefanesco
This module introduces students to interactive theorem proving using Isabelle and Lean. It includes techniques for specifying formal models of software and hardware systems and for deriving properties of these models.
- Semantics of Concurrency
(L102) – Dr Jon Sterling
– 16 h
Concurrent computation is now pervasive, from multicore processors to large-scale distributed systems. Yet it remains notoriously challenging to program, model and verify, due to the intrinsic non-determinism and rich computational structures that arise from interactions between the components of a concurrent system. This module explores the semantics of concurrent computation, surveying some of the major approaches to modelling concurrency developed in concurrency theory, programming language semantics, logic and verification.
- Theory of Deep Learning
(R252) – Dr Challenger Mishra
– 16 h
The objectives of this course is to expose you to one of the most active contemporary research directions within machine learning: the theory of deep learning (DL). While the first wave of modern DL has focussed on empirical breakthroughs and ever more complex techniques, the attention is now shifting to building a solid mathematical understanding of why these techniques work so well in the first place.
- Understanding Networked-Systems Performance
(P56) – Prof Andrew Moore
– 16 h
This is a practical course, actively building and extending software tools to observe the detailed behaviour of transaction-oriented datacenter-like software. Students will observe and understand sources of user-facing tail latency, including that stemming from resource contention, cross-program interference, bad software locking and simple design errors.