Skip to main content

Course Structure

The MSc in Computer Science is a full-time course and lasts 12 months, starting at the beginning of Michaelmas Term (October). The academic year is split into three terms of eight weeks, but work on the MSc course continues throughout the year and is not restricted to term time only. The diagram shows how students spend their time whilst on the course.

Michaelmas Term Taught Modules
Hilary Term Taught Modules
Trinity Term Taught Modules
Project Research Project

Taught Modules

MSc module options are split into three schedules: A, B and C. Schedule A contains introductory modules intended to help you get up to speed. Schedule B and C modules are more advanced, and focus on various areas of research within the department.

Schedule A


Concurrent Programming

Foundations of Computer Science

Functional Programming

Artificial Intelligence

Schedule B

Computational Complexity

Computer Aided Formal Verification

Computer Security

Computers in Society


Knowledge Representation and Reasoning

Lambda Calculus & Types

Machine Learning

Principles of Programming Languages

Schedule C

Advanced Machine Learning

Advanced Security

Automata, Logic and Games

Computational Game Theory

Computational Learning Theory

Categorical Quantum Mechanics

Categories, Proofs and Processes

Concurrent Algorithms and Data Structures

Database Systems Implementation

Physically-Based Rendering

Probabilistic Model Checking

Probability & Computing

Quantum Computer Science


Please note the courses listed are only an example of the options that may be available, and are subject to change.

During the MSc, you will be assessed on a selection of six courses, including at most two from Schedule A and at least two from Schedule C. Students may take a maximum of 4 courses in any one term. All but two of the courses take place in the first two terms.

Amongst the various modules listed there are natural associations of ideas, so if you are interested in a particular area of Computer Science you may want to consider taking modules from one theme, for example Programming or Artificial Intelligence. However, please note that you may need to choose courses from different themes to meet the MSc requirements.

If you are using the MSc as a conversion course you may wish to spend more time on introductory courses from Schedule A. If you are a graduate in Computer Science and are treating the course as an Advanced MSc, there is no need to repeat material you have already covered during your undergraduate programme. You may wish to spend more time on modules from schedules B & C. Your supervisor will be able to guide you as to the best combinations of modules and how to spread your workload.

We support every lecture course by problem sheets and tutorial classes; most are also supported by practical exercises. We base tutorial classes on problem sheets to be attempted by the students, and practicals normally involve four two-hour demonstration sessions per course. You will receive assignments at the end of each lecture course and they usually have to be completed within two to three weeks. You will be assessed for the taught part of the course through a combination of take-home assignments or sit down examinations, and (where appropriate) reports on practical work.

Research Project

Projects are the capstone to the MSc experience and you will spend around half your time on them. You will work with a faculty member to devise techniques or technologies that require sophisticated use of the knowledge and skills acquired in the lectures. For projects you may have to build software tools and evaluate their efficiency. They can also be in theoretical Computer Science – analysing the complexity of existing algorithms, or proving the correctness or incorrectness of software or network protocols. You will capture the results in a dissertation, which is to be written at a graduate level of scholarship.

Some students opt to do work on original research topics. On many occasions over the past few years, students have presented their Master’s degree theses as papers within prestigious scientific conferences.

Other students aim for a workable prototype to deal with some problem of intense practical interest: for example, in areas such as Financial Modelling, Cancer, Cyber Attacks, Machine Learning and Networking Virtual Environments.

Your work must involve the use of the methods of Computer Science. However, the application can be within another scientific discipline, such as Astrophysics, Medicine or Robotics.

Academics within the department put forward both specific project proposals, as well as general themes in which they would be happy to supervise projects. You can discuss these with the academic concerned. A list of the current project proposals is here. However, if you have a project of your own in mind, you are welcome to discuss it with the academic whose interests fall into this area.

Here are some examples of recent theses that received high marks.