skip to primary navigationskip to content

Department of Computer Science and Technology

Courses 2024–25

 

Course pages 2024–25

Part III

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 Topics in Computer Architecture (R265) – Prof Timothy Jones, 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 programming languages (R277) – Dr Jeremy Yallop – 16 h

    This module explores various topics in programming languages beyond the scope of undergraduate courses. It aims to introduce students to ideas, results and techniques found in the literature and prepare them for research in the field.

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

  • Category Theory (L108) – Prof Marcelo Fiore – 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.

  • Digital Money and Decentralised Finance (R160) – Prof Frank Stajano, Dr Ferdinando Samaria – 16 h

    Our society is evolving towards digital payments and the elimination of physical cash. Digital alternatives to cash require trade-offs between various properties including unforgeability, traceability, divisibility, transferability without intermediaries, privacy, redeemability, control over the money supply and many more, often in conflict with each other. Since the 1980s, cryptographers have proposed a variety of clever technical solutions addressing some of these issues but it is only with the appearance of Bitcoin, blockchain and a plethora of copycat cryptocurrencies that a new asset class has now emerged, worth in excess of two trillion dollars (although plagued by extreme volatility). Meanwhile, most major countries have been planning the introduction of Central Bank Digital Currencies in an attempt to retain control. This seminar-style interactive module encourages the students to understand what's happening, what the underlying problems and opportunities are (technical, social and economic) and where we should go from here. We are at a historical turning point where an enterprising candidate might disrupt the status quo and truly make a difference.

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

  • Introduction to Computational Semantics (L98) – Dr Weiwei Sun – 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.

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

  • Mobile, Wearable Systems and Machine Learning (R269) – Prof Cecilia Mascolo, Dr Yang Liu – 16 h

    This module aims to introduce the latest research advancements in mobile systems and mobile data machine learning, spanning a range of domains including systems, data gathering, analytics and machine learning, on device machine learning and applications such as health, transportation, behaviour monitoring, cyber-physical systems, autonomous vehicles, drones. The course will cover current and seminal research papers in the area of research.

  • 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 Weiwei Sun, 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.

  • Practical Research in Human-centred AI (P342) – 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.

  • Principles of Machine Learning Systems (L46) – Dr 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, Dr Meven Lennon-Bertrand, Prof Peter Sewell

    This module introduces students to interactive theorem proving using Isabelle and Coq. It includes techniques for specifying formal models of software and hardware systems and for deriving properties of these models.

  • Quantum Algorithms and Complexity (L130) – 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.

  • Understanding Quantum Architecture (L132) – 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 Topics in Category Theory (L118) – 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, monoids and representations, type theories, and their applications in theoretical computer science, both classical and quantum.

  • Advanced Topics in Computer Systems (R01) – Prof 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 Carl Henrik Ek – 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 sessions which will typically be run as a reading group with student presentations on recent papers from the literature followed by a discussion, or a practical, or similar.

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

  • Cryptography and Protocol Engineering (P79) – Dr Martin Kleppmann, Dr Daniel Hugenroth – 16 h

    We all use cryptographic protocols every day: whenever we access an https:// website or send a message via WhatsApp or Signal, for example. In this module, students will get hands-on experience of how those protocols are implemented. We start by writing our own secure messaging protocol from scratch, and then move on to more advanced examples of cryptographic protocols for security and privacy, such as private information retrieval (searching for data without revealing what you’re searching for).

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

  • Explainable Artificial Intelligence (L193) – Prof Mateja Jamnik, 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.

  • Federated Learning: Theory and Practice (L361) – Dr Nic Lane – 16 h

    This course aims to extend students' machine learning knowledge and allow them to understand how these concepts can manifest in a decentralized setting. The course will consider both theoretical (e.g., decentralized optimization) and practical (e.g., networking efficiency) aspects that combine to define this growing area of machine learning.

  • Geometric Deep Learning (L65) – Prof Pietro Lio', Dr Petar Veličković – 16 h

    This module will study geometric deep learning -- machine learning approaches on nontrivially-structured data. It aims to provide students with the capability to analyse such data in an effective way, position geometric deep learning in a proper context with related fields, and enable students to contribute to this emerging area in future years. Specifically, it will highlight graph structures as an elegant abstraction that can be used to represent a wide variety of deep learning approaches, and there will be a corresponding focus on graph neural network architectures. The module will be grounded in theoretical concepts of invariance, equivariance, symmetries and network science, offering a sufficiently broad lens to tackle generic geometric deep learning setups (over grids, groups and manifolds---not only graphs).

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

  • Reinforcement Learning (R171) – Dr Rika Antonova – 16 h

    The aim of this module is to introduce students to the foundations of the field of reinforcement learning (RL), discuss state-of-the-art RL methods, incentivise students to produce critical analysis of recent methods, and prompt students to propose novel solutions that address shortcomings of existing methods. If judged by the headlines, RL has seen an unprecedented success in recent years. However, the vast majority of RL methods still have shortcomings that might not be apparent at first glance. The aim of the course is to inspire students by communicating the promising aspects of RL, but ensure that students develop the ability to produce a critical analysis of current RL limitations.

  • Theories of Socio-digital Design for Human-Centred AI (R225) – Prof Alan Blackwell, Dr Tomasz Hollanek – 16 h

    This course is based on a reading group originally developed in collaboration with the Socio-DigitalSystems group at Microsoft Research Cambridge. The objective is for computer science researchers to develop facility in discussing and critiquing the aims

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

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