Coding for Kids: The Ultimate Guide for Parents

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.

  1. 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.”
  2. Learning to program is just like learning a foreign language. The earlier you start, the easier it is.
  3. By the year 2020 there will be nearly 1 million unfilled tech jobs in the United States due to a shortage of qualified engineers.
  4. Computer related occupations make up over 60% of projected new job positions in STEM (Science, Technology, Engineering, and Math).
  5. Computer programming teaches skills that are instantly relevant in today’s job market.
  6. Computing powers nearly every industry from education to farming, from law to business, and from construction to medicine.
  7. Computer engineering jobs rank among the highest-paying for new graduates.
  8. 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: Start with one language

Many parents at CodaKid’s coding academy research the latest programming languages, and want to expose their children to as many of them as possible. We think that this is a mistake. In our experience, it is a far better to study one language and to gain proficiency in it rather than developing a shallow understanding of multiple languages. Once you know one language well, it is quite easy to pick up the syntax and conventions of other languages. Introducing multiple languages too quickly can cause confusion and force the student to concentrate more on syntax rather than on coding concepts.

Tip #3: 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 #4: 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/screenshare 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.

Our advice is to always let your child’s interests dictate your choice of a language. If your student is interested in Minecraft coding, then Java or JavaScript will be the language you may want to consider. If your child is interested in robotics, you can research the coding languages utilized and try to find courses that use the same language. Some of our favorite DIY robotics kits use scripting languages such as Lua and Scala which are both child-friendly. If your son or daughter is interested in building a website, you will want to consider HTML and CSS, and if she is interested in building apps you might want to consider a language like JavaScript or Swift.

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.

JavaScript is our language of choice for 2D game development and app development. While JavaScript is an essential tool for front-end developers, it has become one of the fastest-growing languages in the world due to the popularity of its server-side language (Node.js). Node.js and JavaScript are used to run PayPal, Uber, Netflix, LinkedIn, and Medium. Below is a screenshot of the game that CodaKid’s online students learn to build from the ground up in our App Development — Infinite Runner online course.

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.

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:

Conditionals

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.

Loops

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.

Scratch (Free)

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 (Free and Paid)

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 — Minecraft Mod Creation — The Adventure Begins (Java) (Paid)

If your children are into Minecraft, CodaKid’s Mod Creation: The Adventure Begins will teach them how to create Minecraft Mods using the Java programming language. One unique feature of CodaKid is that it provides online mentoring support from a friendly team of teachers who answer questions and even do screen-share sessions with students. While it is pricier ($249) than some of its competitors, CodaKid holds many sales throughout the year and also has a scholarship program that gives significant discounts. Clients receive unlimited online student support for 12 months which we think is worth the price of admission.

CodaKid — App Development — Infinite Runner (JavaScript) (Paid)

If your child is interested in building a real video game from the ground up, CodaKid’s App Development — Infinite Runner is an excellent course for beginners. The courses teaches JavaScript, and students walk away at the end with a professional quality mobile game app in the vein of the best-selling game JetPack Joyride. As with all of our online courses, CodaKid provides online support from responsive teachers via messaging and screenshare. CodaKid’s teachers have all passed rigorous national background checks and are experts in the course content.

Codecademy (Free)

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)

Sal Khan has created a series of videos that are designed to provide free education to the world. Funded by Bill and Melinda Gates Foundation among others, Khan Academy has begun a series on computer science that teaches JavaScript basics, HTML, CSS, and more. There are video lessons on a number of topics ranging from making animations with JavaScript, making webpages, making 2D games,, and more. At this time, many of the tutorials do not contain videos, but instead provide written instructions better suited to high school and college students. Khan Academy does not provide student support at the time of writing.

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.

Text-based Coding

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 7 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.

Conclusion

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.

We hope that you found this article useful, and please each out to us anytime if you had questions or comments.


Originally published at codakid.com on December 15, 2016.

Show your support

Clapping shows how much you appreciated CodaKid’s story.