Our course finder pages contain all the most up-to-date information about the Mathematics MSc, including details of the programme structure, compulsory and elective modules and study options.

Below is a full list of all modules which are expected to be available to students on this programme across the semesters. Please note that this is for information only and may be subject to change. Click the link above for accurate information about which of these modules are compulsory and elective for each semester of your MSc programme.

An MSc taught module typically comprises 24 hours of lectures and 12 hours of tutorials, given during one of the two 12-week teaching semesters. Our currently offered MSc modules in mathematics and statistics are listed below. In addition to these, as part of the taught module requirement, an MSc student may also choose up to two approved Level-6 undergraduate mathematics or statistics modules and up to two approved MSc Astrophysics modules offered by the School of Physics and Astronomy. You must also submit a project dissertation, which is completed during the summer - see the module description below for more details.

Modules are assessed by a mixture of in-term assessment and final examinations, with examinations being held between late April and early June.

This module builds on the combinatorial ideas of the modules Combinatorics and Extremal Combinatorics and introduces some of the more advanced tools for solving combinatorial and graph theoretic problems. The topics covered will depend on the module organiser's expertise but significant emphasis will be on the techniques used as well as the results proved. This module aims to introduce students to some of the more advanced techniques used in combinatorics such as the Regularity Lemma, probabilistic techniques, the discrete Fourier transform, eigenvalue methods and generating functions with the intention that the students will be able to recognise and then apply the appropriate tools in unfamiliar situations.

Topics include:

- Advanced combinatorial techniques, such as probabilistic techniques, the discrete Fourier transform, eigenvalue methods and generating functions.
- Ideas used in more advanced combinatorics, such as asymptotic or additive techniques.

The aim of this module is to introduce the student to more advanced machine learning techniques. An emphasis will be on current techniques which are relevant for practical applications. In addition to practical programming assignments, the course will also give the student an understanding of the mathematical underpinning of the techniques and the limitations of the methods which are crucial to aspects in correctly assessing their performance.

This module builds on the learnings from MTH786P Machine Learning with Python; linear methods will be extended to non-linear settings using kernel methods. The module will also go further in depth with topics which were introduced in the first semester such as neural networks and Monte Carlo Markov Chain methods (MCMC). It will cover specific applications and provide students with an overview of the current state of the art.

This module builds on the learnings from MTH786P Machine Learning with Python; linear methods will be extended to non-linear settings using kernel methods. The module will also go further in depth with topics which were introduced in the first semester such as neural networks and Monte Carlo Markov Chain methods (MCMC). It will cover specific applications and provide students with an overview of the current state of the art.

Topics include:

- Applying knowledge from previous courses to analysis of data.
- Acquiring new knowledge of statistical techniques as appropriate.
- Writing reports on the work done.

The semester will be divided into three four-week 'months'. In each month there is a genuine piece of applied statistics, led by a different lecturer. The lecturer will set it up with at most two lectures. At the end of the month the student will hand in a report of 10-15 pages. Statistical techniques and statistical computing packages from previous statistics courses will be needed. The three topics will be chosen from the following list:

- Designed experiments
- Medical statistics
- Time series analysis of spacecraft data
- Multivariate data from crop research
- Agricultural statistics
- Economic statistics
- Industrial statistics

The module aims to introduce you to the Bayesian paradigm. The module will show you some of the problems with frequentist statistical methods, show you that the Bayesian paradigm provides a unified approach to problems of statistical inference and prediction, enable you to make Bayesian inferences in a variety of problems, and illustrate the use of Bayesian methods in real-life examples.

Topics include:

The Bayesian paradigm: likelihood principle, sufficiency and the exponential family, conjugate priors, examples of prior to posterior analysis, mixtures of conjugate priors, non-informative priors, two sample problems, predictive distributions, constraints on parameters, point and interval estimation,hypothesis tests, nuisance parameters.

- Linear models: use of non-informative priors, normal priors, two and three stage hierarchical models, examples of one way model, exchangeability between regressions, growth curves, outliers and influential observations.
- Approximate methods: normal approximations to posterior distributions, Laplace’s method for calculating ratios of integrals, Gibbs sampling, finding full conditionals, constrained parameter and missing data problems, graphical models. Advantages and disadvantages of Bayesian methods.
- Examples: appropriate examples will be discussed throughout the course. Possibilities include epidemiological data, randomised clinical trials, radiocarbon dating.

Complex systems can be defined as systems involving many coupled units whose collective behaviour is more than the sum of the behaviour of each unit. Examples of such systems include coupled dynamical systems, fluids, transport or biological networks, interacting particle systems, etc. The aim of this module is to introduce students to a number of mathematical tools and models used to study complex systems and to explain the mathematical meaning of key concepts of complexity science, such as self-similarity, emergence, and self-organisation. The exact topics covered will depend on the module organiser's expertise with a view to cover practical applications using analytical and numerical tools drawn from other applied modules.

Topics include:

Introduction to the field of complex systems via a number of representative examples and models of these systems (e.g., coupled dynamical systems, time-delayed systems, stochastic processes, networks, time series, fractals, multifractals, particle models).

- Introduction to basic tools and quantities used in the study of complex systems (e.g., bifurcation diagram, symbolic dynamics, dimensions, Lyapunov exponents, complexity measures, entropies).
- Introduction to the concepts of emergence and self-organisation in the context of basic models of complex models.
- Introduction to basic computational and numerical methods used to study complex systems.

This module introduces modern methods of statistical inference for small samples, which use computational methods of analysis, rather than asymptotic theory. Some of these methods such as permutation tests and bootstrapping, are now used regularly in modern business, finance and science.

Topics include:

The techniques developed will be applied to a range of problems arising in business, economics, industry and science. Data analysis will be carried out using the user-friendly, but comprehensive, statistics package R.

- Probability density functions: the empirical cdf; q-q plots; histogram estimation; kernel density estimation.
- Nonparametric tests: permutation tests; randomisation tests; link to standard methods; rank tests.
- Data splitting: the jackknife; bias estimation; cross-validation; model selection.
- Bootstrapping: the parametric bootstrap; the simple bootstrap; the smoothed bootstrap; the balanced bootstrap; bias estimation; bootstrap confidence intervals; the bivariate bootstrap; bootstrapping linear models.

A dynamical system is any system which evolves over time according to some pre-determined rule. The goal of dynamical systems theory is to understand this evolution. This module develops the theory of dynamical systems systematically, starting with first-order differential equations and their bifurcations, followed by phase plane analysis, limit cycles and their bifurcations, and culminating with the Lorenz equations and chaos. Much emphasis is placed on applications.

Topics include:

- First-order differential equations (one-dimensional flows): linear and nonlinear equations, graphical solutions, bifurcations.
- Two-dimensional flows: phase plane, stability of fixed points, periodic solutions, and limit cycles. Introduction to bifurcation theory, local and global bifurcations. Tools for studying global behavior of flows: Lyapunov functions, Poincare-Bendixson Theorem, gradient flows.
- Three-dimensional flows: Lyapunov exponents, Poincare sections, strange attractors, chaos.

This module provides an introduction to advanced group theory. The aim is to explore the theory of finite groups by studying important examples in detail, such as simple groups. In particular, the projective special linear groups over small fields provide a rich vein of interesting cases on which to hang the general theory. This module covers a review of undergraduate group theory,permutation group theory, matrix groups and simple groups.

Topics include:

Revision of basic group theory, isomorphism theorems, Jordan-Holder theorem, Sylow's theorems, the structure theorem for finite abelian groups.

- Permutation groups: transitivity, primitivity, symmetric and alternating groups. Maximal subgroups, wreath products, Iwasawa's Lemma. The outer automorphism of S
_{6}. - Linear groups: finite fields, general linear groups, projective special linear groups. Projective lines and isomorphisms of some projective special linear groups with alternating groups. Simplicity of PSL
._{n}(q)

This module provides exposure to advanced techniques in algebra at an MSc or MSci level. Algebra encompasses familiar objects such as integers, fields, polynomial rings and matrices and has applications throughout mathematics including to geometry, number theory and topology. The module will complement the algebra module offered in Semester A and will cover topics either in commutative or noncommutative algebra. Included will be basic definitions and theorems in either case, normally with rings or fields as a starting point. The aim of this module is to expose students to advanced techniques in algebra, which complement those presented in the module Group Theory. The module is also seen as a way to prepare students to study more advanced algebra subjects at PhD level. The topics covered will depend on the expertise of the lecturer. These could be drawn from the theory of rings and their modules, Galois theory or elements of algebraic geometry. Commutative algebra or noncommutative algebra could also be covered.

Topics include:

- Key advanced concepts of algebra (e.g., rings, modules, finite fields, Galois theory).
- Key applications of algebra (e.g., insolubility of equations of degree greater than or equal to 5 by radicals, equivalence with insolubility of the Galois group).

This module addresses one of the most important “hot topics” in mathematics research – the study of networks – and is essential for understanding the characteristics and universal structural properties of complex networks. Complex networks are the outcome usually of a stochastic dynamics but they are not completely random. You will learn how to disentangle randomness from structural organisational principles of complex networks and how several major types of complex network can be described and artificially generated by mathematical models. Networks characterise the underlying structure of a large variety of complex systems, from the Internet to social networks and the brain. This course is designed to teach students the mathematical language needed to describe complex networks, their basic properties and dynamics. The broad aim is to provide students with the key skills required fundamental research in complex networks, and necessary for application of network theory to specific network problems arising in academic or industrial environments. The students will acquire experience in solving problems related to complex networks and will learn the necessary language to formulate models of network-embedded systems.

Topics include:

- Basic concepts used in studying complex networks (e.g. adjacency matrices, degree distributions and correlations, graph distances)
- Basic tools used to study complex networks (e.g. connected components,
*k*-cores, communities, motifs, centrality measures) - Models for complex networks: the small world, the growing networks models and the configuration model

This module aims to provide students with Machine Learning skills based on the Python programming language as it is currently used in industry. Some of the presented methods are regression and classification techniques (linear and logistic regression, least-square); clustering; dimensionality reduction techniques such as PCA, SVD and matrix factorisation. More advanced methods such as generalised linear models, neural networks and Bayesian inference using graphical models are also introduced. The course is self-contained in terms of the necessary mathematical tools (mostly probability) and coding techniques. At the end of the course, students will be able to formalise a ML task, choose the appropriate method in order to tackle it while being able to assess its performance, and to implement these algorithms in Python. Independently of the field, skills in Machine Learning and coding are nowadays almost mandatory in many technical careers (academia, engineering, finance, etc). This course will provide the students with practical skills in Python for Machine Learning. A strong focus well be put on practice through exercises and projects in Python, one of the preferred language in industry.

Topics include:

- Basic probability, statistical inference and optimisation concepts
- Python coding
- Data cleaning, processing and interpretation
- Understanding of the canonical machine learning algorithms
- Scientific report writing (in Latex)

Each MSc Mathematics student is required to complete a 60 credit (4 course unit) project dissertation. The module spans the full academic year, students will make their selection of project titles and will be allocated to projects by the end of Semester 1, the main work on the project usually begins in semester 2 and continues through the summer (the project work is spread over two academic years for part-time students).

This is an introductory module on the Lebesgue theory of measure and integral with application to probability. You are expected to know the theory of Riemann integration. Measure in the line and plane, outer measure, measurable sets, Lebesgue measure, non-measurable sets. Sigma-algebras, measures, probability measures, measurable functions, random variables. Simple functions, Lebesgue integration, integration with respect to general measures. Expectation of random variables. Monotone and dominated convergence theorems, and applications. Absolute continuity and singularity, Radon-Nikodym theorem, probability densities. Possible further topics: product spaces, Fubini's theorem.

Topics include:

- Measure in the line and plane, outer measure, measurable sets, Lebesgue measure, non-measurable sets.
- Sigma-algebras, measures, probability measures, measurable functions, random variables.
- Simple functions, Lebesgue integration, integration with respect to general measures. Expectation of random variables. Monotone and dominated convergence theorems, and applications.
- Absolute continuity and singularity, Radon-Nikodym theorem, probability densities.
- Possible further topics: product spaces, Fubini's theorem.

This module addresses one of the most important “hot topics” in mathematics research – the study of networks – and is essential for understanding the characteristics and universal structural properties of complex networks. Complex networks are the outcome usually of a stochastic dynamics but they are not completely random. You will learn how to disentangle randomness from structural organisational principles of complex networks and how several major types of complex network can be described and artificially generated by mathematical models.

Topics include:

- Basic concepts used in studying complex networks (e.g. adjacency matrices, degree distributions and correlations, graph distances)
- Basic tools used to study complex networks (e.g. connected components,
*k*-cores, communities, motifs, centrality measures) - Models for complex networks: the small world, the growing networks models and the configuration model

This module is designed to provide students with the skills and expertise to access, read and understand research literature in a wide range of mathematics and its applications. In addition, students will gain the necessary background for delivering efficient and professional oral presentations, poster presentations and scientific writing. Finally, the course is aimed to constitute a guide as well as a first training in research oriented tools and careers.

This module aims to:

- Provide students with a set of core skills as an introduction to their project work;
- Equip students with information retrieval skills (literature review), report writing skills, use of scientific and mathematical word processing, and presentation skills;
- Equip students to identify an intended research question in the scientific literature, and begin to formulate their own;
- Give students an overview of topics of current research in mathematics;
- Give a more in-depth understanding of a specific research area.

This module aims to present some advanced probabilistic concepts and demonstrate their application to stochastic modelling of real-world situations. The topics covered include renewal theory, continuous-time Markov processes and Brownian motion. In addition to exposure to proofs and theoretical material, students develop practical skills through a large number of problems and worked examples. A stochastic process is a system evolving in time in a random way. Besides being of fundamental interest to probability theory, stochastic processes have applications in diverse fields such as financial mathematics, operations research and mathematical biology. This module is an introduction to stochastic processes and related probabilistic concepts. The focus is on continuous time stochastic processes, for which time is an element of the real numbers.

Topics include:- Renewal processes: the renewal function; limiting behaviour; current and excess life; characterisation of the Poisson process as a renewal process; the renewal rewards theorem.
- Continuous time Markov chains: description in terms of the sojourn times and jump chain; deﬁnition of the generator; the equation for the transition probability matrix in terms of the generator; use of the generator in ﬁnding stationary distributions.
- Brownian motion: the invariance and reﬂection principles; hitting times.

This module focuses on the use of computers for solving applied mathematical problems. Its aim is to provide students with proper computational tools to solve problems they are likely to encounter while doing their MSc or MSci, and to provide them with a sound understanding of a programming language used in applied sciences. The topics covered will include basics of scientific programming, numerical solution of ordinary differential equations, random numbers and Monte Carlo methods, simulation of stochastic processes, algorithms for complex networks analysis and modelling. The emphasis of the module would be on numerical aspects of mathematical problems, with a focus on applications rather than theory.

Topics include:

- The use of computers for solving applied mathematical problems
- Proper computational tools to solve problems likely to be encountered during the MSc/MSci
- Training in a programming language used in applied sciences