# Core Courses

## Compulsory Courses

### Core01: Mathematical Modelling

### Prof Breward

Mathematical modelling is the process of formulating real-world situations or processes in mathematical terms. In this course we will consider some recipes and techniques that are common to formulating and analysing many models. Students will gain hands-on experience of making, solving and interpreting models.

### Core02: Scientific Computing

### Dr Dallas

This course will address some important aspects of scientific computing, largely through the lens of Matlab, a programming environment designed specifically for numerical mathematical modelling. A crash course in the essentials of programming in Matlab will be followed by its application to fundamental numerical topics including linear algebra, differential equations and optimization. These applications will involve exploring various inbuilt solvers and toolboxes. Other aspects of scientific computing will then be explored, including the public sharing of code, documentation, demos, parallel computing and GPUs. There will be a final group programming task which will be an opportunity to explore issues around developing code in teams for industry.

### Core03: Modelling and Analysis of continuous real-world problems

### Prof Please

Modelling and Analysis of Continuous Real-World Problems will introduce a number of key methods for studying continuum models. Each week we start from real-world problems and show how to derive the corresponding mathematical model. We then use these models as vehicles to demonstrate the relevant analytical and computational methods. At the end of each week, the students will have the complete set of tools needed to set up, analyse and solve a class of mathematical models.

### Core04: Computational Techniques

### Prof Nakatsukasa

Computational Techniques will introduce a number of key methods for studying continuum models. The first week will focus on the basics and applications of numerical linear algebra, treating linear systems, eigenvalue problems and the singular value decomposition (SVD). On the second week we treat finite differences and finite element methods for solving differential equations, showing how to derive the corresponding mathematical model. We then use these models as vehicles to demonstrate the relevant analytical and computational methods. At the end of each week, the students will have the complete set of tools needed to set up, analyse and solve a class of mathematical models.

### Core05: Mathematical Analytics

### Prof Grindrod

This course addresses short- and long-term challenges arising in customer-facing industries and will exploit data available from shopping baskets, twitter, mobile telecoms and energy demands. The course will start with probability, covers graphs and their application to social networks, looks at dynamically evolving networks, clustering and classification, hypothesis testing and forecasting.

### Core 06: Optimisation

### Prof Raphael Hauser

In many practical problems that can be approached via linear optimisation problems, some or all of the variables are constrained to take binary or integer values. For example, in optimal crew scheduling a pilot cannot be fractionally assigned to two different flights at the same time. Likewise, in combinatorial optimisation an element of a given set either belongs to a chosen subset or it does not. Integer programming is the mathematical theory of such problems and of algorithms for their solution. The aim of this course is to provide an introduction to some of the general ideas on which attacks to integer programming problems are based: generating bounds through relaxations by problems that are easier to solve, and branch-and-bound.