Advanced Computer Science MSc

You will study 180 credits in total during your Advanced Computer Science MSc. A standard module is typically worth 15 credits and the research project is worth 60 credits. These are the modules studied in 2017. If you are starting in September 2018, these will give you a flavour of the modules you are likely to study. All Modules are subject to change.

Compulsory modules

Research project - 60 credits
You will undertake a research project during the summer months.

Recent examples include:

  • iPad interaction for wall-sized displays
  • Modelling the effects of feature-based attention in the visual cortex
  • Energy-efficient cloud computing.

Optional modules

Big Data Systems - 15 credits
The aim of the module is for students to develop a practical understanding of methods, techniques and architectures needed to build big data systems required, so that knowledge may be extracted from large heterogeneous data sets.

Data Science - 15 credits
The aim of the module is for students to understand methods of analysis that allow people to gain insights from complex data. The module covers the theoretical basis of a variety of approaches, placed into a practical context using different application domains.

Bio-inspired Computing - 15 credits
Introduces the use of natural systems as the inspiration for artificially intelligent systems. This module covers the history, philosophy and application of bio-inspired computing, including swarm intelligence, neural networks and evolutionary design.

Knowledge Representation and Reasoning - 15 credits

Analysing descriptions of complex real world scenarios in terms of formal representation languages. Understanding automated reasoning and ontology as well as their applications. 

Algorithms - 15 credits
Complementing Systems Programming, this module will add necessary depth to your understanding of algorithms and the mathematical tools for rigorous analysis.

Parallel and Concurrent Programming - 15 credits
This module introduces you to the principles and practice of parallel and concurrent programming on shared memory architectures (both CPU and GPU). It covers the fundamental concepts underlying concurrency, in particular the complexity of managing shared resources and the language/data abstractions used to mediate interaction between threads of execution.

Foundations of Modelling and Rendering - 15 credits

This module builds a solid foundation of understanding for the physics, mathematics and computation underlying all computer graphics. Delving deeper than a first undergraduate module in 3D graphics, one goal is to understand high-quality rendering through software raytracing as a preliminary to hardware accelerated approximation of high-quality visual effects.This will be complemented by solid coverage of the mathematics necessary for full comprehension and exploitation of accelerated graphics hardware.

Games Engines and Workflow - 15 credits

The module introduces students to the architecture and implementation of games engines, management of game assets, and the workflow of games development. Particular attention will be paid to software architecture and the implementation strategies necessary for securing high performance across multiple elements needed in modern games, including graphics, animation and physics simulation, and audio. A feature of the module will the use of a “live” game engine as an ongoing case study / laboratory for undertaking practical exercises.

Geometric Processing - 15 credits

Building on the fundamentals of rendering covered in COMP 5bbb, this module focusses on geometric techniques for asset modelling, representation manipulation, and management, as well as geometric techniques for accelerating render engines.

High-Performance Graphics - 15 credits

This module follows on from Foundations of Modelling and Rendering by exploring the concepts, algorithms and methods by which visually rich scenes are rendered under realtime constraints by exploiting the features of modern graphics hardware and software systems. The module is organised around key technologies and principles exploited in computer games and other resource-constrained applications. Starting from students’ initial understanding of ideal rendering, the module explores how real-time rendering trades off visual veracity for computational performance.

Animation and Simulation - 15 credits

Building on the fundamentals of rendering covered in COMP 5bbb, this module covers motion in virtual environments, including animation, simulation, and specialised rendering effects, based initially on Parent, Computer Animation.

Cloud Computing - 15 credits
State-of-the-art approaches and solution strategies for designing, building and maintaining cloud applications. This module covers areas such as programming models, virtualisation and quality of service.

Semantic Technologies and Applications - 15 credits
Applications include linked data, semantic data browsers and smart social spaces (eg semantic wikis, semantic blogs, social networking). There will be a practical component with hands-on experience of applying semantic web technologies in a specific domain (eg decision-making, learning, health, e-business, digital libraries).

Image Analysis - 15 credits
Image analysis techniques are used in many applications, such as motion-controlled computer games, medical diagnosis and surgical guidance, autonomous systems, surveillance and security, and image content retrieval systems. In this module, you will learn about the current approaches to image processing and computer vision and study how these are applied in a number of different applications.

Scheduling - 15 credits
State-of-the-art approaches and solution strategies in designing practical scheduling optimisation algorithms. The module looks at a number of real-life problems and case studies from different domains such as transport, computer networks and healthcare.

Scientific Computation - 15 credits
Computational methods and the importance of reliability, efficiency and accuracy. Principles of parallel programming on distributed memory architectures and the application to scientific computing problems.

Graph Theory: Structure and Algorithms - 15 credits
Introduction to some of the main techniques used to study the structure of graphs and show how this leads to design of efficient algorithms. At the end of the this module, you will be able to: prove classical results covered by the module; understand the role of decompositions in graph-theoretic proofs and in algorithms on graphs; be familiar with the decomposition by clique cut-sets and tree-decompositions; and recognise how the methods learned can be extended and used to solve other problems.

Web Services and Web Data - 10 credits

In this module, you will learn how search engines and other key web services work. You will learn how cloud computing provides such services and how to build applications that make use of these services. You will also learn how to incorporate open and linked data into web applications.

Mobile Application Development - 10 credits
This module explores the design of mobile interfaces, the use of touch and gestures, and the various user interface patterns employed in the mobile space. It examines how apps can be made location-aware, includes app development case studies involving the Android and Apple iOS platforms, and considers issues such as app portability, testing and security.

Machine Learning - 10 credits
Topics selected from: Decision trees, Bayesian networks, instance-based learning, kernel machines, clustering, reinforcement learning inductive logic programming, artificial neural networks, deep learning.      

Information Visualization - 10 credits
This module covers the principles of visualisation in decision making and knowledge discovery. You will learn how to design new visual representations and how to modify and apply existing tools to gain new insight about data.       

User Adaptive Intelligent Systems - 10 credits  
On completion of this module, you will be able to apply human-computer interaction methodology to identify user needs, draw requirements, design, and evaluate user-adaptive systems;
identify most common techniques for user modelling and adaptation and apply them in practical areas; implement one or more recommender system techniques in a practical application; reason about the significance of user-adaptive systems and directions the field is going to develop.    

Distributed Systems - 10 credits      
On completion of this module, you will be able to understand advanced technologies used in typical Internet Information Systems; understand current middleware technologies such as remote method invocation and Web services; implement simple distributed applications using standard middleware tools; comprehend the role played by naming, resource discovery and synchronisation services in a range of distributed systems; discuss future directions in distributed systems.

Combinatorial Optimisation - 10 credits     
Understand how problems can be modelled as integer linear programs and solved using simplex based branch-and-bound. Appreciate the role of problem-specific heuristics in improving solution algorithms. On completion of this module, you will be able to understand the power and scope of linear programming and integer linear programming; use other approaches to solve combinatorial optimisation problems and have an appreciation of the interaction between the solution process and problem formulation.

Secure Computing - 10 credits
Security is an increasing problem for all computer systems. Users, administrators and developers all need to be aware of risks and the need to develop systems that are resistant to known attacks. In this module you will learn about threats to the security of a software system, design and implement software that is resistant to well-known attacks and learn how security incidents can be detected and analysed.

Graph Algorithms and Complexity Theory - 10 credits
In this module we introduce a wide range of graph problems, classify them with respect to their computational complexity, and demonstrate how these methods extend to other computational problems.

Data Mining and Text Analytics - 10 credits

Introduction to data and text theory and terminology. Tools and techniques for data-mining and text processing, focusing on applied and corpus-based problems such as data classification by Machine Learning classifiers, collocation and co-occurrence discovery and text analytics. Open-source and commercial text mining and text analytics toolkits. Web-based text analytics.