Welcome to Python Programming!

Josiah Wang

Welcome to the gateway to Python Programming at the Department of Computing, Imperial College London!

My name is Josiah Wang, and I teach the Python Programming course at the department. The course is designed primarily for the MSc in Artificial Intelligence degree.

Here, you will find links to the materials used for the Python Programming course. I have also included resources developed for other related courses.

Some of the materials are restricted to only students registered on the course. Otherwise, most materials can be publicly accessed.

You are welcome to browse and learn from our materials, no matter who you are!

Python and programming for beginners


The Python Programming module (COMP70053) is primarily designed for those with no prior programming experience, but have some high school level Mathematical knowledge. You should know what functions, vectors, matrices, variables, etc. are.

Course materials

  • Latest learning materials
    • These materials have been used and improved since the 2021 edition of the course. I designed the materials to be beginner friendly, 'applied' and 'holistic' so that you can start applying your skills quickly to solve practical programming problems. It introduces not only Python and programming, but also good software engineering practice and using git for version control.

Latest edition

  • Python Programming Autumn 2023
    • The materials from 2023 onwards will be 'living documents' (above) that are directly updated from year to year. This avoids me having too many versions of the materials lying around the web.

Previous editions

  • Python Programming Autumn 2022
    • The materials in this edition is an incremental update to the 2021 edition.
  • Python Programming Autumn 2021
    • This edition boasts new self-guided learning materials. See the description about the course materials above for more details.
  • Python Programming Autumn 2020
    • The materials in this older edition are useful if you need a crash course on Python. They are more focused on explaining Python features, rather than how to apply them to solve programming problems.

Python for Existing Programmers


I have also developed some Python crash courses geared towards existing programmers. These assume that you already know programming, and aim to highlight the differences between Python and the other language. These are currently 'crash courses' purely for passive consumption. I aim to make these more 'hands on' in the future.

Main Contributors

Josiah Wang

Josiah Wang

Senior Teaching Fellow