Python coding for kids – some suggestions

Here are some ideas and resources for teaching Python to children. Children are all so different, and parents will vary enormously in their coding skills and how many hours they are willing to spend helping! In this post I have written about our family’s experience with Python resources for kids, in the hope that it may help you to find something that works for you.

If you want to skip straight to a specific Python option, here are the programs covered in this review:

My child is on the younger end of typical Python learners, and at the moment I mostly want coding time to be a fairly independent activity, whilst I am helping other children. I therefore have a preference for child-friendly presentation, and programs where mistakes can be fairly easily identified independently. If you have an older child, or have more time/experience to devote to teaching Python, you may do better with resources that we found challenging.

Python is significantly more fiddly than the block-based coding programs that younger children typically use. You need to have a fair degree of competence at typing, so that you can keep your head clear for actually thinking about the programming. You also need to have good attention to detail, because missing a single dot, or forgetting to indent, can be enough to break your code. This can be frustrating for the younger learner, but there are fantastic opportunities here for working on spotting and fixing your own mistakes. The key thing, I think, is that the section of code you are testing is not too long, so that the student has a fighting chance of finding the mistake quickly, before they get frustrated.

Coding experience prior to Python

My child had plenty of experience with block-based coding curricula such as Code.org. They had also done a certain amount of off-screen programming with a Turing Tumble, and robotics with a Microbit and Elecfreaks kits.

Code Monkey: Banana Tales

This was the first coding subscription program that I actually paid for; up until this point we had primarily been using free websites like Code.org and the BBC Microbit website. I was super impressed with this course, and felt that it was well worth the money. I initially had a single-student subscription, but actually ended up extending it to a family subscription because I could see that there were a number of course options like Beaver Achiever that my younger children would enjoy.

Opening level of Banana Tales

As for Banana Tales itself, this is CodeMonkey’s beginner Python course. It is very child-friendly and ‘gamified’, but the learning progression is fantastic. In each level, the child needs to create a path for the monkey to reach the banana. There are 150 levels, and by the time you get into the upper levels, it is really quite challenging. The course covers sequencing, lists, for loops, range, variables, if/else, while loops, boolean operators, functions, classes, input, integers, strings, dictionary, set, tuple, 2d lists, and bubble sorts.

I cannot emphasise enough how popular Banana Tales was in our house! My child regularly asked to do more in their free time, and really enjoyed this curriculum.

A later Banana Tales lesson on Boolean Operators

I do not have a programming background. Up until this point, I had generally been able to resolve any coding ‘stuck’ points for my children quite easily and intuitively. This was the first course where I found that I really needed some time to back up a couple of levels, work out what the course was trying to teach, and then read through my child’s code and figure out the mistake. Quite a few times, the mistake related to indentation, making sure that a line of code started with the correct level of indentation.

My child did not realise at first that there were video tutorials available to help; these are in the top right of the screen, and introduce each topic.

Banana Tales: a short instructional video on the current topic

I have since realised that parents can view the ‘3 star’ solution to each problem in the ‘Parent Resources’ section of the parent log-in. This would have been quite helpful at points, had I known.

After my child completed Banana Tales, we had a go at CodeMonkey’s second Python course, Coding Chatbots, but it is quite a different set up and much less ‘gamified’. My child, who is on the younger end for this sort of thing, wasn’t very keen. In the end we decided to go back and redo all the levels on Banana Tales where they got less than 3 stars. This was a really valuable exercise in itself, and I felt that my child was much more confident in their Python skills after the second run-through.

Kid verdict: Banana Tales is a great coding course. It teaches you lots of different elements of Python, and it is easy and intuitive to see what your code is doing, and fix mistakes quickly.

No Starch Press Python Books: Python for Kids

This post contains affiliate links. As an Amazon Associate, I earn from qualifying purchases.

When every level was at 3 stars and there was no more joy to be wrung from Banana Tales, I reluctantly cast around for other programming resources for kids. I looked at a couple of other online offerings which didn’t seem to be a great fit for us (more on that later), and decided instead to try Python for Kids by No Starch Press. We have used quite a few Lego Technic books from No Starch Press and they have been excellent, so I thought it was worth a go.

No Starch Press Python books

The first steps in the book explain how to install Python on your computer. I felt that this was a really useful thing to learn in itself. Using the Python shell from the desktop felt like a step up from coding within an online programming game.

Instructions for installing Python

The book then runs through some simple Python language, such as variables, strings, lists and dictionaries. There is some graphics based programming using the turtle. Then some chapters on if/else, loops, classes and objects. For each step, the code that you need to write in the shell is clearly written in the book. My child only got stuck a few times in this first half of the book, and the problem was generally that they had missed a dot or put a space in the wrong place. As the programs were quite short, it was easy to find the problem and resolve. They had a lot of fun with the book, and were fairly independent.

The second half of Python for Kids is two larger game projects. In Bounce! kids have to create a simple game with a moving paddle and a bouncing ball, and keep the ball bouncing off the game area, rather than dropping out of the bottom. In Mr. Stickman Races for the Exit where a small figure needs to jump from platform to platform to exit the game area in time.

My child was really enthusiastic about creating these projects, but they turned out to be more challenging than the first half of the book. The sections of code that need writing are longer, and it was harder to identify problems as you went along. My child found it frustrating that when they had finally slotted everything together, the program wouldn’t work properly, and they didn’t have the skills to identify the problem themselves. Some issues I was able to resolve for them (e.g. saving graphics in the wrong place), but others were beyond me as a non-programmer without putting in quite a lot of time.

Kid verdict: Python for Kids is enjoyable, and the projects themselves are fun. However, this book didn’t really help with understanding the ‘why’ of Python. That is, after completing the projects, you still might not feel ready to go away and create a different game of your own, because you don’t clearly understand how all the different pieces you made actually work together. (Of course, an older child might be more able to digest the text explanations and come away with a clearer picture of the whole).

No Starch Press Python Books: Cracking Codes with Python

The next resource we tried was a different No Starch Press book, Cracking Codes with Python. While not specifically written for children, I hoped this would be a good fit because my child is interested in ciphers. There are quite a number of No Starch Press books, so it is worth having a look on the publisher’s website to see if there is something that would particularly interest your child.

My child was really enthusiastic about this book and enjoyed the first few chapters enormously. However, they then got quite stuck again, just under half way through the book in Chapter 11, where the book moves on to brute-force programs. The problem was not really the Python itself, but around making sure that the required files (e.g. dictionary) were saved appropriately in the same location. This was a problem we had encountered in the previous book too. We probably will carry on with this book in the future, but decided to revert to an online offering that they could use more independently for now.

My child’s verdict: This is a fun book, and the programs in the first part are generally quite short, so that you are less likely to make a mistake, and it is easier to test your results.

Code Monkey: Coding Chatbots

We then decided to go back to Code Monkey and have another go at Coding Chatbots. Now that our eyes had been opened to the frustrations and difficulties of Python in the real world, I found that my child was more enthusiastic about Coding Chatbots!

My child was able to make steady progress with Coding Chatbots on their own, and it felt like a nice independent option to keep their Python skills going whilst we consider what to try next. I really like the design for the instructions in Coding Chatbots. The instructions for the exercise are given step-by-step down the left hand side of the screen. After completing each instruction, you can check your work, and the next instruction will be unlocked if you are correct. Otherwise you will be directed to have another go. This is a great frustration limiter for younger children, because it makes it much easier to identify any problems quickly.

Kid verdict: Enjoyed Coding Chatbots more than Python for Kids but not as much as Banana Tales. It isn’t quite as easy to see exactly what your code is doing, and the overall theme is less fun.

Carnegie Mellon University: Computer Science Academy

Carnegie Mellon University have a very well developed Python course offering. My understanding is that when Code.org stopped doing Python curricula, the recommendation was to move over to using CMU’s Python course instead.

There are three different courses available, which you can see here. The introductory 4-unit course, Exploring Programming with Python can be done by anyone, as long as the parent signs up as a mentor. For the full-year program, the course either needs to be administered via a school, or by a home-schooling/home educating parent. We are currently doing this full year CS1 Introduction to Programming with Python course at home, as we home educate. The sign-up process was straightforward and communication was prompt (I needed to provide some basic confirmation that we home educate).

I expected the course to be good, but it has far exceeded my expectations! The course is marketed as a high-school level course, so I was unsure if my (upper elementary) aged child would find the format too dull or technical. This has not been the case at all. The course is very well laid out, and the tasks all have a visual element (you can play with their Python sandbox which you can find here), so that there is immediate feedback as your child writes code. This is really helpful for my child, as they can quickly spot mistakes, rather than getting frustrated a long way down the line. It is easy to see whether you have fulfilled the brief.

There is a nice mix of simple tasks and longer creative projects to finish each unit. We are about a third of the way through, and I intend to write a full review when it is finished, but my early-stage review is that this is a really excellent option. If you are not home educating, I think you would still get a lot out of the shorter course, which is based on some elements of the full course.

I would still recommend working through at least the Banana Tales course first for younger learners.

Other kid-friendly Python ideas

Here are some other ideas for teaching Python to children that I researched, but haven’t chosen to use yet, for a variety of reasons. Most courses that I looked at were very much designed for adults, and the interface would not appeal to my children! Here are some of the more child friendly options:

  • CodeCombat: This is an option that I looked into quite heavily but haven’t chosen to go for yet. It is game based coding that looks very appealing to children. There are absolutely loads of levels, ranging from the very basics of Python up to more advanced topics. There are also lesson slides available to go along with the coding games. It is possible to set up a free account and have a go at the introductory levels before subscribing, which I appreciated. The reason that I haven’t used this resource yet is that, having played around with it a bit, it seemed to me that it is more gamified than I want. In the early levels the programming is setting you up to play the game, rather than being the core activity. That is, you write some code, so that you can then complete the challenge of moving your person around, or fighting baddies. My perception was that this was further along the ‘gamification’ spectrum than CodeMonkey, and an activity that I would more likely choose for my child’s free computer time, rather than a coding curriculum. However, we may well still end up using CodeCombat in the future.
  • Tynker: This is an option that I would really like to like, but I have some concerns. Tynker has a six-level coding curriculum, of which the last three levels are Python-based. You can try some of their Python offerings if you search for ‘Tynker Hour of Code’. At the present time I am put off by the negative TrustPilot reviews (very hard to cancel subscriptions), and the fact there seems to be a perpetual ‘flash sale’ on the home page.
  • Grok Academy: This is an Australian company offering several different Python courses for young people, and looks very good. The courses are free if you live in Australia or New Zealand. There is a paid option for schools in other parts of the world, but I haven’t yet been able to work out whether it is possible to pay for a home subscription.

What resources have you used to teach Python to children? Leave a comment below!

Similar Posts

  • Logic resources for children

    I absolutely love logic! In this article, I share some of my favourite resources for exploring logic with children. There are games, puzzle books, stories, and other activities, for a variety of ages. Single player games and activities These ideas are hands-on physical puzzles and other games primarily designed to be used by one child…

Leave a Reply

Your email address will not be published. Required fields are marked *