Machine Learning
20 credits
Providing 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.
You’ll cover a range of topics including:
- machine learning foundations
- pattern recognition foundations
- artificial neural networks
- deep learning
- applications of machine learning
- data mining techniques
- evaluating hypotheses
You’ll spend around six hours each week in lectures and computer classes for this module.
Advanced Algorithms and Data Structures
10 credits
This module covers data structures, efficient algorithms on them and ways to determine their complexity. You will study some modern algorithms that are widely used in contemporary software.
The topics covered can include:
- binary search trees (red-black trees)
- dynamic programming
- graph-algorithms (eg shortest path, maximum flows)
- amortized analysis
- priority queues (binary, leftist and Fibonacci heaps)
- string algorithms (string matching, longest common subsequence).
Among the special topics relevant to contemporary application, we can study:
- public-key cryptography (the RSA cryptosystem)
- the page-rank algorithm (from Google search)
- neural networks.
The theory is practised in labs sessions where you will 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. The coursework consists of the implementation of some of the data types and algorithms on them.
Computer Vision
20 credits
You will examine current techniques for the extraction of useful information about a physical situation from individual and sets of images. You will learn a range of methods and applications, with particular emphasis being placed on the detection and identification of objects, image segmentation, pose estimation, recovery of three-dimensional shape and analysis of motion. These problems will be approached with both traditional and modern computer vision approaches, including deep learning.
Simulation and Optimisation for Decision Support
20 credits
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
- 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 engage in a mixture of lectures, workshops, and computer classes.
Data Science with Machine Learning
20 credits
This module explores 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
Linear and Discrete Optimisation
20 credits
The module provides an entry point to computational optimization techniques, particularly 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.
Optimization sits at the interface of computer science and mathematics. Optimization is considered one of the key techniques within the broad spectrum of artificial intelligence methods. Optimization focuses on making decisions instead of predicting or identifying patterns. Optimization is also 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, multi-objective optimization, simplex method, and branch and bound method 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"
Handling Uncertainty with Fuzzy Sets and Fuzzy Systems
20 credits
This module focuses on handling uncertainty such as vagueness using fuzzy sets and similar approaches. It provides a thorough understanding of key topics such as:
- the nature of uncertainty captured by fuzzy sets and associated links to human reasoning
- inference using fuzzy sets
- similarity of fuzzy sets
- design and modelling of information via fuzzy sets
- type-1 fuzzy sets
- type-2 fuzzy sets
- fuzzy logic systems
- fuzzy set based applications
Fundamentals of Information Visualisation
10 credits
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.
If you want to learn how to design and implement your own interactive information visualisation, you should also take the linked module G53IVP (Information Visualisation Project). Together, these two modules form an integrated 20 credit programme of study.
Big Data Learning and Technologies
20 credits
This module will cover four main concepts.
It will start with an introduction to big data. You’ll find out about the main principles behind distributed/parallel systems with data intensive applications, identifying key challenges such as capture, store, search, analyse and visualise the data.
We’ll also look at SQL Databases verses NoSQL Databases. You will learn:
- the growing amounts of data
- the relational database management systems (RDBMS)
- an overview of Structured Query Languages (SQL)
- an introduction to NoSQL databases
- the difference between a relational DBMS and a NoSQL database
- how to identify the need to employ a NoSQL database
Another concept is big data frameworks and how to deal with big data. This includes the MapReduce programming model, as well as an overview of recent technologies (Hadoop ecosystem, and Apache Spark). Then, you will learn how to interact with the latest APIs of Apache Spark (RDDs, DataFrames and Datasets) to create distributed programs capable of dealing with big datasets (using Python and/or Scala).
Finally, we will cover the data mining and machine learning part of the course. This will include data preprocessing approaches, distributed machine learning algorithms and data stream algorithms. To do so, you will use the machine learning library of Apache Spark to understand how some machine learning algorithms can be deployed at a scale.
Information Visualisation Project
10 credits
In this module 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.
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.
This module will require some challenging programming work and assumes some basic knowledge of HTML, CSS and Javascript. Introductory tutorials will be provided to those without this prior knowledge.
Designing Intelligent Agents
20 credits
You’ll 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.
You’ll cover topics including:
- task environments
- reactive, deliberative and hybrid architectures for individual agents
- architectures and coordination mechanisms for multi-agent systems
You will spend around four hours each week in lectures and tutorials for this module.
As part of the assessment of this module you will produce a research paper-style report, and deliver a conference-style presentation.
Data Science with Machine Learning
20 credits
This module explores 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
Computer Vision
20 credits
You will examine current techniques for the extraction of useful information about a physical situation from individual and sets of images. You will learn a range of methods and applications, with particular emphasis being placed on the detection and identification of objects, image segmentation, pose estimation, recovery of three-dimensional shape and analysis of motion. These problems will be approached with both traditional and modern computer vision approaches, including deep learning.
Machine Learning
20 credits
Providing 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.
You’ll cover a range of topics including:
- machine learning foundations
- pattern recognition foundations
- artificial neural networks
- deep learning
- applications of machine learning
- data mining techniques
- evaluating hypotheses
You’ll spend around six hours each week in lectures and computer classes for this module.
Simulation and Optimisation for Decision Support
20 credits
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
- 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 engage in a mixture of lectures, workshops, and computer classes.
Databases, Interfaces and Software Design Principles
20 credits
This module considers both the structure of databases, including how to make them fast, efficient and reliable and the appropriate user interfaces which will make them easy to interact with for users. You will start by looking at how to design a database, gaining an understanding of the standard features that management systems provide and how they can best utilise them, then develop an interactive application to access their database.
Database/software design principles will be introduced with an emphasis on the importance of understanding user requirements and specifications. Throughout the lectures and computing sessions, you will learn how to design and implement systems using a standard database management system, web technologies and GUI interfaces through practical programming/system examples.
Handling Uncertainty with Fuzzy Sets and Fuzzy Systems
20 credits
This module focuses on handling uncertainty such as vagueness using fuzzy sets and similar approaches. It provides a thorough understanding of key topics such as:
- the nature of uncertainty captured by fuzzy sets and associated links to human reasoning
- inference using fuzzy sets
- similarity of fuzzy sets
- design and modelling of information via fuzzy sets
- type-1 fuzzy sets
- type-2 fuzzy sets
- fuzzy logic systems
- fuzzy set based applications
Fundamentals of Information Visualisation
10 credits
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.
If you want to learn how to design and implement your own interactive information visualisation, you should also take the linked module G53IVP (Information Visualisation Project). Together, these two modules form an integrated 20 credit programme of study.
Big Data Learning and Technologies
20 credits
This module will cover four main concepts.
It will start with an introduction to big data. You’ll find out about the main principles behind distributed/parallel systems with data intensive applications, identifying key challenges such as capture, store, search, analyse and visualise the data.
We’ll also look at SQL Databases verses NoSQL Databases. You will learn:
- the growing amounts of data
- the relational database management systems (RDBMS)
- an overview of Structured Query Languages (SQL)
- an introduction to NoSQL databases
- the difference between a relational DBMS and a NoSQL database
- how to identify the need to employ a NoSQL database
Another concept is big data frameworks and how to deal with big data. This includes the MapReduce programming model, as well as an overview of recent technologies (Hadoop ecosystem, and Apache Spark). Then, you will learn how to interact with the latest APIs of Apache Spark (RDDs, DataFrames and Datasets) to create distributed programs capable of dealing with big datasets (using Python and/or Scala).
Finally, we will cover the data mining and machine learning part of the course. This will include data preprocessing approaches, distributed machine learning algorithms and data stream algorithms. To do so, you will use the machine learning library of Apache Spark to understand how some machine learning algorithms can be deployed at a scale.
Information Visualisation Project
10 credits
In this module 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.
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.
This module will require some challenging programming work and assumes some basic knowledge of HTML, CSS and Javascript. Introductory tutorials will be provided to those without this prior knowledge.
Designing Intelligent Agents
20 credits
You’ll 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.
You’ll cover topics including:
- task environments
- reactive, deliberative and hybrid architectures for individual agents
- architectures and coordination mechanisms for multi-agent systems
You will spend around four hours each week in lectures and tutorials for this module.
As part of the assessment of this module you will produce a research paper-style report, and deliver a conference-style presentation.
Applied Statistical Modelling
20 credits
This module extends the theoretical aspects of statistical inference by developing the theory of the generalised linear model and its practical implementation. Initially, designing of experiments in order to explore relationship between factors and a response is viewed within the context of Linear models.
The module then extends the understanding and application of statistical methodology established in previous courses to the analysis of discrete data and survival, which frequently occur in diverse applications. You will be trained in the use of an appropriate high-level statistical package.
Time Series and Forecasting
20 credits
This module will provide a general introduction to the analysis of data that arise sequentially in time. Several commonly occurring models will be discussed and their properties derived. Methods for model identification for real-time series data will be considered. Techniques for estimating the parameters of a model, assessing its fit and forecasting future values will be developed. You will gain experience of using a statistical package and interpreting its output.
Applied Multivariate Statistics
20 credits
During this module you will explore the analysis of multivariate data, in which the response is a vector of random variables rather than a single random variable. A theme running through the module is that of dimension reduction. Key topics to be covered include: principal components analysis, whose purpose is to identify the main modes of variation in a multivariate dataset; modelling and inference for multivariate data, including multivariate regression data, based on the multivariate normal distribution; classification of observation vectors into subpopulations using a training sample; canonical correlation analysis, whose purpose is to identify dependencies between two or more sets of random variables. Further topics to be covered include methods of clustering and multidimensional scaling.
Applied Multivariate Statistics
20 credits
During this module you will explore the analysis of multivariate data, in which the response is a vector of random variables rather than a single random variable. A theme running through the module is that of dimension reduction. Key topics to be covered include: principal components analysis, whose purpose is to identify the main modes of variation in a multivariate dataset; modelling and inference for multivariate data, including multivariate regression data, based on the multivariate normal distribution; classification of observation vectors into subpopulations using a training sample; canonical correlation analysis, whose purpose is to identify dependencies between two or more sets of random variables. Further topics to be covered include methods of clustering and multidimensional scaling.
Applied Statistical Modelling
20 credits
This module extends the theoretical aspects of statistical inference by developing the theory of the generalised linear model and its practical implementation. Initially, designing of experiments in order to explore relationship between factors and a response is viewed within the context of Linear models.
The module then extends the understanding and application of statistical methodology established in previous courses to the analysis of discrete data and survival, which frequently occur in diverse applications. You will be trained in the use of an appropriate high-level statistical package.
Computational Statistics
20 credits
This module explores how computers allow the easy implementation of standard, but computationally intensive, statistical methods and also explores their use in the solution of non-standard analytically intractable problems by innovative numerical methods. Particular topics covered include a selection from simulation methods, Markov chain Monte Carlo methods, the bootstrap and nonparametric statistics, statistical image analysis, and wavelets. You will gain experience of using a statistical package and interpreting its output.
Time Series and Forecasting
20 credits
This module will provide a general introduction to the analysis of data that arise sequentially in time. Several commonly occurring models will be discussed and their properties derived. Methods for model identification for real-time series data will be considered. Techniques for estimating the parameters of a model, assessing its fit and forecasting future values will be developed. You will gain experience of using a statistical package and interpreting its output.
Statistical Machine Learning
20 credits
This module is a topic at the interface between statistics and computer science, concerning models that can adapt to and make predictions based on data. This module builds on the principles of statistical inference and linear regression to introduce a variety of methods of clustering, dimension reduction, regression and classification.
Much of the focus is on the bias-variance trade-off and on methods to measure and compensate for overfitting. The learning approach is hands-on; you will be using R extensively in studying contemporary statistical machine learning methods, and in applying them to tackle challenging real-world applications.
Classical and Bayesian Inference
20 credits
You will explore the two main theories of statistical inference, namely classical (frequentist) inference and Bayesian inference.
You cover topics including:
- sufficiency
- estimating equations
- likelihood ratio tests
- best-unbiased estimators
There is special emphasis on the exponential family of distributions, which includes many standard distributions such as the normal, Poisson, binomial and gamma.
The module will give you hands-on experience of using statistical software and interpreting its output, as well as short-report writing.
Machine Learning and Inference for Differential Equations
20 credits
We consider modern machine learning tools including Gaussian processes and deep neural networks within a framework for building and training surrogates for computer models derived from Differential Equations (DEs).
We employ these tools within the study of advanced techniques for uncertainty propagation and parameter inference in DEs. Uncertainty propagation techniques comprise Monte Carlo methods, stochastic colocation and stochastic Galerkin.
Modern techniques for parameter inference for DEs are covered from the deterministic as well as the Bayesian perspective.