Want to teach your kids to code? Here are three apps that can help.
Like many of you, I am a coder with kids at home. What better time to start exposing our kids to the career we all think is amazing! You do think programming is amazing, right? 😀 Well, even if you don’t, coding teaches kids the fundamentals of logic and encourages them to think abstractly. Let’s face it, technology is only going to become more pervasive over time, so even if your kids go on to be plumbers, doctors, or teachers, they will likely have to interface with technology in their career of choice.
Before we go any farther, be sure to temper your expectations about what your child will gain from these apps. None of these apps will “teach your kids to code,” but rather, they are the first step in a journey toward understanding basic logic, analysis, and design. These are the building blocks to coding and a more sophisticated understanding of information systems and processing. Above all the end goal is to have fun!
To see what’s available for kids, I (and my daughter) reviewed three coding apps—Scratch Jr., Codespark, and Kodable—though there are many more to choose from. My daughter is six years old and just started first grade. For each of these apps, I first downloaded them myself and worked on a few of the challenges. I then presented them to my daughter in a non-threatening way; like “Hey, check out this new app I found,” and I would work on a challenge while she watched. If you have kids you know it only takes them about ten seconds of watching you do it before they say “Let me try!” I then let her “play” and only jumped in when she asked for help or became visibly frustrated with a level or task. After this point, I mostly just sat back and made note of if/when she would return to the app on her own.
While homeschooling, my partner and I decided no TV or games during working hours, so if we were not working on a particular learning task, I would say to my daughter, “You can have screen time, but it has to be educational.” In addition to a handful of other learning apps, she also has the option to play on the coding apps. The majority of use in our family was on an iPad. I did some testing on a Fire HD 10 with Scratch Jr. and Codespark. Kodable does not have an app for Fire, though it can be used in a browser on Amazon Fire.
Scratch Jr. was developed by Tufts University, PBS Kids, and the MIT Media Lab and is an offshoot of the popular Scratch App. While Scratch is intended for children eight and up, Scratch Jr. was created for younger kids ages five to seven. Scratch Jr. has a similar look/feel to Scratch and is based on the same idea of creating interactive stories.
Scratch Jr. allows kids to create artboards and stories with characters that can talk and move around the artboard. Scratch Jr. does not expose kids to any actual code; rather, it reinforces coding concepts through the use of puzzle pieces (drag-and-drop programming) that allow kids to control their character. Each puzzle piece designates a different action or movement. Kids can not only select the order of the movements of their character but they can also use loops and functions to repeat actions.
Kids can modify just about every aspect imaginable for these stories from the clothes and colors of the characters and backgrounds to the making audio recordings and text subtitles to add to the stories. Scratch Jr. has a more creative feel and doesn’t feel as “computer science-y” as the other two apps, and that’s not a bad thing. It really depends on your goals as a parent and what your child enjoys. If the task or challenges become too onerous, your child will quickly withdraw, so the fun factor is a must. As you can see in the image below, the artboard can be a little busy especially for younger kids. I can’t stress enough that introducing these apps to your kids really has to be a collaborative effort between you and your child. In the beginning, you may need to hover and help them along as they explore.
Platform: iOS, Android
- Good introduction to basic logic
- Lots of creative freedom
- The price is right (free!)
- Non-profit, so limited active development
- Not as technical
- Formal curriculum is less well developed
Kodable was founded in 2012 and, along with CodeHS boasts, a K-12 pathway for kids to learn to code. Kodable offers kids the ability to create and customize characters in addition to drag-and-drop style programming that is common to all of the apps covered in this article. However, Kodable puts its own spin on drag-and-drop programming by challenging your child to use
loops and functions to move their character through various mazes. These challenges were the best implementation I saw in all the apps I tested for improving logic and problem-solving.
Beyond drag-and-drop programming, Kodable exposes kids to actual code even though they are not actually typing out the code themselves. In the image below, you can see an example of this.
The code is pre-filled in the text field at the top and kids drag the closing tag onto the screen below to stop the green slime from attacking their character. This is an interesting approach. My daughter enjoyed this particular game, but I’m unsure about how much the coding part of it actually sank in. However, I think the idea is that later, in more advanced lessons, kids will actually begin to use the concepts you see here like instantiating new objects and setting object attributes in code they write themselves.
Kodable offers robust parental login where you can see your child’s progress. You can create multiple profiles, so I created my own profile to experiment with the games and levels before my daughter reached them to be more helpful when she reached them.
Platform: iOS, Web Browser
Price: 7 days free/$6.99 a month/$49.99 a year/$120 lifetime
YouTube Channel: https://www.youtube.com/user/kodablekidscancode
- Full k-12 curriculum
- Good exposure to more advanced programming concepts
- Regular email promotions with code/game challenges
- Learning path is not always clear
- Some challenges are to difficult with no clear solution
Code Spark employs the same drag-and-drop-style logic games as the other apps, but has more of an arcade feel to the games. My daughter seemed to enjoy the games in Codespark the most of all the apps I tested. More than once, I have found her playing games in Codespark without any prompting.
Below you can see a screenshot of one of the drag-and-drop games using loops.
The “Explore” section of Codespark introduces kids to more sophisticated programming concepts like variables and inequalities, stacks and queues, and boolean logic. Some of the games that help reinforce these concepts are better than others and, for many of the games, it will require some hand holding to help your child through the levels. I found some games in Codespark are not very intuitive, and like a lot of learning in programming, the tasks end up feeling a bit contrived. Below is an example from the “Stacks and Queues” game where you have to choose the order of animals from the platform to fill the appropriate character at the bottom.
The example above is a game that is super fun and challenging, but my daughters attention span began to wane after a short time. So again, making sure the games are fun and engaging while still reinforcing programming concepts is the line these apps are trying to walk.
Platform: iOS, Android, Web Browser
Price: 7 days free/$7.99 a month
YouTube Channel at https://www.youtube.com/channel/UCRDYihW5bt2bFeZZNjM6alw
- Good use of gamification
- Exposure to advanced concepts
- Need to sign up for teacher account to get lessons and formal curriculum
Kodable and Code Spark have a more complete curriculum that kids can follow as they get older, whereas Scratch Jr’s is pretty limited. Both Kodable and CodeSpark have a curriculum for educators and offer robust parental login controls where you can see your child’s progress.
In the end, you really can’t lose with any of these apps. However, Kodable and CodeSpark definitely offer a more well-rounded experience for kids and a lot of more features that we have come to expect in modern apps. For less than $10 per month, the bar is pretty low for giving these apps a try and see how your kid likes them. Having these apps available to your kids also gives some nuance to their screen time. So rather than screen time being an anything goes experience (which means video), you can add “educational screen time” to their options.
I hope you found this article useful and, if there are programming apps your kids are using, let us know about them in the comments below.Tags: learning to code, tech for kids
I’ll admit that I don’t really understand the obsession with trying to get kids into code. I think society would be much better served by encouraging kids to go into medicine – a field that is increasingly tragically understaffed with a need that’s growing.
I love all things software, but at this point most of it is just to make society either a) lazier and/or b) more 24/7. Neither seems very beneficial to me in the large scheme of things (unless you think AWS telling us the chance of an NFL touchdown being 13% is somehow making the world a better place).
Cynical answer: It’s because teaching a kid to program and letting them turn into code monkey wage slaves writing low-quality Java is what our corporate masters want. They don’t actually want kids to have computer skills, just skills that are beneficial to them. That’s why most programmers who joined because “coding is cool!” don’t even know what a function call ABI is or how the stack works.
If that’s what your your corporate masters need, then maybe let them look into GPT-3 : a code churing AI API.
An alterative to code monkeys that won’t report sick days.
Maybe writing a neural network that can classify diseases based on some markers in the blood? Maybe genome sequencing to create novel ways to cure some illness? Maybe computer-assisted surgery? Maybe automated analysis of fmri scans? Maybe create a program that can do anamnesis so people in third world countries can get medical support even when there are no doctors available? Maybe teaching how to code can help developing an understanding for technology even if kids end up working in a different field? Maybe finding a „toy“ with which kids can play an learn something at the same time?
Completely agree. Also, the average kid out there would benefit much more to learn how to solve computer user problems, how to avoid malware & creepy people on the Intenet, how to use scepticism when reading social media barf etc etc.
Similarly, the average person would benefit from training in driving a car. Then from there maybe training of how to do change tires or do simple car repairs. They do not however benefit from training in how to develop specific car parts. Yes, someone has to become an engineer and design the car. But not _everyone_.
I see today and more so in the future, programming and analytical problem solving as a basic skill, just like reading & writing, an asset in most professions.
Do you think doctors just magically figure out what’s wrong with you? Do you think medical technology doesn’t exist? Do you think tech plays no role in medical treatment or the improvement of medicine? Technology absolutely benefits society and the medical field. We don’t have a shortage of doctors or nurses. Not to mention its up to parents to teach their kids healthy habits and ensure they stay active so they bring that into adulthood. What’s that gotta do with kids wanting to program? Plus not every person wants their kid to take on hundreds of thousands in debt.
Don’t forget classics like 7 billion humans https://store.steampowered.com/app/792100/7_Billion_Humans/
For kids I think its perhaps more valuable to get them to problem solve like a programmer, to get them to think like a programmer before we try to teach them to code. Otherwise you end up trying to teach too many concepts concurrently, its not that it can’t be done, but its hard to assist them on their journey when its hard for them to determine the difference between logical concepts, procedural concepts and language syntax and limitations.
I agree to @TJ
People should be redirected to a random medlineplus.gov page everytime they click on the “Post Comment” below, instead of actual posting, in order to “make the world a better place”.
Or you simply do none of that and don’t give your kids any apps and limit screen time as much as possible. With small children (less than 12 years) there is a clear benefit of them doing anything else than using ipads or looking TV, every education psychologist will tell you this.
Why programmers then still insist to included all their digital stuff onto their children is a mystery to me.
You want your child to be able to program or to even be a programmer? Get them interested in Math and puzzle solving and such things, because programming is basically “Applied puzzle solving”.
I agree with Dirk. Math and the ability to read and translate the problem statement words into logical expressions, learning that solving ANY problem (mathematical or otherwise) requires stepwise breakdown into smaller and smaller problems THEN one can solve each smaller problem working back up to finally solving the original problem.
Giving kids gradually more complicated problems, puzzles to solve, based upon what they know at the time from life, will help them find their way. Solving problems in life is important no matter what field you go into.
So basic learned skills in all subjects, including how to best work with others with good interpersonal skills is what kids should be guided into. Then when they mature, as they mature, they will find and follow their real interests in life and likely be very successful.
“Non-profit, so limited active development”
Like, say, Signal? Or Python? Or…?
This claim about causality is quite ideological and not particularly fact-based , wouldn’t you agree.
It seems that having to pay USD 7 per month is not considered a CON… :-/
Otherwise, thanks for the overview ! Really appreciate the pros/cons analysis of each.
I would like to suggest another approach for getting kids to learn to code, especially girls: https://imagilabs.com. They are a Swedish startup founded by 3 girls who did a lot of user research for how to make girls _discover_ coding, rather than learning it. Their little device is super cool and the coding app is easy to use, getting the newcomers straight to the point, without burdening them with a lot of coding before being able to use the device.
TJ this is a good big picture point, but maybe more for older kids and other times. These programs are geared to kids who are 8-12 years old. Kids this age typically have tons of interests and short attention spans. We probably don’t need to fast track them for med school just yet. Plus, during covid lockdown, it is a pretty major victory to get my kid to do anything, so I will take whatever I can get.
A small number of children have a future in software development. Aptitude is a small part of that. I think people can learn anything if they want to.
Wanting to is the larger part. Not many people can do it without hating it. Most people who think they can’t could – they just wouldn’t like it.
Then, if someone can enjoy it, they still might find something else they’d rather do instead.
That leads back to my premise that a small number of children have a future in software development.
Given that everyone needs to grow up to do something, I recommend at least exposing children to it so that if it happens to be their thing, they’ll discover it. There are probably a lot of people who are either unemployed, struggling, or hate their jobs, and who might be software developers today had they been exposed to it.
We don’t need to push them toward it. We just need to give them a chance to try things out. We already do that in school with things like painting, agriculture, carpentry, mechanics, and sports. (Any child is more likely to be a software developer than a professional athlete.) If it attracts them they’ll do it. If not they’ll move on.
We blunt its purpose and insult their intelligence by making it look like a video game. If writing code interests them at all they can learn the syntax of a real language. Plenty of children younger than 10 years old have done so. They can use the same entry-level tools available to adults.
> We blunt its purpose and insult their intelligence by making it look like a video game. … They can use the same entry-level tools available to adults.
lol Maybe your genius kid can use the same tools as adults, but the kids I work with love the graphical progamming available with things like Scratch. And they are learning real programming without the need for gatekeeping.
How about Lightbot? A fun way to teach kids about programming concepts by configuring a robot to move, rotate, jump, avoid obstacles, and light tiles.
Thanks, everyone for the comments. I won’t speak for everyone, but for me personally, my goal with my daughter is to expose her to as much as possible; coding included. I also set up a tennis net in the driveway at least once a month in hopes she will become a professional tennis player. 🙂 I think the “devil is in the details” with all of this. Exposure to all of these things should be done in a loving supportive way; always giving deference to your child and their interests.
Someone also made reference to the analytics and problem-solving goals. I think those are probably most important; as those will apply to whatever discipline your child chooses in life.
Thank you for the time to write it down so everyone benefits from your research.
My kids have played around with scratch: from the day they were able to read, they started liking scratch.
I didn’t know about scratch jr back then, maybe my yougest (not reading yet) can start with that now though, –> Thanks.
they also enjoy playing with cubetto, an off-screen programming logic game.
For context, I started coding when I was 9 with “programming for dummies” and “A Book on C” as my guide. I do not recommend this approach for anyone of any age. However I’m also disappointed by these options. The following is my conclusion after taking a hard road to get here: The biggest barrier I had learning to code was graphics and libraries. Libraries are an endless nightmare of compatibility issues, error codes, hidden code, sparse/verbose/low effort documentation like:
ActivateGraphic() //Activates the graphic.
Graphics require libraries, which is hard enough, and are also in no way designed for learners. Everything is an endless rabbit hole of options for optimizations, special effects, camera angles, realism, etc.
I can’t stress this enough, *seeing* your code work is the bare minimum for positive reinforcement, without graphics and libraries it feels like you’re using a glorified calculator. “look mom, I set a variable to 10 and added 2 to it 50 times using a for-loop” really isn’t going to motivate anyone, but watching a graphic move 2 pixels 100 times can. All that said, I think junior coders would benefit the most from 1) an absolutely simple barebones graphics library. Load image, display image at coordinates, image layers, not much else. Maybe even clamp displayed images it to the edges of the window so it can’t be not-showing. 2) an absolute encyclopedia of examples for learners to freely try, edit, mix and match, including some basic classes to facilitate animation. 3) a way to visualize which line of code is active currently, pause, step through code, run one line per second, etc. 4) basic syntax underlining and simplified error messages.
When my kids were little I started them on Robocode: https://robocode.sourceforge.io/ They enjoyed it quite a bit. They eventually went into mechanical engineering for their degrees but they still remember it as a fun thing they did as kids.
As a veteran educator (& programmer)
For early years don’t force – play together, encourage curiosity and respect that young learners attention will flit between many things as the world is so new to them.
Examine your experiences, preconceptions and expectations of learning.
Learning programming for me in 1984 was difficult and painfully frustrating and I am happy that visual code and gamification provide a fun way to achieve the same result.
The value of learning is not equal to the pain it took to achieve.
Pay close attention to your children’s learning, nothing is more disheartening to a child than repeated failure, but lack of challenge will create boredom and they will gravitate towards something more fun.
So consider what the next step is and have it in place for when they are ready to progress.
You are the most important person in their world, so never show disappointment or frustration at their progress. Praise their achievements, and encourage robustness by getting them to understand that failures (& code bugs) are inevitable and opportunities to learn how or why we failed.
Lastly, should we teach programming early?
IMHO absolutely! On a Happy Potter theme, I consider it to be the “Defense against the dark arts” of the next generation, to understand and combat some of the toxic technologies our society has today.
Forget about buying your kid a good ol’ simple toy after they’ve learned how to code. By the time they’re ten you’ll either get them the robots they want or they’ll start screwing around with the house’ automated systems. For decades, there have been ‘rumours’ about apps and games programming people rather than the other way around. I’d be especially weary of such things when our app stores out there are basically loaded with some company’s personal “brain hacking” projects. If adults are too caught up in it to save themselves, then who exactly is supposed to screen these apps for the little ones?
That said, computer skills are a must have. The computer is human-kind’s most prominent tool, and the earlier our kids learn to use them the better. Kids are like raw ideas just walking around on two feet, if we expect them to invent anything then they need a little coding and a little basic electronics in their fanny packs.
Colobot. Was and will be best game for kids.
Check out Catrobat’s PocketCode -> https://play.google.com/store/apps/details?id=org.catrobat.catroid
Open Source and completely free – even add free!
It’s based on the constructionism uproach, so it’s designed to be used by the young 😉
Thanks for listing these apps! Getting kids to learn skills like coding early on can be a huge boost to their academic and career aspirations. I’m really happy to see more coding-based resources for kids popping up in the form of these useful apps. My daughter has actually been using some of these to practice coding that she’s learning in this new program called Innovator at Moonshot Junior. She’s only 11 but she has already learned quite a bit of Python and Java. Such apps help her practice and review the concepts after her classes at Moonshot Junior.
Thanks for this helpful blog post! Some really cool ideas here. After reading your blog post I have a better understanding of how Scratch jr works. Regards
Very good blog,thank so much for your time in writing the posts.
This is a great blog for kids to learn skills. I appreciate you sharing your research and writing it down so everyone can benefit from it.