You will study 180 credits in total during your Advanced Computer Science (Data Analytics) 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.
Research project - 60 credits
You will undertake a research project during the summer months.
Recent projects include:
- Text mining of e-health patient records
- Java-based visualisation on ultra-high resolution displays
- Data mining of sports performance data.
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.
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.
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).
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. 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
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.
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.
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.