Parents and teachers are aware of the many benefits of coding or programming for kids and students. Among other benefits, kids learn computational thinking, problem solving, and prepares them for skills needed in a world that is increasingly dependent on technology ran by computer programs behind the scenes.
For kids, coding does not have to be tedious and difficult. There are currently several ways to make coding as fun and engaging as playing. Creating something new that works is exciting and gives kids a sense of accomplishment.
Kids as young as 7 can begin learning the principles of how to program and how programming works by using games, apps, interactive websites that teach coding, classes and boot camps with lessons catering to kids. Even younger kids can learn the principles of coding from playing with educational toys and board games strategically designed to teach coding. Indeed, there is no shortage of engaging educational resources.
The only question is where the best place is to start.
The answer will depend on the age, aptitude and interest of the child.
Best Ways for Kids to Learn Programming
Younger kids, around 7 to 11 can begin learning the principles of programming by learning block programming. Block programming have a visual interface and consists of dragging and dropping blocks of instructions to be executed in order. It is a great way to build a logical thinking foundation such as creating sequence, conditional statements, loops, functions, and debugging. The kids are able to create programs or instructions to the computer without learning the syntax of a computer language.
Older kids 11 and up, or younger kids with strong interest to program can learn the more advanced text-based programming, where they create computer instructions in actual code or text using actual computer language.
Keep in mind though that every child is different. Some kids take a larger amount of time to learn the concepts while others who are naturally inclined to computational thinking breeze through learning even at a young age.
Although kids can use many of the existing resources without parental help, the important thing is not to put pressure on kids to learn programming, as it will defeat the fun factor of these resources, and programming will become a chore.
Here are the best resources that teaches your child how to code:
Learn from Block Programming – Kids 7 to 11 (or younger)
- Scratch – Developed by Massachusetts Institute of Technology (MIT) for kids aged 7+, Scratch is a simple visual programming language where kids drag and drop chunky blocks that simulates the structure of computer program. The program then runs with a click of a button. It is easy to learn for beginners. Kids do not need to learn computer language or to program through text inputs. What makes it engaging and fun for kids is that colorful cartoon characters are controlled by the program to create animation, complete with a variety of images and sounds. With Scratch, kids are able to create games and stories. Note: To make the experience more fun for kids, you can combine it with “The Super Scratch Programming Adventure”
- Alice – Alice is another excellent tool to introduce kids to programming. Similar to Scratch, Alice also uses chunky blocks of instructions that kids can drag and drop for them to create a program. It effectively teaches kids the concepts of object-oriented programming without getting too heavy on code. The difference is that kids can use 3D graphics to create animations, stories and games that they can share on the web. If your child finds a 3D environment more appealing, then Alice is a better choice as his introduction to coding.
- Tynker – Tynker is similar to Scratch and Alice in that kids visually work with blocks of codes to create fun animations, and play a suite of games. It differs from the other two sites in that Tynker guides the child through courses. It is, however, a commercial product and is aimed at selling these courses. Also, Tynker is not only web-based, but can be used with tablets and smartphones.
- GameSalad (Mac OS, Windows) – For kids who want to create games for Android, iOS and the web, GameSalad is a paid platform that also uses a visual editor to teach programming concepts, game design and digital media creation with help of online support.
Games & Apps
These are top-rated games and apps that teaches your child how the basic principles of programming by visually drag and dropping blocks. It’s all about engagement, and there’s no need yet to learn an actual programming language:
- ScratchJr (Android, iOS, 5 -7) – ScratchJr differs from Scratch in that ScratchJr does not require kids to have basic reading skills to be introduced to coding. It is a much-simplified way to learn coding at a younger age, but it still enables them to create their own interactive stories and games. Like in Scratch, children snap together graphical programming blocks to make characters move, jump, dance, and sing. Children can modify characters in the paint editor, add their own voices and sounds, even insert photos of themselves — then use the programming blocks to make their characters come to life.
- Hopscotch (iOS, 7 – 10) – Also a simplified version of Scratch that teaches young kids to code to create games.
- Move the Turtle (iOs, Ages 10+) – This iPhone game teaches basic computational thinking using a colorful, graphic cartoon environment featuring a cute turtle. Kids read the instruction and try to complete tasks by moving the turtle on the screen.
- Lightbot Programming Puzzles (iOS, Android, Age 9+) – This is a programming puzzle game that teaches concepts like planning, testing, debugging, procedures and loops while having fun getting a robot to light up everything in one turn. The game introduces children to concepts like loops and if-then statements by asking them to solve puzzles.
- Kodable (iOS, Ages 5 to 8) This game for the iPad introduces kids to programming concepts like conditions, loops, functions and debugging while solving mazes. Everything is visual, and can be played by kids who does not know how to read yet. The object of the game is to drag and drop commands into an instruction set to guide a fuzz through a maze on the planet Smeeborg.
- Roboozle Droid (Web, iOS, Android, Ages 6+) – Puzzle games have a lot in common with programming. Roboozle Droid teaches fundamental programming skills by making kids guide a robot through a series of maze using arrows and colored tiles. The functions that kids program start off as simple, but becomes more complex with the use of loops, stacks and recursion.
- Machineers – (Android, iOS, 8 – 14). In this puzzle adventure game, players fixes broken machines using coding principles, teaches logical thinking and programming skills through using the mechanical parts as metaphors for programming concepts.
- Coding Games For Kids – Learn To Code With Play (Android, 5-8) – This app consists of 11 coding games for kids such as Little Firefighter and Ice Cream Time that will teach them sequencing, loops and functions. It has colorful, cartoon animation that younger kids will find engaging.
- App Inventor (Android, 10+) – In this app that was originally created by Google, but now maintained by MIT, newcomers learn to create software applications for Android in smartphones using drag and drop graphical interface similar to Scratch.
Learn from Text-Based Programming – Kids 11 or older (or younger with high aptitude)
- CodeMonkey (Web) – teaches real world programming language by playing a fun online game by programming an adorable monkey to get all its bananas back from the bad gorilla who stole them. Kids learn coding by solving a variety of puzzles that becomes progressively challenging, and provide the right guidance at the right time.
Other Programming Sites (for All Ages)
- Code.org (Web) – A great programming learning resource from a non-profit site whose goal is to expand access to computer science in schools and increase participation of women and underrepresented minorities. It contains a variety of coding lessons and tutorials that appeal to young kids and beginners, including Hour of Code Activities where students are introduced to coding in just one hour. It also encourages coders to collaborate and share. It is free and supported by donors.
- Made With Code (Web) – This project from Google aims to encourage girls to pursue careers in computer science. The site introduces kids to computer science concepts by dragging and dropping graphical objects. Although the site contains mainly beginner projects, it links to other resources where learners could create more advanced projects.
Games & Apps
- SpriteBox Coding (iOS, Android) – Kids play with an adventure game that gets them to code. It starts with icon coding, and then slowly advance to using real Java syntax.
- Codemancer (Windows, iOS) – In this fantasy game, players code their way through a fantasy world full of rival sorcerers and minions. It has a female protagonist, and thus might be able to entice girls more. It teaches variables, conditionals, and functions.
- Pygame (Windows and other platforms) – Kids use the Python programming language to create games. Python is a relatively easy programming language, and is a great first language for the beginner programmer. It is also very useful in the real world. Many of the concepts involved in learning Python are very similar for learning many other languages. Pygame makes learning Python interesting for young learners.
The principle of coding can be introduced to kids in a variety of ways where they find the most fun. In addition to digital screens and online resources, kids can learn computational and logical thinking by playing specially designed board games. Kids are unaware that while they are playing, they are learning the fundamentals of programming. These appeal to kids who would like to enjoy games that are played socially, since playing with board games enables friends and family to join the fun. It also provides a great opportunity for bonding. Below is a list of highly rated board games that trains kids’ brains for programming:
- Robot Wars – Players create instructions to robots to win a war. The robot executes the code through sequential logic. Java code is blended into English commands so all English-speaking players can play the game. Read more details here.
- Robot Turtles – This game, inspired by the Logo programming language, can be played by kids 4 and up. Kids learn to write programs by dictating the movements of their Robot Turtle tokens on a game board by playing Code Cards: Forward, Left and Right. When a player’s Robot Turtle reaches a jewel they win! Kids use limited syntax, sequence instructions and debug.
- Code Master Programming Logic Game – Kids travel to an exotic world in search of power Crystals. They use Action Tokens to create a program that will lead their Avatar to collect all the Crystals on the map and land at the Portal. The fun adventure game builds planning, sequential reasoning, problem solving skills and advanced coding concepts.
Though less fun than games and apps, reading and being guided by books is one of the most effective way to learn programming. Books can provide a deeper, more comprehensive knowledge than even most online resources. Learning through books works best though for learners who are very motivated, and are inclined to self-study.
Here are some of the best books that introduces programming to kids:
- Hello World!: Computer Programming for Kids and Other Beginners – a popular and well- reviewed programming book that “a 12-year-old” can follow. It is a great introduction to what programming is and does, with amusing illustrations, and uses Python as an introductory programming language.
- Coding Games in Scratch – This is a great visual guide for kids using Scratch as an introduction to coding. It uses “fun graphics and easy-to-follow” instructions for kids to be able to create projects like games and puzzles.
- Python For Kids For Dummies – Python is one of the best languages to start with when starting coding. Kids are introduced to computing concepts by learning Python language and creating 10 fun projects.
Kids who are inclined to work with devices and electronics can enhance their learning by using programmable circuit boards to work on projects that can control objects in the physical and digital worlds. It is a great introduction to the world of computer engineering, electronics, and robotics.
- Arduino – This little device consists of a programmable circuit board and software. It uses the computer to write and upload computer code to the physical board. The Arduino device allows lets you easily control physical components with code. Kids can experiment with coding and see how it affects the physical world. You can introduce your child to working with Arduino with an official starter kit. There are several books and websites that introduces young people to creating Arduino projects. Here’s a video of someone who built and programed a simple robot.
- Raspberry Pi – This is a credit card-sized affordable computer that can be used to create fun, practical projects, and at the same time teach basic computer science. Like actual computers, the Raspberry Pi can perform many things that desktop PC does. Like the Arduino, there are plenty of books and websites that teaches Raspberry Pi projects (Video: What can you do with a Raspberry Pi)
- Lego Mindstorms – This is also a hardware and software platforms that make kids build programmable robots using the classic building block toys we all know and love. This is a great approach for kids interested in Robotics. It uses the EV3 programming language to manipulate kids’ Lego Mindstorm robot creations.
Classes and Boot Camps
There are always classes and bootcamps that teaches coding for beginners and kids. Consult your local newpaper and make a Google search for “coding bootcamps for kids” to see what is locally available.
Best Programs to Start
After your child is trained on logical and computational thinking from dabbling with visual programming by manipulating coding blocks and playing games using simple text coding, the next step is to learn real world computer languages. To decide which program to learn next, consider what your child’s interest is, his aptitude, as well as the language’s popularity so that it will benefit them in the future.
Here are programming languages that are not only relatively easy to learn, but are also practical and popular in the real world:
Python – a logical next step to learning Scratch. It is a relatively simple language, as it is very similar to English, but powerful and versatile enough for your child to do cool things. It is a great entry point to learn artificial intelligence and cybersecurity. If your child is using Pygame, he is already familiar with Python.
Other programs your kids might want to consider are:
C# is similar to Java, and is used for creating Windows apps.
Smalltalk is a fun language, and designed to teach programming to young people. It is the best way to learn object-oriented language.
Some Tips to Inspire Kids to Start Programming & Be Inspired
Keep it fun – Let them enjoy creating games and other fun stuff using visual blocks before they advance to more serious text coding. Give them projects where they can be creative, and where they feel rewarded by visible results.
Start with logic building – This is more important to learn than syntax or the language of programming.
Let your child think think – Don’t help him by providing answers.
Let him make mistakes – Programming is sometimes learned by trial and error.