Tutors: Dr Christopher Cooling
Course Level: Level 2
Prerequisites: Basic knowledge of Python is essential. Ideally an attendee will have used Python intensively for at least three months prior to attending this course. Python users who are already familiar with object-oriented coding will gain less from this course as it is primarily aimed at those learning about these features for the first time. 
Duration: 3x 2 hour sessions
Format: Microsoft Teams with live teaching and hands-on practice

Python, like many other modern coding languages, is at its heart “object-oriented”. To use Python to its fullest requires the use of its object-oriented features. These features allow for greater modularity, easier troubleshooting, greater reuse of code and a greater flexibility and utility of a given section of code.  This course combines a discussion of the principles of object-oriented coding with implementation details and syntax specific to Python.


  • Types and Objects
  • My First Class
  • Class Members in Detail
  • Magic Methods
  • Properties
  • Inheritance
  • Polymorphism
  • Object-oriented code design principles
  • An extended exercise

The course will be delivered through a combination of slides, demonstrations and hands-on practicals.

Course Materials
Pre-course Instructions

Learning Outcomes:

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

  • Define objects and classes in relation to Python
  • Use key object-oriented features of Python
  • Create classes tailored to the task they are to perform
  • Utilise object-oriented strategies to plan and develop research codes


Monday 10 May 2021, 10:00-12:00 (Part One)
Wednesday 12 May 2021, 10:00-12:00 (Part Two)
Friday 14 May 2021, 10:00-12:00 (Part Three)
Microsoft Teams


Monday 14 June 2021, 15:00-17:00 (Part One)
Wednesday 16 June 2021, 15:00-17:00 (Part Two)
Friday 18 June 2021, 15:00-17:00 (Part Three)
Microsoft Teams



Summary of the table's contents

Students must attend all three parts to be awarded the course credit