Coding for Kids: The Ultimate Guide for Parents
Coding for kids (otherwise known as computer programming) is growing rapidly in popularity. While programming is offered in a small number of traditional schools in the US, a Gallup poll indicates that 90% of parents would like computer programming to be taught during the school day. Even in the schools that offer computer science in the classroom, the level of rigor has been traditionally low, and many parents have chosen to look for outside resources to provide coding instruction.
In this guide, we provide parents with the answers to some of the most common questions that we encounter operating a successful kids coding academy, and we attempt to provide advice on academic approach, curriculum selection, and other resources.
What is coding?
Coding, or computer programming, is a creative process performed by programmers to tell a computer how to do a task. Coding involves writing computer programs using programming languages. Coding for kids is usually taught using content that is high-interest while creating projects that involve creative input.
Why should my child learn to code?
There are a number of important reasons why you might consider introducing your child to coding at an early age.
- Computer science builds skills in a number of corollary areas including math, science, problem solving, teamwork, project based learning, creative arts, and more. As Steve Jobs famously stated “Coding teaches you how to think.”
- Learning to program is just like learning a foreign language. The earlier you start, the easier it is.
- By the year 2020 there will be nearly 1 million unfilled tech jobs in the United States due to a shortage of qualified engineers.
- Computer related occupations make up over 60% of projected new job positions in STEM (Science, Technology, Engineering, and Math).
- Computer programming teaches skills that are instantly relevant in today’s job market.
- Computing powers nearly every industry from education to farming, from law to business, and from construction to medicine.
- Computer engineering jobs rank among the highest-paying for new graduates.
- Coding is the newest liberal art. (Liberal arts were traditionally designed to prepare individuals for civic life and to help students understand the world around them. It is only a matter of time before it is included in core curricula).
What age is appropriate to learn coding?
Coding for kids can be taught as as early as age 5. With the youngest learners, using visual block interfaces or age appropriate text-based coding classes are recommended.
Coding for Kids: General Tips
Tip #1: Make it entertaining
Coding for kids needs to be fun! Not all computer science educators share this point of view. Many still use the “Hello World” method in which students learn to print the words “Hello World” on a screen. In our experience, younger kids find this method tedious, and it can dissuade them from learning how to code. We’ve found that it is actually quite easy to get kids to try programming, but quite challenging to keep them engaged. We recommend staying away from curricula that is too academic, and to focus instead on fun, engaging courses that match your child’s interests. Some students will want to create a custom sword for the best-selling game Minecraft. Others might want to create their own webpage. At CodaKid, we prefer to teach coding by building video games and apps as they provide students with a fun and interactive way to learn coding concepts. Many youth coding clubs and academies are starting to move in this direction.
Tip #2: Find local or online classes
Mark Zuckerberg, the CEO of Facebook, had a computer programming tutor starting in middle school. While one-on-one tutoring with a quality computer science tutor is an excellent way to learn, it can be very expensive and is not affordable for many families. You may also consider searching out group classes as well as online courses that provide live support with real engineers. The best academies and online courses will have well crafted lesson plans that build sequentially on concepts like Booleans, Conditionals, Variables, Methods, and more. As coding for kids continues to grow in popularity, you will see an increasing number of options that will hopefully accommodate your child.
Tip #3: Find a mentor
Many developers enjoy volunteering and you might be surprised at how many might be willing to mentor your son or daughter either online or in-person. Interaction with an experienced developer can be invaluable and many times can be performed over Skype or other free video conferencing/screen share solutions.
What is the best programming language for kids?
With young students, many parents prefer visual block platforms to start. Some however prefer to get their kids typing early.
At CodaKid we focus on Java for our Minecraft coding courses, and we use helper files to reduce some of the complexity especially for our younger students. We have created highly effective method of teaching Java as an introductory coding language, and kids’ natural passion for Minecraft gives them extra motivation to work through concepts like Booleans, conditional, loops, variables, and methods – all of which are universal and can be found in nearly every other coding language. Java also happens to be the language tested by Computer Science AP exam which is desirable for some of our families.
Another language that has grown in popularity is Python. Python is a scripting language that many consider one of the easiest to learn. Python was used to create Instagram, YouTube, and Spotify, and students can even use it to develop a website using Django, a popular web framework.
CodaKid recently introduced Game Development with Python 1 which teaches kids how to create a Fish Eat Fish style game from the ground up.
My child is using Scratch and Code.org at school. Isn’t this good enough?
Scratch is a good, free way for kids to learn coding concepts without using real programming languages.
Code.org has some decent exercises that introduce Scratch-like visual block languages and even some basic text coding in its later modules.
Both are preferred tools for schools as classes can be proctored by teachers that have limited or no engineering backgrounds. Both are fun ways to get your child’s feet wet, but within a short period of time many kids will be clamoring for advanced content that allows them to create their own games, apps, and webpages using real text-based languages and that doesn’t restrict them to closed platforms.
What are some examples of coding concepts that my child might learn?
There are many universal computer science concepts that are found in nearly every programming language in the world. Most will have slight changes in syntax, but the concepts are still understandable by nearly anyone with coding proficiency. Here are two common concepts that are we have illustrated using pseudo-code.
Conditional statements allow a computer program to execute a particular section of code based on whether a condition is true or false. Java uses Boolean values to evaluate these conditions. One of two Boolean values (True or False) is returned when the condition is evaluated by the computer.
Here is a snippet of code that determines when the user’s player jumps:
In the above example, if the player presses the spacebar on the computer, the users player will jump.
Another common coding concept is called a Loop. In this example, a “While Loop” continually performs a command while a particular condition is true, and discontinues the command when the condition is no longer true.
In this While loop, crops will grow in the game as long as the Daytime condition is true.
Curriculum Recommendations: Learning Coding Using Visual Blocks
Osmo Coding (Paid)
Osmo Coding combines Legos, gaming, and coding. Osmo teaches children programming concepts by using magnetic blocks that allow the user’s character to navigate puzzles and other challenges in an iPad game. While the website specifies that the software is designed for students ages 5 to 12, we think that it’s sweetspot for ages 5 to 7. Osmo introduces a compelling, tactile approach to coding instruction and we think that they have great promise for K-2 computer science.
MIT Media Labs Scratch has designed fun visual block platform that teaches coding concepts while allowing students to build fun games with a lot of creative freedom. Google CS designed some well thought out lesson plans that kids can follow, and the coolest part of the platform is that student projects are freely available for review. This allows kids to study the Scratch visual block code that was used to make exciting 2D games like Asteroids, Donkey Kong and more. Scratch also allows students to add their own art, animation, music, sound effects, and voice-over. Scratch does not provide student support at this time.
Code.org has been featured by Hour of Code and is used by many public schools to teach introductory computer science. Code Studio has early modules featuring visual block interfaces interfaces and more advanced chapters that teach text-based code in a closed platform. Code.org has also partnered with Minecraft, Scratch, Tynker, CodeBattle, and others to create modules that simulate the experience of creating games and apps. The strength of Code.org (aside from the fact that it’s free) is that they have partnered with the Minecraft and Star Wars brands, and they have a sequential approach to teaching computer programming. The downside is that kids never quite experience the feeling of building something from the ground up and they are confined to a pseudo environment which seems to encourage drag and drop blocks rather than text. Code.org does not provide student support at the time of this article.
Curriculum Recommendations: Learning Coding Using Real Languages
CodaKid – All Access- $25 per month
CodaKid is a great platform to try when your kids are interested in learning how to create real games, apps, and websites using professional languages and tools. At only $25 per month for over 450 hours of student projects, it is an excellent value. One unique feature of CodaKid is that it’s subscriptions include unlimited access to a team of friendly mentors that will help you through chat or screen share if your child ever gets stuck and needs help.
Codecademy provides free coding courses including lesson plans to help teachers plan computer science classes. Exercises are done in browser and have automatic accuracy checking. Codecademy’s strength is in teaching older students who are interested in text based languages. The closed platform approach prevents students from the actual experience of creating their own software, but it provides a well thought out curriculum map.
Khan Academy (Free)
Visual Block versus Text-Based Coding
Visual Block Platforms
We view drag and drop, visual block programming courses as the tricycles of coding. They are designed to be fun and easy, but are also designed to be tools that you outgrow. Platforms like Code.org, Scratch, Tynker, and others believe that typing should not become an impediment in computer science education, and that kids can learn many of the same coding concepts through a more visual, tactile approach. We think that these platforms can be very helpful for younger learners.
Programs such as CodaKid use real programming languages and professional grade coding tools. But the courses are taught in such a way that students as young as age 8 can follow along and have a fun time learning. The advantage of this approach is that students gain creating real software. Courses such as CodaKid also also provide online mentoring support from real teachers and even screen share sessions if you students encounter bugs or other difficulties.
What type of computer should I invest in for my child?
This decision depends on what your child’s interests, your budget, and what approach you would like to take.
Many online coding courses such as Code.org and Khan Academy are web-based and only require a high speed internet connection. Web-based courses do not require computers with much processing power and will typically run with nearly any computer manufactured in the last 4-5 years, including options like Google Chromebooks.
Providers of courses with real coding tools require a Mac or PC computer with a recommended 4G of RAM and a high speed internet connection. The benefit is that your child will learn how to code using the same professional grade tools and real coding languages used by major software companies around the world. At some point in your child’s computer science journey you will likely reach a time when he or she has a strong desire to use real programming environments and professional tools. Some families decide to do this from the start, while others use web-based tools to begin and then transition to professional grade tools at a later time. We have found that kids build a lot of self-confidence when using these tools, and that when taught with clear directions students as young as age 7 are able to use them.
We are fairly agnostic concerning PC computers, and suggest that you follow the hardware requirements of the course. We also suggest that you read computer reviews on trusted sources like CNET or PCMagazine.
Coding for kids is growing in popularity, as many families view computing as a new literacy that will be as important as math and science in tomorrow’s job market. There are many approaches to selecting suitable courses for K-12 students, and there are certainly no “one-size-fits-all” solutions.
The most important piece of advice we can offer is to make coding fun.
Coding for kids doesn’t need to be boring. Yes, it demands patience and persistence, but if kids know that the payout is a project, game, or app that they are interested in, they will put in the work. If it is taught the wrong way, coding for kids can seem like a boring typing class or even worse a 50 step math word problem. If you choose well, however, you will give your kids a new skill that is both fun and academic, and you may be surprised to see the positive effects that it has on their academics and self-confidence.
Have any other tips or advice for parents looking to teach their kids how to code?
Please leave comments or questions in the comments section below!