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 and months 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:

Continue ReadingFree interactive Python tutorials for beginners

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:

Continue ReadingMaking computing accessible for all

19: Optimisation in python

Python is a very powerful and flexible programming language which lets you write programs quickly, but code written in python doesn’t always run as quickly as it might in other languages (like C or C++)

This tutorial guides you through why it can be really helpful to optimise your code and how to do that.

Make your code more efficient
Optimisation in python: Make your code more efficient


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.

Continue Reading19: Optimisation in python

Free weekly python remote learning resources: update on new features

I’ve seen some really creative teaching and learning ideas to support students learning python programming during remote learning. Lots of teachers are looking for ways to stretch and support computing students while they’re working from home or as an optional extra competition during term time.

It’s been a little while since I posted an update on and I’ve been working hard on some new features:

Each week there’s a new episode of Each episode starts with a YouTube video that talks you through the design and development of a short python program. It then has links to four interactive resources that relate to the code in the video.

You can access the resources on almost any device without needing to register or sign in at, or schools can register for free accounts so that students can compete against their classmates and teachers can track their progress.

You can watch a quick guide here:

All resources and instructions for setting up groups for students can be found at

I’ve just been working on improving the student competitions so that students can use their Microsoft Teams logins to access the challenges and scoreboards. My next challenge is to improve the user interface in to make it easier to monitor students’ code in real time.

If you have any feedback or suggestions I’d love to hear from you.

All the best!

Continue ReadingFree weekly python remote learning resources: update on new features

Free weekly python remote learning activities

When the first lockdown started in March 2020 I wanted my Computing students to still be able to get some regular practice building up their skills and confidence with python programming, so I launched a series of weekly challenges that they could work through.

I took a break over the Summer but found that even with schools open for face to face teaching, I still wanted students to be able to compete against each other for prizes and grow in confidence with python programming. So in November I relaunched the weekly activities.

The challenges are aimed at my awesome Y10 Computer Science students but anyone from Y7 – Y11 who’s interested in python programming could use them. The idea is that each week there are 5 free activities that you can dip into:

  1. Live coding video on YouTube: students can watch a short (around 10 mins) video showing how a python program comes together. There’s some great research that shows live coding (inviting students into the thought processes as they see a program evolve from start to finish) can really help understanding and writing their own code.
  2. Code type race: students of any ability can type out the code from the video to grow in speed and accuracy so that programming becomes a less frustrating experience for them.
  3. Experimenting with code: students can view, edit, run and extend the code from the video on any device. The code itself has comments with challenges that students can work through.
  4. KPRIDE (Keywords, Predict, Run, Investigate, Debug, Extend): Dr Sue Sentance published some ground breaking research on a structured approach to teaching programming and KPRIDE builds on her PRIMM model with interactive activities that add an extra emphasis on code comprehension and debugging.
  5. Extension challenge: each week there’s a different game, puzzle or activity to work through that links to the code in the video

You can find all the resources here:

There are loads of great resources out there. I’m not claiming that mine are the best (by any stretch of the imagination!). But they’re free and I hope they’re helpful.

All the best and do get in touch if you have any feedback or suggestions.

Continue ReadingFree weekly python remote learning activities