Free interactive Python tutorials for beginners

Try it, debug it, extend it
Try it, debug it, extend it: Python tutorials

Over the next few weeks I’ll hopefully be publishing a series of 20 free interactive python tutorials for beginners.

Here’s the link to the list of resources

Each activity has four sections:

Theory: what you need to know if you’re in a hurry

Try it: working code snippets that you can adapt and use

Debug it: code sabotaged with common mistakes that you can practise fixing

Extend it: open ended project ideas for your to apply what you’ve learnt.

You can track your progress through each activity and generate a free PDF certificate showing your score at the end.

The first activity is all about getting your python program to output to the screen:

What attracts you to computing

Making computing accessible for all

This series of posts aims is aimed at UK secondary school teachers to give some free ideas and resources in order to help make computing lessons engaging and inclusive in order to help attract more and more students to continue with the subject at GCSE and beyond.

When students are choosing their GCSE options they seem to love asking teachers why we chose to teach our subjects.

Often, I can almost see the cogs turning inside some of my students’ heads, weighing up whether they should choose Computing over Art; ticking off the benefits of each subject as they make the first real choice that might affect the rest of their lives.

Whatever they use to make up their mind – who teaches the subject / what their friends are choosing / what they’re good at / what they enjoy – there’s clearly a lot more that we can do to promote Computer Science as a viable, challenging, enjoyable and worthwhile option. The national figures show a pretty poor GCSE uptake of GCSE Computer Science compared to other eBacc subjects and an abysmal uptake by girls. Boys, whilst outnumbering girls at KS4 and beyond, are being outperformed by girls from KS2 onwards. So there’s definitely something not right there that needs addressing.

CAS include
CAS #include. Making computing accessible for all

I’ve been slowly working through the brilliant advice on the CAS #include site about how to ensure that my Computing lessons aren’t just catering for people like me and it strikes me that the way to be inclusive for all also looks and sounds like the way to be engaging and stretching for all. This post aims to share some of the mistakes I’ve made as well as some of the things I’m trying to put right to make sure that all students get the most out of their computing lessons, hopefully also boosting recruitment at KS4 too.

I’ve come up with 6 Cs to use as a checklist for planning engaging and inclusive computing projects:

Free computing code typing game now supports Python, C# and VB.NET

I’ve just added C# alongside Python and VB.NET to which means you can learn new code snippets and improve your typing speed by racing through competitive challenges online. is a free code typing game designed for computing teachers and students to help you improve your typing speed. is free to use with no signup required – I designed it for my students to be used as a quick starter activity as a different way of learning and remembering code snippets whilst also encouraging them to become efficient touch typists.

For each programming language you can choose a random code snippet or one from any of the following categories:

  • Variables and constants
  • String manipulation
  • Built in functions
  • Input and output
  • Arrays
  • Conditional logic
  • Repetition / Iteration
  • Procedures and Functions

Each challenge provides some code with an explanation of what it does which you then have to type out as fast as you can. There’s an onscreen keyboard to encourage your to touch type without looking at your fingers:

Improve your python skills and typing speed
Improve your VB.NET python skills and typing speed
Improve your C# skills and typing speed

You can find see the average typing speed, highest scores and other stats at

I hope it’s useful – enjoy!

National Coding Week: Flappy Bird Python Challenge

16th September 2019 is the start of National Coding Week so it’s an ideal time to for anyone to have a go at writing code for themselves.

To celebrate, here’s a free interactive activity that anyone can use to have fun writing code without needing to download any software or create any accounts.

It doesn’t matter how old you are, how much experience you have (or haven’t) got or what your gender is, hopefully there’ll be something in this python flappy bird challenge that will give you a taste of what’s possible with a few lines of python code.

National Coding Week: Flappy Bird Python Challenge

Stage 1: Type with code

The first stage of the flappy bird python challenge gets you to type out the code for a flappy bird game as fast as you can.

Use the on-screen keyboard to help improve your touch typing by trying not to look at your fingers as you type.

See how your typing speed and accuracy compares to other people.

Once you’ve finished, you get a link to the code so that you can run it and play the flappy bird game

Stage 2: Run the code and play the game

The code for the flappy bird game can be run by pressing Ctrl + Enter in your browser.

Press any key to make the bird jump.

The code uses PyGameZero and was originally written by the marvellous Daniel Pope and the original source is available here:

Have a go at playing the game and see what score you can get to without cheating.

Stage 3: Hack the code

Once you’ve played the code for the flappy bird game you can tweak some of the code to make small changes and see how it affects the game.

Lines 4 – 10 define some constants (including GRAVITY and SPEED) which you can tweak to make the game easier or harder

See what you can create with code.

Next steps

There are some brilliant free python tutorials all over the web.

I’ve published some free interactive self-marking challenges which you can use to pick up new skills, try them out and test yourself to generate a PDF certificate showing your progress.


12: Iteration in Python

One of the most powerful things that makes computer programs so useful is their ability to repeat tasks quickly and efficiently. Iteration means controlling how many times a section of code will repeat.

Make code repeat as many times as you want
Iteration in Python: Make code repeat as many times as you want


Page 1: Intro

Page 2: The theory: learn what you need to know as fast as possible.

Page 3: Try it: try out and adapt some working python code snippets.

Page 4: Debug it: Learn how to find and fix common mistakes.

Page 5: Extend it: Choose a project idea to use your newfound python skills.