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, RBMs and deep RBMs, autoencoders, transfer learning, reinforcement 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
20 credits
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
Knowledge, Representation and Reasoning
20 credits
This module examines how knowledge can be represented symbolically and how it can be manipulated in an automated way by reasoning programs. Some of the topics you’ll cover include: first order logic; resolution; description logic; default reasoning; rule-based systems; belief networks and fuzzy logic. You’ll have two hours of lectures each week.
Data Analysis and Modelling
20 credits
This module involves the application of probability and statistics to a variety of practical, open-ended problems, typical of those that statisticians encounter in industry and commerce. Specific projects are tackled through workshops and student-led group activities.
The real-life nature of the problems requires students to develop skills in model development and refinement, report writing and teamwork. Students will have an opportunity to apply a variety of statistical methods and knowledge learned in previous modules.
.
Fuzzy Sets and Fuzzy Logic Systems
20 credits
You’ll review classical Boolean logic and set theory, including the common operations of union, intersection and complement.
Fuzzy Logic Systems (FLSs) will be introduced and illustrated in conjunction with examples of real-world applications in industrial control and other areas.
You’ll spend around four hours each week in lectures and workshops, and will be given the opportunity to design, programme and deploy a fuzzy logic system, providing a tangible real-world example of some underlying concepts of FLSs.
Autonomous Robotic Systems
20 credits
This module introduces you to the computer science of robotics, giving you an understanding of the hardware and software principles appropriate for control and localisation of autonomous mobile robots. A significant part of the module is laboratory-based, utilising physical robotic hardware to reinforce the theoretical principles covered.
Spending around three to four hours each week in lectures and practicals, you’ll cover a range of topics including:
- basic behavioural control architectures
- programming of multiple behaviours
- capabilities and limitations of sensors and actuators
- filtering techniques for robot localisation
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
This module provides an entry point to computational optimisation techniques, in particular for modelling and solving linear and discrete optimisation problems like diet optimisation, network flows, task assignment, scheduling, bin-packing, travelling salesmen, facility location, vehicle routing and related problems.
In this module, you will learn to interpret and develop algebraic models for a variety of real-world linear and discrete optimisation 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 optimisation
- modelling and optimisation software
- multi-objective optimisation
Optimisation 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. Optimisation enables prescriptive analytics in order to support and automate decision-making.