skip to content

Department of Computer Science and Technology

Principal lecturer: 
MPhil ACS, Part III
Michaelmas term
Course code: 
It is recommended that students have successfully completed introductory courses, at an undergraduate level, in: 1) operating systems, 2) computer architecture, and 3) machine learning. In addition, this course will heavily focus on deep neural network methodologies and assume familiarity with common neural architectures and related algorithms. If these topics were not covered within the machine learning course taken, students should supplement by reviewing material in a book like: "Dive into Deep Learning". Finally, students are assumed to be comfortable with programming in Python.
Class limit: 


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


Topics covered may include the following, with confirmation a month before the course begins:

  • System Performance Trade-offs
  • Distributed Learning Algorithms 
  • Model Compression 
  • Deep Learning Compilers 
  • Frameworks and Run-times 
  • Scalable Inference Serving 
  • Development Practices 
  • Automated Machine Learning 
  • Federated Learning 

Primarily, topics are covered with conventional lectures. However, where appropriate, material will be delivered through hands-on lab tutorials. Lab tutorials will make use of hardware including ARM microcontrollers and multi-GPU machines to explore forms of efficient machine learning (any necessary equipment will be provided to students)


Each student will be assessed based on a written project report that will detail an investigation into a particular aspect of machine learning systems, this report will be made available publicly. Project reports may be done in teams or individually. We will require each team (or individual student if working by themselves) to perform this work using a shared repository to which we are given access. This repository will contain experiment code and results, along with the written report. The documentation of planning and decision making through the investigation is also required and must be stored within the repository as well. Where needed, marks will be differentiated within groups using this repository as an input.

Further Information

Please note that the finer details regarding the syllabus and assessment for this module is still under discussion.

Due to COVID-19, the method of teaching for this module will be adjusted to cater for physical distancing and students who are working remotely. We will confirm precisely how the module will be taught closer to the start of term.