Advanced Computer Science (Cloud Computing) MSc

You will study 180 credits in total during your Advanced Computer Science (Cloud Computing) 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:

  • Google cloud data analysis
  • Hadoop for large image management
  • Evaluating a web service agreement in a cloud environment.

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.

Optional modules

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.

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

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

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 to and solution strategies for 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
Fundamental concepts and tools by which massive datasets are rendered into images to provide novel insight. A selection of more advanced topics will be covered, eg computational topology, parallel systems and illustrative rendering.

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.

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.

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.       

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.