How does this course relate to the similar sounding MSc Applied Computational Science and Engineering?

This course builds on the success of the MSc Applied Computational Science and Engineering (ACSE), with several of the modules being co-taught. ACSE delivers training in Computational Science and Machine Learning that is applicable across all Science and Engineering disciplines. EDSML has much of the same motivation but seeks to train the next-generation of highly numerate and computationally proficient Environmental scientists and engineers. EDSML thus places more of an emphasis on big data analytics and environmental data sources, with less emphasis on topics such as the numerical solution of differential equations.

What do you mean by “Environmental"?

We will interpret "Environmental" here broadly to include Earth and Planetary Science, climate, natural resources engineering, renewable energy systems, environmental hazards, marine litter, sustainability, transition to zero pollution, etc. Please refer to these descriptions of Environmental Science and Environmental Engineering for an overview of the broad range of topics that can be included in this designation.

Is this a course in programming?

The aim of the course is to train students in the application of computational techniques to problems related to environmental science and engineering. Undertaking this MSc will certainly help you improve your programming and modern software development skills, it will also train you in the use of cloud and high-performance computing (HPC) facilities.

What background in programming is necessary for the course?

All students are expected to have some experience with programming in a high-level language (including Matlab, Python or C/C++). In the first few weeks of the course you will take a module titled 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.

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 primarily makes use of Python, while you will also be introduced to C/C++ during the course Advanced Programming, which runs in the second term.

What project can I choose?

Your independent research project will be on a topic of interest in Environmental Science and Engineering. We will interpret Environmental here broadly to include Earth and Planetary Science, natural resources engineering, renewable energy systems, hazards, pollution, marine litter, etc. The project should include some component of software development, data processing and analysis, and machine learning or modelling. A list of potential projects will be provided at the end of the first term; students are also encouraged to be proactive in discussing research ideas with potential supervisors whose research they are interested in.

What background in Mathematics is required?

The course includes modules in mathematical modelling, optimisation and inversion, big data analytics and machine learning, which require a background in University-level mathematics. We would normally expect students to have taken introductory courses as part of their first degree that cover calculus and linear algebra.

Are there scholarships available?

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

Is my background suitable for the MSc?

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