Yes! Kids can learn Python

What is this?

Kids can learn Python programming by controlling game characters!

This is a set of training materials I used to successfully teach Python to kids as little as 10 years old. It was a success because the kids didn't just finish the course, they independently completed most of the coding challenges by applying the knowledge they had learned.

The first four lessons (Lesson 1, Lesson 2, Lesson 3, Lesson 4) and the interactive online learning environment are freely accessible online. To get the rest of the lessons, please order it on PayPal or on Amazon for US$9.9 (or the paperback edition). Then I will send you a link within 24 hours.

Contact me at kent.tong.mo@gmail.com if you have any questions.

What are the special features of the training materials?

  • Instead of starting from hello world, students will start by controlling different objects in a learning environment such as a knight, a light bulb or a tank.
  • The students will write real Python code from day one instead of some less powerful toy languages.
  • The training is designed on a hands-on principle: The whole training is broken down into many tiny bits of information. As each bit of new information is presented, immediately the students are required to apply that knowledge to programming tasks.
  • Complex tasks are broken down into a sequence of simple tasks, so the students can truly master the skill gradually.
  • Most of the skills (e.g., the use of variables as an abstraction tool) are practiced repeatedly in different tasks. Truly mastering something requires a lot of reinforcement.

Table of content

The training materials are organized in 14 lessons (the first four are freely available):

  • Lesson 1: Control a knight in a platform game to achieve different goals. Learn how to call a function, pass arguments, use variables to indicate the meaning of a value, perform calculations.
  • Lesson 2: Control a tank to move along different prescribed paths. Continue to practice using variables instead of concrete values in calculations. Learn the concept of expressions and the use of text strings.
  • Lesson 3: Perform various calculations based values input by the user. Learn to get input from the user and use it in place of a concrete number (e.g., calculate the next value of the one input by the user). This is a major difficulty faced by many beginners.
  • Lesson 4: Use the tank to draw shapes with its bombs. Continue to practice using input values from the user in place of concrete numbers.
  • Lesson 5: Learn to show an input box and use "if" in Python.
  • Lesson 6: Learn to use an input box to prompt for multiple values, display information in a message box and convert an number to a string.
  • Lesson 7: Control a light bulb. Practice increasing the value of a variable. Continue to practice using "if". Introduce the concept of a function that gives back information.
  • Lesson 8: Learn to use "if" without "else" and check if two values are equal or not. Continue to practice using user input along with "if".
  • Lesson 9: Respond to questions with predefined answers like a robot. Avoid overloading the light bulb. Learn to use "if" to guard against an operation that might fail and concatenate two strings. Continue to practice using "if".
  • Lesson 10: Move the tank to a flag. Learn to use a 2D coordinate system for positioning objects such as the location of a flag or the path for the tank and calculate distance between two objects.
  • Lesson 11: Drive the tank to the location of a mouse click and position the mole. Continue to practice using "if" and working in a 2D coordinate system. Learn to respond to mouse clicks and schedule code for execution at a later time and use it to do something repeatedly and indefinitely.
  • Lesson 12: Change the brightness of the light bulb to a random brightness or let the flash at random intervals. Learn to generate a random number. Practice scheduling code execution.
  • Lesson 13: Repeatedly and randomly move the mole at random locations. Practice using a random number for a particular range required by the situation. Learn to use 'and' or embedded 'if's to check for multiple conditions.
  • Lesson 14: Hide the mole if it is hit by a click and use the keyboard to turn on/off the bulb. Learn to respond to key presses using "if".
  • Lesson 15: Use the keyboard to control the brightness of the bulb, the movements of the tank and the position of the racket. Practice responding to key presses using "if".
  • Lesson 16: Move the tank continuously until it hits a flag. Learn to increase the value of a variable repeatedly at a time interval and stop when a certain condition is met. Learn the concept of Boolean values and functions that return a Boolean value. Learn to detect sprite collision.
  • Lesson 17: Make the ball fall continuously until it drops below the floor. Replace the ball if the racket hits it. Learn the meaning of negative coordinates in a 2D coordinate system and disable a line of code by commenting it out.
  • Lesson 18: Make the ball drop faster during the fall. Let the ball bounce and play a sound if the racket hits it. Create the impression that the ball is rolling. Make the game run faster as time goes by. Learn to extract and adjust the parameters of a continuous process (such as step and direction) and change the image of a sprite to make its movements more realistic.
  • Lesson 19: Learn to use a loop to execute an action immediately for a certain times.

Screenshots of the interactive Python learning environment

Contact me

Contact me at kent.tong.mo@gmail.com if anything is broken.