Python Programmer Bootcamp

Developing your programming skills in Python and teaching you how to solve problems in Python by thinking computationally.








Course description

This is the Python course that will not only develop your programming skills, but will also give you a problem solving superpower using Python code! In this course you will develop a thorough understanding of Python, how to program in Python, and how to think computationally. You will learn how to implement object-oriented programming (OOP), how to create Python charts in Matplotlib, and how to work with different IDEs like Spyder and Jupyter. While you’re learning, you’ll get to practice your skills with fun and challenging exercises like solving the Sierpinski Triangle and the Towers of Hanoi. Finally, your instructor, Giles McMullen-Klein, is a British programmer who went to Oxford University and used Python for his research there. He’s motivating, enthusiastic, and truly passionate about Python!

Course Introduction

In this section, we look at what coding is and why it’s a useful skill to have. Coding is a superpower giving you the ability to complete tasks that would otherwise be impossible or very time-consuming. An understanding of how to code also helps your problem-solving skills. Coding is also a very sought after skill; one that is valued by employers. There are so many programming languages, we take a brief look at why that is and what the benefits are of choosing python.


Setting up the environment

Setting up Python can be one of the most challenging aspects of using it. There are so many different ways of installing it onto your computer and sometimes they can create conflicts that can be difficult to resolve. That’s why we’ve chosen to use Anaconda. It’s a simple installation, which we’ll walk through with you. You’ll have python up and running in a few minutes. Spyder is an IDE (integrated development environment) which is included with the Anaconda Python installation. IDEs are very useful when coding, as they put everything you need right at your fingertips. Here we show you the basics of Spyder.


Python basics + Hands-on Coding

It’s essential that you understand how the PRINT function works in Python. It’s what enables you to print output to the screen, it’s also useful when it comes to debugging - more on that later! Here you will receive a thorough grounding in how to use it.



If you want a computer to make decisions then you need to use conditionals. Conditionals enable computers to choose different outcomes based on the value of a variable. They are very powerful and key to being able to code in Python.


For Loops

Computers are very good at doing repetitive tasks. The for loop is one way of controlling how this is done. It allows you to request the computer to repeat blocks of code. In this section, you will learn how to use the for loop and just how handy it can be. We then look at the other type of loop - the while loop. In this section, we also take a look at a python data type called a list. We explore how, why and when to use it.



Another Python data type. It’s essential to understand what a dictionary is and how to use it. They are widely used in data applications. We explore their uses and some applications in this section. We also cover modules, which give python a whole new set of features. You will learn how to import and use modules and we will introduce you to the counters module: very powerful but often overlooked. You will be introduced to the tuple, another data type and we will cover the zip function too.


Files and Functions

Python can handle files. It can open files, read files, write to files and manipulate the content of files. In this section, we will introduce you to some of the more common file handling methods in python. We also take a closer look at functions. We also cover a very important topic in computer science: recursion.



Classes and objects: what’s the difference and why does it matter? You will find out in this section. Everything in Python is an object, we will show you what this means and how it can help you to write better code. You will learn how to create your own objects, the difference between a method and a function and we will introduce the concept of inheritance.


General Tips

We have covered a lot of ground, in this section, we take a look at the bigger picture. You will receive general advice on how to become a better Python programmer.


Big O

How long will your algorithm take to run? How does it scale as the amount of data you process increases? These questions can be answered by considering Big O. We will explain what it is and how it is applied to algorithms in this section.


Advanced Python: Matplotlib

Python is so versatile, there are very few things you can’t do with it. One of its many strengths is data visualization. Matplotlib is a well-known data visualization module in python. We introduce you to it in this section and work through some interesting examples.


Advanced Python: Stacks

Data can be stored in various different ways, known as data structures. In this section, we will show you a very important data structure known as a stack. We explore what it is, how it’s used and how it can help us to solve problems, such as the famous computer science problem called ‘The Towers of Hanoi’.


Search and sort

Two of the most important tasks for computers are searching and sorting. So much work has been done on how to optimize these tasks. In this section, we introduce you to the challenges they pose. We cover some famous searching and sorting algorithms.


Advanced Python: Cards and Coins

In this section, we put our python skills to use to solve some problems. We will make a credit card number validator using Luhn’s algorithm and we will write some python code to solve a famous maths puzzle.


Advanced Python: Debugging

When you write code, it will contain mistakes! It’s unavoidable. Debugging is the process of going through your code, finding the mistakes and correcting them. We will teach you that process in this section. You will also be introduced to python’s module for using regular expressions: Regex.


Advanced Python: Strings and Expressions

In this section we dig deeper into strings. It is not mandatory to go through them, but such advanced topics are always the most interesting. We explore how to format numbers in specific ways and get familiar with regular expressions.


Capstone project - Computer Vision

Working through problems in Python could also be quite a challenging task. However, Python allows us to work on very complicated computational problems even with a limited programming knowledge. In this capstone project we simulate a real-world situation where we are asked to solve an extremely challenging problem, in order to build our research skills.


Further Exercises

Here you will find some additional exercises that will help you reinforce what you have learned in the lessons. Hope you enjoy them!



This section introduces another highly functional IDE - PyCharm. Using PyCharm not only helps your Python programming, but familiarity with it is a common prerequisite for a career in data science.


Exception handling in Python

Exception handling is one of the Python features that allow you to anticipate errors in your code and deal with them in advance. Although learning how to handle exceptions may seem challenging at first, it will prove to be an indispensable tool in your Python programming arsenal.



Some parting words of encouragement and a sincere thank you!