Is this a course in programming?

The aim of the course is to train students in the application of computational techniques to problems across science and engineering. While undertaking the MSc will improve your programming skills, it will also train you in other important aspects of computational science, such as numerical methods, machine learning, modern software engineering and the use of high-performance computing (HPC) facilities.

What background in programming is necessary for the course?

All students should have undertaken some programming in a high-level language (including Matlab, Python or C/C++). In the two first weeks you will take a course called Modern Programming Methods. While this provides an introduction to the Python programming language for those new to the language, it is not a first course on programming in general.Applied Computational Science & Engineering Students looking at a laptop

A prerequisite for the course is a moderate level of knowledge of at least one programming language. This means that you should be comfortable with all the basic concepts of computer programming, such as variable types, control structures (e.g., loops and if statements) and functions and you should be able to implement short programs to perform simple tasks, such as reading data from a file and calculating quantities derived from those data.

It does not matter which language you already know. Our course uses Python and C/C++, but we will introduce both these languages during the course. Advanced Programming, which runs in the second term, provides training in C++. This course will not assume that you have any familiarity with C++; you do not need to learn the basics of C++ before starting the course.

What project can I choose?

Your independent research project will be on a topic of interest in the physical sciences or engineering. A wide range of possible application areas are available. It must contain an element of software development either in the form of new software or contributions to existing software. A list of projects will be provided at the end of the first term; see examples of project titles. Alternatively, students can arrange their own projects by directly approaching academics in whose research they are interested.

What background in Maths is required?

The course includes modules in modelling dynamical processes, numerical methods, optimisation and inversion and machine learning, which require a background in University-level mathematics. We would normally expect students to have taken courses as part of their first degree that cover calculus (in particular, ordinary and partial differential equations), linear algebra and ideally students would have had some exposure to numerical methods (e.g. the numerical solution of ODEs).

Is this a course for Earth Scientists?

Our course welcomes students with numerate degrees in any discipline of physical science, mathematics, computer science or engineering. Although the course is run within the Department of Earth Science and Engineering, the teaching staff have a wide range of backgrounds, from mathematics, computer science, engineering and across the physical sciences (including Earth science!).

If you are looking for a course in computational/data science with an explicit environmental/geoscientific focus please consider the MSc Environmental Data Science and Machine Learning.


Are there scholarships available for the Applied Computational Science and Engineering MSc? 

You can find information about scholarships on the Imperial College London scholarships webpage, inlcuding non-Imperial schoalrships. 


Is my background suitable for the Applied Computational Science and Engineering MSc? 

As well as a 2:1 in your undergraduate degree, you will be expected to have a strong background in mathematics or programming. 

What will the interview include?


The interview is intended to give candidates an opportunity to find out more about the course from academics leading the design and delivery of course content, as well as to give us an opportunity to learn more about the aspirations and background knowledge of prospective students.


If you have further queries about the course, please contact Ying Ashton, Admissions Officer, or see our Covid 19 information for applicants and offer holders page.