Key Information

Tutor: Dr Chris Cooling
Course Duration: 2 x 2 hour sessions 
Format: Live (In-Person) & Live (Online)
Course Credit (PGR only): 1 credit
Audience: Research Degree Students, Postdocs, Research Fellows

Dates

  • 08 & 09 December 2025
    14:00-16:00, MS Teams
  • 23 & 24 February 2026
    12:00-14:00, South Kensington
  • 18 & 20 May 2026
    14:00-16:00, MS Teams

Course Resources

 

Programs produced for research purposes will sometimes be expected to perform complex or extensive tasks which can require a lot of time to run. Profiling a piece of code allows us to identify why a code takes a long time to run and optimisation allows us to reduce this running time.

In this course you will learn how to profile code to identify bottlenecks and to use common optimisation techniques to improve the efficiency of your code. You will also be encouraged to think about when it is appropriate to optimise and how to integrate optimisation into your programming practice.

Syllabus: 

  • What are profiling and optimisation?
  • What are the costs and benefits of profiling and optimisation?
  • When are profiling and optimisation justified in the software development cycle?
  • Profiling tools available in Python
  • Optimisation strategies in Python

The course will be delivered through a combination of slides, discussions, demonstrations and hands on practicals. This course is aimed at programmers who are comfortable with the basics of Python and want to speed up their code.

This course is open to Research Degree Students, Postdocs & Research Fellows. Limited spaces available for wider Imperial community.

Learning Outcomes:

After completing this workshop, you will be better able to:

  • Determine when profiling and optimisation is appropriate for a project
  • Use selected profilers to examine the impact of sections of code on run-time and the memory usage
  • Utilise profiler outputs to identify problematic areas of code
  • Apply common optimisation techniques to improve code performance

Prerequisites

This course is aimed at Python users who have been using Python intensively for three months or more and would like to improve their skills. Less experienced users may struggle to keep up and students who have used Python for many years may already be familiar with most of the concepts presented. Knowledge of maths (A-level standard) would be beneficial but is not required. 

How to book

 

Please ensure you have read and understood ECRI’s cancellation policy before booking