Advanced Computer Science (Intelligent Systems) MSc

You will study 180 credits in total during your Advanced Computer Science (Intelligent Systems) 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 projects include:

  • Ontology-enriched access to digital repositories
  • Relevance and trust in social computing for decision-making
  • Advanced GIS functionality for animal habitat analysis.

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)
The principal representations and algorithms used in machine learning and the techniques used to evaluate their performance. You will implement a challenging learning system using a publicly available pack of standard algorithms.

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.

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.

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.

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

Scheduling - 15 credits
State-of-the-art approaches and solution strategies in designing practical scheduling optimisation algorithms. This 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.
Information Visualization -10 credits

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

Intelligent Systems and Robotics - 20 credits
This module covers how AI techniques and principles from biological systems can be applied to robots to control behaviour and sense environments. You will develop an understanding of the theoretical problems inherent in robotics and use pre-built robots to design, implement and test different control and perceptual systems.

Mobile Application Development - 10 credits

Understand the constraints of developing for mobile devices from hardware, interface and networking. Design and structure the user interface and underlying software structure for a mobile application. Integrate input from hardware sensors and networked data and services. Implement mobile applications on a given platform.

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.    

Data Mining and Text Analytics - 10 credits
Techniques, resources and tools for knowledge discovery from data, including unstructured text data. You will explore a range of practical applications of data mining and text analysis, involving classification and identification of ‘interesting’ and/or ‘useful’ knowledge in documents.

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.

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.