Want to know the secret to teaching kids about computer programming? Start offline with easy coding games for kids to introduce basic programming concepts.
Of all the STEAM subjects, technology is the one that intimidates people the most. And when I say people, I mean parents/grandparents/teachers. Most of us didn’t study computer science and robotics so we feel unqualified trying to incorporate tech projects into our creative activities.
This post is sponsored by SAE International’s A World In Motion® (AWIM) STEM program. All opinions are my own.
In the past I avoided most coding projects with my kids and students because I believed them to be just too hard to facilitate for a more hands-on activity style person like me.
But I recently realized this truth about programing and coding: You don’t need a computer or any fancy software to teach kids the basics of programming.
We are going to do it with two simple games OFFLINE! And it will make you excited to do even more coding activities with your kids at home. I can’t wait to show you what I mean in today’s project!
I am very excited to be partnering up again with the SAE AWIM program for today’s games. Earlier this year I worked with SAE on the Skimmer Engineering Challenge and Paper Parachute Toy Based on Nature and introduced you to their online STEM@Home resources.
And psst…teaming up with them again on today’s games helped me face my own coding fears head-on!
CHECK IT OUT: STEM Competition
SAE and AWIM are hosting a STEM Innovations contest right now with incredible prizes for kids and teachers! For more info head to the end of the post and see the Chowdhury STEM Innovations Contest details.
AWIM has been providing hands-on STEM experiences in classrooms around the globe for over 30 years, enabling students to develop the 21st century skills needed to succeed in real-world work environments and connect classroom learning with real-life application. Supported by the generous donors of the SAE Foundation, they have reached more than 6 million students worldwide and engaged more than 30,000 STEM industry professionals as volunteers.
For Parents: Since the start of distance learning, SAE has been generously sharing many of their educational resources online for families who want to do STEM based activities at home. The program is called SAE STEM@Home and the resources include digital storybooks to inspire engineering projects, a curated selection of projects, and learning modules for families that want to go further in their explorations.
AWIM developed a special at-home module to accompany this project. It’s called Thinking Computationally and you can see it here. The module is full of more games, videos, and challenges to teach kids programming concepts in a fun and engaging way!
For Educators: With distance and hybrid learning models in place this school year it’s a challenge to incorporate enrichment curriculum into the online school day. But that doesn’t mean it can’t be done! Consider using games like today’s mazes for students to try at home. Most importantly if you enjoy this challenge AWIM has a wonderful classroom-based kit called Programming Each Other that you can use when you resume in-person classes. See it along with some of their other kits here.
How we will use games to teach programming skills:
Simple offline games are really effective at teaching kids the following simple programming concepts:
- What an algorithm is
- Understanding that code is a series of precise instructions
- How to use conditional statements like loops and if-then statements to write efficient code
- How to fix mistakes in your instructions AKA debugging.
We will do this with two different games. The first is a sock-sorting game that families can play together that will illustrate the importance of giving precise directions. The second is a series of mazes kids will design themselves to learn more about loops and conditional statements.
Programming Concepts Overview
Before we get started let’s learn some basic programming vocabulary terms. I suggest reading through this list and then coming back to it as you play the games and come across each concept.
- Programming Writing a series of instructions for a machine or computer to follow. Similar to an algorithm.
- Algorithm A set of rules to perform a task.
- Code The written text in a program.
- Debugging The process of finding mistakes in a program and fixing or improving them.
- Problem Decomposition The task of breaking down a problem into smaller steps that are easier to understand, program, and maintain.
- Variable A container that holds information used to solve a problem.
- Loops An instruction that specifies repeating a sequence of steps. This allows programmers to write efficient lines of code.
- Conditional Statements A statement that determines which branch of code to follow (based on a value of true or false). Two conditionals we will use are below:
- If-Then Statements A conditional statement that determines whether to perform a task based on a true or false condition. If a condition is true then do a certain action. The action is only performed if the statement is true. If condition, then action.
- If-Then-Else Statement A conditional statement that determines what task to perform based on a true or false condition. If a condition is true then perform a certain action; if a condition is not true (else) perform a different action. If condition, then action, else other action.
Game #1: Sock Sorting Challenge
Let’s start with a simple sock sorting game to begin to see what all the terms above mean.
- 3 pairs of matching socks
- 3 pairs of socks in different styles (Use for extension challenge)
- Sock Sorting Instructions Template Print 1 per player here.
How to Play:
- Place the matching socks in a pile on the table. Make sure pairs have been separated.
- Next tell the players the following: “Imagine that you are a programmer telling a robot how to sort this pile of socks into pairs. Can you think of a simple way to tell the robot how to do it?”
- Using the template, have each player write a set of instructions to sort the socks into matching pairs. In programming this is called writing an algorithm.
- If there are any repetitive actions they can be written as “Repeat steps a-b”. This is called writing a loop.
- Once each player has written instructions it’s time to test them! Players will take turns being a “Programmer” and a “Sock Sorting Robot.” The first “programmer” will read their instructions to the other player who is the “robot.” The player who is the robot will follow the exact directions read to them by the programmer. If you are the “robot” it’s important that you only do what the programmer tells you, no more or less!
- If the “robot” can’t sort the socks as directed, the “programmer” should go back to their instructions and fix the unclear parts. This is called debugging.
- Switch roles and test the other programmer’s algorithm!
Make it even more challenging by adding in variables. In this case you will still be sorting socks but the different sock colors/styles are variables i.e. green sock vs. yellow sock.
Swap out the (3) pairs of matching socks for (3) sock pairs in different colors/styles. Follow the same How to Play guidelines above but in this set of instructions use If-then statements. Here’s an example “Grab two socks from the pile. If the socks are different colors, then put one down.” You can also use If-then-else statements. Here’s an example “Grab two socks from the pile. If the socks match then put them together, fold them, and put them down else put one sock back in the pile.” Test out your instructions with your teammate.
GAME 2: Mystery Mazes
In this game kids will write simple directions to solve a pre-designed maze and then test their directions with a partner.
After this quick introduction kids will design (4) simple mazes and write a series of directions to solve each maze using a different programming concept. When they are done they can work with their sibling/partner again to see if their “program” works!
I call these Mystery Mazes because your partner has to solve the mazes without seeing the walls! The only clues they will have are your written instructions or “algorithm.”
Mystery Mazes is adapted from AWIM’s Thinking Computationally Module. This module is a phenomenal resource for teaching coding concepts to kids through simple fun videos and games. See the entire module here.
- Maze Templates
HOW TO GET THE TEMPLATES: The maze templates are located in the Thinking Computationally module which can be accessed here. Click on the module then head to the Navigating a Maze section where you can download the Maze PDFs.
Navigating a Maze Instructions
- Start with the Navigating a Maze template. Each child should have their own 2-page template.
- Using the Navigating a Maze template write down clear directions on how someone would get from the maze START to the Maze END. Use each line to write down each step. You are writing an algorithm.
- It’s time to test your algorithm. Give your partner the blank maze page and a pencil. As you read the directions your partner will solve the maze by following each instruction.
- When your partner is done with the maze, place it on top of your maze sheet and hold it against the window (or a light table) to see the maze below. Did they solve it correctly?
- If your partner didn’t solve the maze correctly, the algorithm wasn’t clear enough. Go back to your directions and modify any steps that weren’t clear. This is called debugging.
Now it’s time to design your own mazes!
Basic Mystery Maze #1 Instructions
In this maze we will continue learning what an algorithm is.
- Start with the first Make Your Own Maze template. Label one of the four corners START and another corner END.
- Draw your own maze using the grid.
- Write a series of instructions that would help someone navigate the maze without seeing the walls. You are writing an algorithm.
- Go through each step and make sure that it accurately tells someone how to move throughout the maze with clear and concise directions. Fix unclear instructions. This is called debugging.
- Mark the START and END spaces and the exterior boundary (color helps) on the blank maze. Give your partner the blank maze page and a pencil. As you read the directions your partner will solve the maze by following each instruction.
- When your partner is done with the maze, place it on top of your maze sheet and hold it against the window (or a light table) to see the maze below. Did they solve it correctly? If not go back and debug your code.
Mystery Maze #2 Instructions: Loops
In this maze you will incorporate a loop into your design. A loop is an instruction that specifies repeating a series of steps.
Follow the instructions for the Basic Mystery Maze above but this time add a loop by doing the following:
- As you design the maze draw a section that has a repetitive layout.
- Include a loop statement to simplify navigating the repetitive section.
Mystery Maze #3 Instructions: If-Then Statements
In this maze you will incorporate an if-then statement into your design. If-Then Statements determine whether to perform a task based on a true or false condition. If a condition is true then do a certain action.
Follow the instructions for the Basic Mystery Maze above but this time add an if-then statement by doing the following:
- As you design the maze make sure to add a section where an if-then instruction can be used.
- Create an if-then statement when the maze route runs into a boundary. Here’s an example: “If there is a boundary line at the top of the square then move left three spaces.
Mystery Maze #4 Instructions: If-Then-Else Statements
In this maze you will incorporate an if-then-else statement into your design. If-Then-Else Statements determine what task to perform based on a true or false condition. If a condition is true then perform a certain action; if a condition is not true (else) perform a different action.
Follow the instructions for the Basic Mystery Maze above but this time add a loop by doing the following:
- As you design the maze make sure to add a section where an if-then-else instruction can be used.
- Create an if-then-else statement when the maze route runs into a boundary. Here’s an example: “If there is a boundary at the top of the square then move left three spaces, else move right three space.
Massive Mystery Maze Challenge
When programmers write code they often break different tasks down into smaller parts. This is called problem decomposition. Think of each of the smaller mazes/instructions you created as separate tasks.
Now let’s combine two of your mazes and their instructions above to put together a larger maze. This is how programmers would combine different sections of code to make a larger program or algorithm.
Combine Maze #1 and #2 by cutting out each maze board and taping them together. Cut the instructions out and tape those together. Pay close attention to the instructions where the mazes meet. Do the previous instructions you wrote still make sense? If not modify the instructions. Repeat this with all 4 mazes to make one large Mystery Maze and one long program.
Conclusion & More
I bet you never thought you could teach programming to kids without a computer in sight! The truth is that programming is really about learning to write clear, and concise directions, whether that is for a machine or person to use.
If your kids enjoyed these games, check out the Thinking Computationally Module on SAE AWIM’s site here. There are many more interactive games and activities that will get kids into a coding mindset!
Chowdhury STEM Innovation Contest
SAE @ AWIM are sponsoring a wonderful STEM Innovations contest that starts now! The contest is open to elementary and middle school students in the US and Canada. There are $20,000 in prizes and classroom kits so I highly recommend you check out the details here: