Postgraduate study
This course is an ideal next step following a first degree in computer science subjects, covering our research strengths such as artificial intelligence, human-computer interaction and the mathematical foundations of programming.
MSc Computer Science
1 year full-time
Entry requirements
2:1 (or international equivalent) with evidence of an interest or aptitude for programming; graduates from a science or engineering background will be considered with a 55% average mark
6.5 (no less than 6.0 in any element)

If these grades are not met, English preparatory courses may be available
Start date
UK/EU fees
£7,785 - Terms apply
International fees
£22,815 - Terms apply
Jubilee Campus



HCI page

At the University of Nottingham, our research-engaged teaching ensures you are taught by experts who are solving today’s global challenges while discovering the future of computer science. Be inspired and join our world.

Course structure

This course offers the following two pathways, preparing you for a highly skilled career in industry and/or research.

  1. If you have a background in computer science or a related subject, this course is an ideal next step, with a variety of optional modules covering the school's research strengths such as artificial intelligence and human-computer interactions
  2. If you have a background in other subjects, modules in the first semester prepare you with fundamentals in computer science, ready for taking various optional modules in the second semester

Artificial intelligence (AI) pathway

You have the option to choose to study the AI pathway once you have applied. As part of this pathway, you are required to study 30 credits of AI modules, as well as undertake the Individual Project in Computer Science (AI) module. This allows you to graduate with MSc Computer Science (Artificial Intelligence). 

We have been teaching AI for over 10 years so you can be assured you'll be learning from the experts. 

Academic English preparation and support

If you require additional support to take your language skills to the required level, you may be able to attend a presessional course at the Centre for English Language Education, which is accredited by the British Council for the teaching of English in the UK. Students who successfully complete the presessional course to the required level can progress to postgraduate study without retaking IELTS or equivalent. You could be eligible for a joint offer, which means you will only need to apply for your visa once.


Full course details

Computer Science data

Individual project

During the summer period, you will undertake an individual project. This could be software based or research based. Collaboration with business, industry, and other outside bodies is encouraged.

This course is linked to the school’s research groups:

Our broad research means we can offer a variety of projects crossing the spectrum of computer science.

Past project titles have included:

  • Autonomous robot navigation and path following via RFID tag detection
  • Deep Learning for Plant Phenotyping
  • A multi-platform mobile application to prevent and cure obesity in Mexico
  • Real world neural networks for interactive music composition in real time

Teaching and assessment

You will study a total of 180 credits, split across 120 credits of compulsory and optional modules plus a 60-credit individual project.

Teaching methods include:

  • lectures
  • tutorials
  • seminars
  • computer lab practical sessions

Assessment can vary depending on the module you study but you can typically expect:

  • coursework
  • written exams
  • individual project 


Compulsory modules will provide a foundation in computer science, and a range of optional modules will provide you with the opportunity for more advanced study.

Semester one

During semester one, you will study the following compulsory modules if your first degree and experience does not cover the relevant subjects.


This module gives you a comprehensive overview of the principles of programming, including such concepts as procedural logic, variables, flow control, input and output and the analysis and design of programs. Instruction will be provided in an object-oriented programming language. You will spend around five hours per week in lectures and computer classes studying for this module.

Systems and Networks
You will gain an introduction to the role of the operating system and how it manages computer resources such as memory, processes and disks.

Databases, Interfaces and Software Design Principles

You will gain an introduction to the theory and practice of database systems and experience with a modern database system through the use of the SQL language.You will cover the structure and workings of database systems, design and implementation of a database driven website, and the principles of software engineering design.

All students will take the Individual Project:

Individual Project
You will conduct a piece of empirical and/or theoretical research in an appropriate strand of the degree, under the supervision of a member of academic staff. Where appropriate, your project may also be conducted in conjunction with an external organisation and may involve a substantial software implementation.

In one or both semesters, you will then study the following optional modules:

Advanced Algorithms and Data Structures

We study the theory used in the design and analysis of advanced algorithms and data structures. The topics covered include string algorithms (such as for string matching, longest common subsequence), graph algorithms (such as for minimum cuts and maximum flows), and advanced data structures (such as Binomial heaps and Bloom filters).

The theory is practiced in weekly labs where we learn how to implement the algorithms and data structures as functional and imperative programs (using the languages Haskell and C), and apply these to solve large instances of real world problems.

Advanced Computer Networks

This module will provide you with an advanced knowledge of computer communications networks, using examples from all-IP core telecommunications networks to illustrate aspects of transmission coding, error control, media access, internet protocols, routing, presentation coding, services and security. The module will describe Software Defined Networks (SDNs) and provide examples of using them to enable very large scale complex network control.

The module will provide an advanced knowledge of various routing and query protocols in: Ad Hoc Networks; Mobile Ad Hoc Networks (MANETs); Vehicular Ad Hoc Networks (VANETs); Disconnection/Disruption/Delay Tolerant Networks (DTNs); impact of new networking developments, such as security risks, ethics, interception and data protection will be reflected and discussed systematically. You will spend around three hours per week in lectures and one hour per week in computing classes.

Autonomous Robotic Systems

This module introduces you to the computer science of robotics, giving you an understanding of the hardware and software principles appropriate for control and localisation of autonomous mobile robots. A significant part of the module is laboratory-based, utilising physical robotic hardware to reinforce the theoretical principles covered.

Spending two hours each week in lectures and supervised labs, with an additional two-hour unsupervised practical session, you’ll cover a range of topics including basic behavioural control architectures, multi-source data aggregation, programming of multiple behaviours, capabilities and limitations of sensors and actuators, and filtering techniques.


You will begin by considering the attempts to characterise the problems that can theoretically be solved by physically possible computational processes, along with the practical implications. You will then consider the area of complexity theory, looking at whether or not problems can be solved under limitations on resources such as time or space.

You will examine the classes P and NP, and how to show problems are NP-complete. You will also consider other practically important classes such as: PSPACE, and its relevance to adversarial games, ontologies, and the semantic web; and also complexity classes relevant to limitations of the effectiveness of parallel computation.

Computer Graphics

You will learn the principles of three-dimensional (3D) computer graphics, focusing on modelling, animating, and viewing objects/scenes in a virtual world on the computer, projecting objects/scenes onto the 2D screen in analogy to your taking a photograph of the 3D world using a camera, and rendering the objects/scenes to give them realism.

Through weekly lectures, tutorials and laboratory sessions you will explore various computer graphics techniques and you will develop your OpenGL programming skills required for 3D computer graphics applications. The module demonstrates the benefits of linking theory and practice.

Data Modelling and Analysis

This module will enable you to appreciate the range of data analysis problems that can be modelled computationally and a range of techniques that are suitable to analyse and solve those problems. Topics covered include: basic statistics; types of data; data visualisation techniques; data modelling; data pre-processing methods including data imputation; forecasting methods; clustering and classification methods (decision trees, naīve bayes classifiers, k-nearest neighbours); data simulation and model interpretation techniques to aid decision support.

Spending around 4 hours each week in lectures and computer classes, appropriate software (eg. Excel, R, Weka) will be used to illustrate the topics you will cover.

Design Ethnography

This module introduces you to the theory and practice of design ethnography. You will cover a range of topics including: origins and evolution of ethnography; foundations and nature of the ethnomethodological approach; ethnographic analysis; its relationship to systems design; and the perceived problems with the approach. You will spend around three hours each week in lectures and tutorials for this module.

Designing Intelligent Agents

You will be given a basic introduction to the analysis and design of intelligent agents, software systems which perceive their environment and act in that environment in pursuit of their goals. Spending around four hours each week in lectures and tutorials, you will cover topics including task environments, reactive, deliberative and hybrid architectures for individual agents, and architectures and coordination mechanisms for multi-agent systems.

Fundamentals of Information Visualisation

Information Visualisation is the process of extracting knowledge from complex data, and presenting it to a user in a manner that this appropriate to their needs. This module provides a foundational understanding of some important issues in information visualisation design. You will learn about the differences between scientific and creative approaches to constructing visualisations, and consider some important challenges such as the representation of ambiguous or time-based data. You will also learn about psychological theories that help explain how humans process information, and consider their relevance to the design of effective visualisations.

Fuzzy Logic and Fuzzy Systems

This module aims to provide a thorough understanding of fuzzy sets and systems from a theoretical and practical perspective. Topics commonly include: type-1 fuzzy sets, type-1 fuzzy logic systems, type-1 fuzzy set based applications, type-2 fuzzy sets, type-2 fuzzy logic systems, type-2 fuzzy set based applications. You will also be exposed to some of the cutting-edge research topics in uncertain data and decision making, e.g., based on type-2 fuzzy logic as well as other fuzzy logic representations. You will develop practical systems and software in a suitable programming language.


This module covers the history, development and state-of-the art in computer games and technological entertainment. You will gain an appreciation of the range of gaming applications available and be able to chart their emergence as a prevalent form of entertainment.

You will study the fundamental principles of theoretical game design, and how these can be applied to a variety of modern computer games. You will study the development of games as complex software systems. Specific software design issues to be considered will include the software architecture of games, and the technical issues associated with networked and multiplayer games.

You will use appropriate software environments to individually develop a number of games to explore relevant theoretical design and practical implementation concepts.

Information Visualisation Project

This module provides an opportunity to put into practice knowledge and understanding that you have developed through the linked module G53FIV. You will gain practical experience of how to design and evaluate a distinctive interactive visualisation which presents information gathered from a complex and interesting data source.

Your project will be supported by tutorials that introduce practical topics that are essential to effective visualisation design, and which have not been considered in G53FIV, including specific algorithms for extracting information from data, structured processes for designing visualisations and selected elements of design aesthetics (such as colour choice and typography). You will gain experience in web-based technologies that enable the implementation of multi-layered and interactive information visualisations, supported through lab work that introduces specific features of these technologies.

Knowledge Representation and Reasoning

This module examines how knowledge can be represented symbolically and how it can be manipulated in an automated way by reasoning programs. Some of the topics you will cover include: first order logic; resolution; description logic; default reasoning; rule-based systems; belief networks. You will have two hours of lectures each week for this module.

Linear and Discrete Optimization

The module provides an entry point to computational optimization techniques, in particular for modelling and solving linear and discrete optimization problems like diet optimization, network flows, task assignment, scheduling, bin-packing, travelling salesmen, facility location, vehicle routing and related problems. Computational optimization is one of the most important areas within operations research (OR), which is a discipline that uses modelling techniques, analytics and computational methods to solve complex problems in industry and business. In this module you will learn to interpret and develop algebraic models for a variety of real-world linear and discrete optimization problems to then use powerful optimization software (linear, integer and mixed-integer solvers) to produce a solution.

The module covers topics such as linear programming, integer programming, combinatorial optimization, modelling and optimization software, and multi-objective optimization among others. Optimization technology is ubiquitous in today's world, for applications in logistics, finance, manufacturing, workforce planning, product selection, healthcare, and any other area where the limited resources must be used efficiently. Optimization enables prescriptive analytics in order to support and automate decision-making. You will spend around four hours per week in lectures and workshops for this module.

Machine Learning

Providing you with an introduction to machine learning, pattern recognition, and data mining techniques, this module will enable you to consider both systems which are able to develop their own rules from trial and error experience to solve problems, as well as systems that find patterns in data without any supervision. In the latter case, data mining techniques will make generation of new knowledge possible, including very big data sets. This is now known as 'big data' science.

You will cover a range of topics including: machine learning foundations; pattern recognition foundations; artificial neural networks; deep learning; applications of machine learning; data mining techniques and evaluating hypotheses. You will spend around six hours each week in lectures and computer classes for this module.

Mixed Reality Technologies

Focuses on the possibilities and challenges of interaction beyond the desktop. Exploring the 'mixed reality continuum' - a spectrum of emerging computing applications that runs from virtual reality (in which a user is immersed into a computer-generated virtual world) at one extreme, to ubiquitous computing (in which digital materials appear embedded into the everyday physical world - often referred to as the 'Internet of Things') at the other. In the middle of this continuum lie augmented reality and locative media in which the digital appears to be overlaid upon the physical world in different ways.

Programs, Proofs and Types

This module focuses on some of the fundamental mathematical concepts that underlie modern programming and programming languages emphasizing the role of types. We will use a dependently typed programming language/ interactive proof system (e.g. Agda) to implement some concepts on a computer.

Example topics include: basic lambda calculus; operational semantics; domain theory; types, propositions as types and formal verification. You’ll spend around three hours per week in lectures studying for this module and one hour in the lab working with an interactive proof system.

Real-world Functional Programming

This module introduces tools, techniques, and theory needed for programming real world applications functionally, with a particular emphasis on the inherent benefits of functional programming and strong typing for reuse, maintenance, concurrency, distribution, and high availability. These are all aspects that have contributed to the popularity of functional programming for demanding applications e.g. in the finance industry, and have also had a significant impact on the design of many modern programming languages such as Java, C#, and Rust, and frameworks such as MapReduce and React.

The exact content may vary, but typically includes topics such as functional design patterns, pure data structures, reactive programming, concurrency, frameworks for web/cloud programming, property-based testing, and embedded domain-specific languages. The medium of instruction is mainly Haskell, but other functional languages, for example Erlang, may be used where appropriate and for a broader perspective.

Simulation and Optimisation for Decision Support

This module offers insight into the applications of selected methods of decision support. The foundations for applying these methods are derived from Operations Research Simulation, Social Simulation, Data Science, Automated Scheduling, and Decision Analysis. Throughout the module, you will become more competent in choosing and implementing the appropriate method for the particular problem at hand. You will spend five hours per week in lectures and computer classes for this module.

Software Engineering Management

This module covers the following topics: management of the introduction of new software or IT systems; software project management practices; practical experience of use of an Agile software development project management process; practical experience of use of Test Driven Development, pair programming and various approaches to software management tools, including the use of software versioning, project management planning tools and continuous integration and deployment.

Individual Research Project

Over the summer period towards the end of the course, you will undertake a research project in computer science. This project involves conducting a piece of research with depth, carried out under the supervision of a member of academic staff.


The above is a sample of the typical modules that we offer but is not intended to be construed and/or relied upon as a definitive list of the modules that will be available in any given year. Due to the passage of time between commencement of the course and subsequent years of the course, modules may change due to developments in the curriculum and information is provided for indicative purposes only.


Fees and funding

See information on how to fund your masters, including our step-by-step guide. Further information is available on the school website.

As a student on this course, we do not anticipate any extra significant costs, alongside your tuition fees and living expenses. You should be able to access most of the books you’ll need through our libraries, though you may wish to purchase your own copies which you would need to factor into your budget.

Government loans for masters courses

The Government offers postgraduate student loans for students studying a taught or research masters course. Applicants must ordinarily live in England or the EU. Student loans are also available for students from Wales, Northern Ireland and Scotland.

International and EU students

Masters scholarships are available for international students from a wide variety of countries and areas of study. You must already have an offer to study at Nottingham to apply. Please note closing dates to ensure your course application is submitted in good time.

Information and advice on funding your degree, living costs and working while you study is available on our website, as well as country-specific resources.

For further details on scholarships, visit the school website.


Careers and professional development

This course prepares its students for careers in advanced software development, particularly where reliability and efficiency are vital requirements. Its graduates are likely to assume leading roles in major software-development projects in one of the areas of specialisation. 

This course also provides an excellent foundation for further study and you may decide to progress to a PhD in order to continue your research.

Average starting salary and career progression

In 2017, 94.4% of postgraduates in the School of Computer Science who were available for employment had secured work or further study within six months of graduation. The average starting salary was £29,250 with the highest being £30,000.* 

* Known destinations of full-time home postgraduates 2016/17. Salaries are calculated based on the median of those in full-time paid employment within the UK. 

careers 450x200

Career prospects and employability

The University of Nottingham is consistently named as one of the most targeted universities by Britain’s leading graduate employers** and can offer you a head-start when it comes to your career. 

Those who take up a postgraduate research opportunity with us will not only receive support in terms of close contact with supervisors and specific training related to your area of research, you will also benefit from dedicated careers advice from our  Careers and Employability Service

Our  Careers and Employability Service offers a range of services including advice sessions, employer events, recruitment fairs and skills workshops – and once you have graduated, you will have access to the service for life.

** The Graduate Market 2013-2016, High Fliers Research.


This online prospectus has been drafted in advance of the academic year to which it applies. Every effort has been made to ensure that the information is accurate at the time of publishing, but changes (for example to course content) are likely to occur given the interval between publishing and commencement of the course. It is therefore very important to check this website for any updates before you apply for the course where there has been an interval between you reading this website and applying.

Explore it - Virtual Nottingham
Get in touch
+44 (0)115 846 6550
Make an enquiry


Admissions and Communications Officer
School of Computer Science
The University of Nottingham
Jubilee Campus
Wollaton Road
Science videos

Science videos


Student Recruitment Enquiries Centre

The University of Nottingham
King's Meadow Campus
Lenton Lane
Nottingham, NG7 2NR

t: +44 (0) 115 951 5559
f: +44 (0) 115 951 5812
w: Frequently asked questions
Make an enquiry