This is an archived version of the course. Please find the latest version of the course on the main webpage.

📌 Josiah's note

Welcome to all MSc AI, AI4Health CDT, and MRes AI&ML students!

I am still in the process of preparing these learning materials. Expect them to be updated as the week progresses. I will post any updates here on this sticky note.

Feel free to send me an email at josiah (dot) wang -[at]- imperial.ac.uk if you detect any mistakes or have any feedback!

Updates

  • [23/11/2021]: Added lesson on Advanced OOP and Python Decorators. All lessons are now released!
  • [18/11/2021]: Added lesson on HTTP requests.
  • [13/11/2021]: Added lesson on Regular Expressions.
  • [10/11/2021]: Added lesson on PyTorch.
  • [08/11/2021]: Added lesson on pandas and scikit-learn.
  • [06/11/2021]: Added lesson on NumPy+Matplotlib.
  • [01/11/2021]: Added optional exercises complementing Week 5 live lectures.
  • [29/10/2021]: Lesson 10 released. Apologies as usual for the delay!
  • [18/10/2021]: Lesson 9 finally released. Apologies for the delay!
  • [27/09/2021]: Lesson 8 released.
  • [18/09/2021]: Lesson 7 released. I estimate that you may need as long as 4 hours to complete this lesson due to the number of topics covered and the number of exercises included!
  • [09/09/2021]: Lesson 5: Added an additional style recommendation on default arguments to the function style guide.
  • [08/09/2021]: Lesson 6 released.
  • [06/08/2021]: Lesson 5 released.
  • [02/08/2021]: Lessons 1-4 released.

Guided Learning Materials

These learning materials are the centrepiece of our course.

You should actively engage in the materials, and be constantly thinking, doing and applying your knowledge. As you will see, these materials are not just for passive consumption!

The materials cover a lot of breadth - more than simply Python and programming. So you should go through the materials even if you already have prior programming experience.

I have designed the materials in such a way to help you get to grips to programming in the shortest time possible. This will allow you to apply your programming skills to other courses in your degree, many of which will involve programming.

There is no set schedule for completing the materials. The course is designed to be self-paced to cater for the different prior knowledge, programming experience and needs among your cohort.

I have provided a recommended schedule (details in our first live lecture) for you to gain enough knowledge and skills to be able to tackle the coursework assignments for this course and for other courses in your degree.

📁 Core

You should start here. These core lessons introduce the fundamentals of programming, Python and software engineering. The lessons progress incrementally, so should be completed in sequence.

📁 Scientific and ML Packages

These group of lessons concern using various external Python packages for numeric, scientific and AI/ML computation. You will need to have completed at least Core Lesson 9 for some of these lessons to make sense.

📁 Advanced Python

These are more advanced programming and Python topics that I did not cover in the Core Lessons. You should have completed all Core Lessons for some of these lessons to make sense.

📁 Other Topics

Here are some other topics that might be useful for your degree.

💡 Sample solutions for the applied exercises can be found on this gitlab repo. These are sample solutions to use as a reference. They are in no way "definitive" solutions.

In any case, I trust that you will try the exercises yourselves first, and not just read the solutions without trying!