Skip to main content Skip to navigation

Academic Preparation

The interdisciplinary nature of the MathSys CDT brings valuable diversity to our cohort but it also means that not all students are at the same level of knowledge when they begin the MSc year. When the year begins, we launch quickly into modules that involve a wide range of mathematical and programming activities. Our MSc and our Introduction to Computing sessions in Welcome Week are designed to develop your skills in these areas, but we would encourage you to have a look at the following materials in advance of joining the course. We do not require you to do a formal academic induction so consider this optional - but likely very useful - preparation!

These materials were created by our colleagues in the HetSys CDT.

Mathematics induction refresher
A self-guided review of mathematics material designed to be completed at your own pace. The materials for this are mostly taken from ‘Just the Maths’ by A.J. Hobson.

Programming in Python

General preparation for Term 1
While the programming language most often used in MathSys modules is Julia, the exact language used for specific modules is likely to depend on the lecturer. Python and Julia are the two languages with which you will want to be (or will become) most familiar – you will start to learn Julia during the Introduction to Computing classes held during Welcome Week, and Python in the module MA933, but it will not hurt to learn a little in advance if you can.

Basic probability is likely to feature in more than one core module.

Advice from Term 1 module leaders

MA933 Stochastic Modelling and Random Processes
Remind yourself of linear algebra and calculus, and a bit of basic probability, and make sure you are ok with programming in a language of your choice.

MA934 Numerical Algorithms and Optimisation
As far as preparation goes, the best things you can do are to check in with your programming skills and your foundational undergraduate mathematics – in particular, your linear algebra and your multivariate calculus. For programming, we expect that students will learn whatever languages they need for their research but the core language for teaching on MA934 is Julia.

For calculus & linear algebra, it is mostly a case of checking that you have a practical ability to use tools that you “already know”. You will find we have a heavy emphasis on calculating concrete answers rather than proving abstract results. If you can confidently calculate and manipulate the first few terms in the Taylor expansion of a given function of n variables, you will probably be fine! You can find lots of resources on calculus and linear algebra online (or perhaps you would prefer to use materials from your own undergraduate courses):


MA930 Data Analysis and Machine Learning
No specific preparation needed – the lecturer is planning to introduce all the concepts in MA930 from scratch – but it would be good if students are comfortable doing some computer programming (in the language of their choice). This is likely to be the case for most students already but if not then they will pick this up during the MathSys programme!