Machine Learning in Science – Part 1
20 credits
This module will provide an introduction to the main concepts and methods of machine learning. It introduces the basics of supervised, unsupervised and reinforcement learning as applied to regression, classification, density estimation, data generation, clustering and optimal control. It will be taught via two sessions per week through a combination of fundamental concepts and hands-on applications.
Machine Learning in Science – Part 2
20 credits
This module will cover more advanced topics following from Machine Learning in Science Part 1, specifically the concepts and methods of modern deep learning. Topics include deep neural networks, CNNs, RNNs, GANs, LLMs, autoencoders, transfer learning, reinforcement learning, interpretable machine learning and Markov decision processes, cleaning data and handling large data sets The main project for the module is the self-driving PiCar, as seen in this video.
Applied Statistics and Probability
20 credits
Cover introductory topics in statistics and probability that could be applied to data analysis in a broad range of subjects.
Topics include:
- common univariate probability distributions
- joint and conditional distributions
- parameter estimation (for example via maximum likelihood)
- confidence intervals
- hypothesis testing
- statistical modelling
Consideration is given to issues in applied statistics such as data collection, design of experiments, and reporting statistical analysis.
Topics will be motivated by solving problems and case studies, with much emphasis given to simulating and analysing data using computer software to illustrate the methods.
Machine Learning in Science – Project
60 credits
You will carry out a substantial investigation in the form of a research project on the application of the machine learning techniques learned as part of the course to a scientific problem.
The study will be largely self-directed, with oversight and input provided by a supervisor from the School of Physics and Astronomy, School of Computer Science or School of Mathematical Sciences. The topic will be chosen from a list of potential projects provided by the schools in the Faculty of Science. The topic could be based on a theoretical and/or computational investigation, a review of research literature, and/or a combination of the two.
Professional Ethics in Computing
10 credits
This module looks broadly into professional ethics within the scope of the computing discipline. It covers a range of professional, ethical, social and legal issues in order to study the impact that computer systems have in society and the implications of this from the perspective of the computing profession. In particular, the module covers topics such as introduction to ethics, critical thinking, professionalism, privacy, intellectual and intangible property, cyber-behaviour, safety, reliability and accountability, all within the context of computer systems development.
Introduction to Practical Quantum Computing
10 credits
The purpose of this module is to provide an introduction to quantum computing with an emphasis on being able to run quantum circuits on existing and near-term quantum computers. It will introduce essential elementary concepts from quantum mechanics and quantum information, as well as exploring how quantum computers may be utilised in the context of machine learning.
It will introduce the language of quantum computing – qubits, unitary quantum gates, and quantum circuits – and will consider how quantum parallelism may provide an advantage over existing numerical methods. It will additionally cover the use of basic quantum programming languages with the goal of running simple quantum circuits on simulated and real quantum computers. The module will be accessible to all students of the MLiS MSc irrespective of whether they have any background in quantum mechanics.
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.
Designing Intelligent Agents
20 credits
In this module, you will 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 will cover topics including task environments, reactive, deliberative and hybrid architectures for individual agents, and architectures and coordination mechanisms for multi-agent systems.
Neural Computation
The aim of this module is to teach you how neural processes can be understood in computational terms and how they can be analysed using mathematical and computational methods.
Topics included:
- biophysical and reduced models of neurons
- models of networks (eg Hopfield networks, ring-attractors and rate networks)
- models of synaptic plasticity and memory
- perceptrons
- unsupervised learning
- neural coding
- visual system
- model fitting
Big Data Learning and Technologies
20 credits
'Big Data' involves data whose volume, diversity and complexity requires new technologies, algorithms and analyses to extract valuable knowledge, which go beyond the normal processing capabilities of a single computer. The field of Big Data has many different faces such as databases, security and privacy, visualisation, computational infrastructure or data analytics/mining.
'Big Data' involves data whose volume, diversity and complexity requires new technologies, algorithms and analyses to extract valuable knowledge, which go beyond the normal processing capabilities of a single computer. The field of Big Data has many different faces such as databases, security and privacy, visualisation, computational infrastructure or data analytics/mining.
This module will provide the following concepts:
- Introduction to Big data: introducing the main principles behind distributed/parallel systems with data intensive applications, identifying key challenges: capture, store, search, analyse and visualise the data.
- SQL Databases vs. NoSQL Databases: understand the growing amounts of data; the relational database management systems (RDBMS); overview of Structured Query Languages (e.g. SQL); introduction to NoSQL databases; understanding the difference between a relational DBMS and a NoSQL database; Identifying the need to employ a NoSQL DB.
- 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 dive into the data mining and machine learning part of the course, including data preprocessing approaches (to obtain quality data), distributed machine learning algorithms and data stream algorithms. To do so, you will use the Machine learning library of Apache Spark (MLlib) to understand how some machine learning algorithms (e.g. Decision Trees, Random Forests, k-means) can be deployed at a scale.
Statistical Foundations
In this module, the fundamental principles and techniques underlying modern statistical and data analysis will be introduced. You will gain experience in using a statistical package and interpreting its output. The course will cover a 'common core' consisting of:
- statistical concepts and methods
- linear models
- probability techniques
- Markov chains
Autonomous Robotic Systems
20 credits
This module introduces the main concepts of autonomous mobile robotics, providing an understanding of the hardware and software principles appropriate for control, spatial localisation and navigation. The module consists of theoretical concepts around robotic sensing and control in the lectures, together with a strong practical element for robot programming in the laboratory sessions
Simulation for Decision Support
20 credits
This module introduces you to three broad simulation paradigms commonly used in operations research and management science: system dynamics, discrete event, and agent-based. Covering topics such as the introduction to the principles of modelling and simulation, conceptual modelling, model implementation, and output analysis, you will become competent in choosing and implementing the correct method for your particular problem. You will spend around four hours per week in lectures and computer classes.
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