skip to primary navigationskip to content

Department of Computer Science and Technology

Courses 2022–23


Course pages 2022–23 (working draft)


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'; Reading clubs or seminar style modules have the prefix 'R' such as 'R254 Cybercrime'; and for modules where Lectures are borrowed from the Department of Engineering, we use the prefix 'LE', such as 'LE49 Probabilistic machine learning'.

Please check the official 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 Topics in Computer Architecture (R265) – Dr Robert Mullins, Prof Simon Moore, Dr Timothy Jones – 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.

  • Category Theory (L108) – Prof Andrew Pitts – 16 h

    Category theory provides a unified treatment of mathematical properties and constructions that can be expressed in terms of “morphisms” between structures. It gives a precise framework for comparing one branch of mathematics (organized as a category) with another and for the transfer of problems in one area to another. Since its origins in the 1940s motivated by connections between algebra and geometry, category theory has been applied to diverse fields, including computer science, logic and linguistics. This course introduces the basic notions of category theory: adjunction, natural transformation, functor and category. We will use category theory to organize and develop the kinds of structure that arise in models and semantics for logics and programming languages.

  • Computer Security: Principles and Foundations (R209) – Prof Ross Anderson, Dr Robert Watson, Dr Alice Hutchings – 16 h

    This course aims to give students an introduction to the history and central themes of computer security, from its 1970s foundations to some current research topics, with a theme of how to defend cloud-based systems against capable motivated opponents.

  • Digital Signal Processing (L314) – Dr Markus Kuhn – 16 h

    This course teaches the basic signal-processing principles necessary to understand many modern high-tech systems, with application examples focussing on audio processing, audio and image coding, communication systems, software-defined radio, and linear feed-back control. Students will gain practical experience from numerical experiments in programming assignments.

  • Interaction with Machine Learning (P230) – Prof Alan Blackwell, Dr Advait Sarkar – 16 h

    This is an advanced course in human-computer interaction, with a specialist focus on intelligent user interfaces and interaction with machine-learning and artificial intelligence technologies. The format will be largely practical, with students carrying out an original empirical research investigation over the course of one term. All empirical studies will address human interaction with some kind of model-based system for planning, decision, automation etc. Possible study formats might include: System evaluation, Field observation, Hypothesis testing experiment, Design intervention, Corpus analysis, or others as shown to be appropriate from evidence of prior research publications that have adopted specific empirical formats.

  • Introduction to Computational Semantics (L98) – Dr Weiwei Sun, Prof Simone Teufel – 16 h

    This module introduces students to various aspects of the semantics of Natural Languages (mainly English)

  • Introduction to Natural Language Syntax and Parsing (L95) – Prof Paula Buttery – 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; Interconnect, 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 thorough a series of laboratory reports; and provide research skills for characterization and modelling of systems and networks using measurements.

  • Introduction to Robotics (L310) – Dr Amanda Prorok, Dr Robert Harle, Dr Fumiya Iida, Dr Fulvio Forni – 16 h

    This course teaches the foundations of autonomous mobile robots, covering topics such as perception, motion control, and planning. It also teaches algorithmic strategies that enable the coordination of multi-robot systems and robot swarms. The course will feature several practical sessions with hands-on robot programming.

  • 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) – Prof Neil Lawrence, 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) – Dr 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.

  • Multicore Semantics and Programming (L304) – Prof Peter Sewell, Dr Timothy Harris – 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.

  • Natural Language Processing (L90) – Dr Weiwei Sun, Dr Andrew Caines – 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.

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

  • Principles of Machine Learning Systems (L46) – Dr Nic Lane, Dr Pedro Porto Buarque de Gusmao – 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.

  • Research Skills Programme (RSP) – 24 h

    To provide advice on and training in a variety of practical skills required for research. To provide training in a subset chosen from the diverse set of skills that will be useful in the other research-led modules, in the individual project, and in the student's future career. This programme must be taken by all M.Phil students and CPGS students. Note that this is not one of the five modules taken for the examination of the M.Phil and should not be chosen as a preferred module. Students will be required to take a minimum number of units of varying length logged across three terms.

  • Technology, law and society (R260) – Dr Jatinder Singh, Dr Jennifer Cobbe – 16 h

    Data-driven technologies are increasingly the subject of social commentary, political scrutiny and regulatory attention. This module aims to develop a solid understanding of the implications these concerns have on systems design and development, and to encourage engineering practices that are more responsible and socially-aware.

  • Theory of Deep Learning (R252) – Dr Ferenc Huszar, 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.

Lent term

  • Advanced Operating Systems (L41) – Dr 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 Robotics (L32) – Dr Amanda Prorok, Dr Hatice Gunes, Dr Fumiya Iida, Dr Fulvio Forni – 16 h

    This module aims to extend the knowledge and skills of students in designing and developing autonomous machines and researching robotics-related topics. Beyond the Introduction to Robotics course given in Michaelmas Term, the Advanced Robotics course will focus on more advanced topics such as Robot Learning, Underactuated Robot Control, Soft Robotics, Human-Robot Interaction, and Multi-Agent Systems.

  • Advanced Topics in Category Theory (L118) – Prof Marcelo Fiore, Dr Jamie Vicary – 16 h

    The module will introduce advanced topics in category theory. The aim is to train students to engage and start modern research on the mathematical foundations of higher categories, the graphical calculus, logical systems, programming languages, type theories, and their applications in theoretical computer science, both classical and quantum.

  • Advanced Topics in Computer Systems (R01) – Dr Richard Mortier, Dr Roman Kolcun – 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.

  • Advanced topics in machine learning (R255) – Prof Mateja Jamnik, Dr Andreas Vlachos – 16 h

    This course explores current research topics in machine learning in sufficient depth that, at the end of the course, participants will be in a position to contribute to research on their chosen topics. Each topic will be introduced with a lecture which, building on the material covered in the prerequisite courses, will make the current research literature accessible. Each lecture will be followed by up to three seminar sessions which will typically be run as a reading group with student presentations on recent papers from the literature followed by a discussion.

  • Affective Computing (L44) – Dr Hatice Gunes – 16 h

    Affective Computing is a multidisciplinary field of research and practice concerned with understanding, recognizing and utilizing human emotions, expressions and communicative behaviour in the design of computational systems ranging from user-adaptive entertainment technology (gaming/arts) to assistive technology in clinical and biomedical context (e.g., autism/depression) and designing social robots.

  • Cybercrime (R254) – Dr Alice Hutchings, Prof Ross Anderson, Dr Richard Clayton – 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.

  • Distributed Ledger Technologies: Foundations and Applications (R47) – Prof Srinivasan Keshav

    This module examines foundations and current research into distributed ledger (blockchain) technologies and their applications. Students will read, review, and present seminal research papers in this area. Once completed, students should be able to integrate blockchain technologies into their own research and gain familiarity with a range of research skills.

  • High performance networking (P51) – Prof Andrew Moore – 16 h

    This module provides an introduction to High Performance Networking. It explores both software and hardware aspects and provides the students with an opportunity to experience high performance networking design and usage first hand.

  • Mobile Health (L349) – Prof Cecilia Mascolo – 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.

  • Representation Learning on Graphs and Networks (L45) – Prof Pietro Lio', Dr Petar Veličković – 16 h

    This module will study graph representation learning -- machine learning approaches on graph-structured data. It aims to provide students with the capability to analyse graph-structured data in an effective way, position graph representation learning in a proper context with related fields, and enable students to contribute to this emerging area in future years. The module will be grounded in theoretical concepts of invariance, equivariance, symmetries and network science, while offering a sufficiently broad lens to tackle generic geometric deep learning setups (over grids, groups and manifolds---not only graphs).

  • Research Skills Programme (RSP)(continuing) – 24 h

    To provide advice on and training in a variety of practical skills required for research. To provide training in a subset chosen from the diverse set of skills that will be useful in the other research-led modules, in the individual project, and in the student's future career. This programme must be taken by all M.Phil students and CPGS students. Note that this is not one of the five modules taken for the examination of the M.Phil and should not be chosen as a preferred module. Students will be required to take a minimum number of units of varying length logged across three terms.

  • Topics in Logic and Complexity (L15) – Prof Anuj Dawar – 16 h

    The course covers the use of methods from logic in the study of computational complexity as well as aspects of logic that can be understood from the perspective of complexity. In particular, it focuses on the study of the expressive power of logical forma