Key Information

Tutor: Dr Chris Cooling 
Course Level: Level 2 
Course Credit: 1 credit 
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. 
Course Duration: 2 x 2hour sessions 
Format: Live online or live face to face with hands on practice 

Course Resources

Codes 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. 

This course discusses the role of profiling and optimisation in the software development cycle and encourages students to consider when and where profiling and optimisation are appropriate for a project. Profiling tools relating to both run-time and memory are introduced, and various optimisation strategies are demonstrated. The course will conclude with asking students to profile and optimise a piece of sample code.

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.

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

Dates & Booking Information

DateTimePlatform/Venue
Monday 08 November 2021 (Part 1) &
Thursday 11 November 2021 (Part 2)
13:00-15:00
13:00-15:00
Microsoft Teams
Wednesday 02 February 2022 (Part 1) 
Friday 04 February 2022 (Part 2)
15:00-17:00
15:00-17:00
South Kensington (Face-to-Face)
Tuesday 01 March 2022 (Part 1) &
Friday 04 March 2022 
(Part 2)
10:00-12:00
10:00-12:00
Microsoft Teams
Thursday 26 May 2022 (Part 1) &
Friday 27 May 2022 
(Part 2)
12:30-14:30
12:30-14:30
South Kensington (Face-to-Face)
Summary of the table's contents

Please select a date and book on via Inkpath using your Imperial Single-Sign-On.