General course information

Course leader

The module is led by Dr Anna Broms, a Chapman Fellow in the Department of Mathematics at Imperial College London, doing research in applied and computational mathematics. Her research lies at the intersection of fluid dynamics and computational science, particularly in the development of numerical methods for solving complex physical problems on the microscale. Computational linear algebra tools form part of her day-to-day research work.

Accreditation

This module is available as an elective for third- and fourth-year Mathematics students and eligible JMC students. It is also approved for the MSc in Applied Mathematics. Students on other Master’s programmes and PhD students wishing to take the module should contact the course lecturer in the first instance (but information about timetables and assessment submission should be requested from the Mathematics Undergraduate Office).

Assumed knowledge

The theory component of the module will assume only familiarity with undergraduate linear algebra.

The implementation will be in Python, a high-level programming language with syntax that should be accessible to students familiar with MATLAB. We won’t use that many features of Python, mainly just functions and loops. If you haven’t done any Python before, then it is worth referring to the official Python tutorial as you work through the exercises (Sections 1 to 5 are a good start).

We will use the version control system Git to manage our code in files. We will combine this with Classroom 50 to submit your code and get feedback on it. Many of the relevant programming skills are introduced in the second-year course Principles of Programming. If you have not taken this course, it just means that you’ll need to spend a little extra time at the beginning covering a few basic topics on working with Python files and packages, and using Git and GitHub. In the course we will link to the relevant parts of the Principles of Programming notes so that you can catch up on these skills.

Assessment

The module will be assessed by two coursework assignments, an in-class computer test, and an examination. The coursework assignments are submitted during Autumn Term and each will contribute 10% of the module mark. Each coursework assignment comprises a PDF report submitted on Canvas and a code submission on GitHub through Classroom 50. The material covered by the two coursework assignments is then tested in an in-class computer test, which contributes a further 30% of the module mark. The examination takes place in the main exam period and contributes the remaining 50%.

Mastery

Fourth-year Mathematics students and Master’s students take the Level 7 version of the module, which includes additional mastery components designed to assess greater depth of understanding. Third-year students take the Level 6 version and are exempt from these components. The mastery component consists of an additional question on each coursework assignment, plus an additional question on the examination. The examination mastery question will not cover additional material, but will test a greater depth of understanding and synthesis. The coursework mastery questions may require some additional literature research.

Canvas

Important announcements, complete course information, and coursework submission will be handled through Canvas. Please ensure that you are enrolled on the module in Canvas.