Coding for Homeschoolers: The Ultimate Guide for Parents
Computer programming, otherwise known as coding, has become a hot topic in the homeschool community. While coding is currently offered in a small fraction of traditional schools, homeschooling provides a unique and conducive environment for computer science instruction.
Teaching coding can be challenging for homeschool parents, including those with engineering backgrounds. There are many homeschool curriculum options to consider, and a number of important decisions to make regarding homeschool computer science curricula, kids coding languages, and academic approach.
In this guide, we provide homeschool parents with the answers to some of the most common questions that we encounter running a successful kids coding academy, and we attempt to provide homeschool programming advice that will help them avoid some of the most common pitfalls in teaching K-12 computer science.
Why should we teach homeschool programming?
There are a number of important reasons why you might consider building computer programming into your homeschool curricula.
- First, by the year 2020 there will be an estimated 1 million unfilled computer programming positions in the United States alone. The reason? There simply will not be enough engineers to fill the demand.
- Second, computer related disciplines make up over 60% of projected new jobs in STEM (Science, Technology, Engineering, and Math).
- Third, computing occupations are among the highest-paying jobs for new graduates.
- Fourth, coding teaches vocational skills that are immediately relevant in today’s job market.
- Fifth, coding builds skills in a number of important areas including math, science, problem solving, teamwork, project based learning, creativity, digital arts, and more.
- Sixth, computer science and technology currently impacts nearly every vocation from medicine to law, from teaching to farming, from political science to business management, and from construction to marketing.
What age is appropriate for homeschool coding?
Coding can be taught to homeschool students as early as age 5. With the youngest learners, using drag and drop or age appropriate text based coding classes is best. You may want to begin with some free resources such as Code.org to explore and see if your child develops an interest, and then seek out some of the paid options if time and finances allow. You may also want to consider Sphero and Osmo for younger kids who respond well to a tactile, drag and drop approach.
How can I teach coding if I don’t have engineering experience?
Even if you don’t have a background in computer science, it’s never too late to learn. Taking coding courses alongside your child can be fun and intellectually stimulating for parents. It will also provide practical value for you as a homeschool educator and as a general user of technology. Some homeschool parents opt to take their child’s courses in advance so that they can troubleshoot common issues and bugs.
Another option is to outsource your computer science classes to local “brick and mortar” or online academies. There are a number of excellent local classes in many cities throughout the world, and a growing number of self-paced online courses that can teach your child how to code – on your schedule. Some online courses even include support including screen-share with real engineers that can help you solve issues and tackle bugs. (We list a number of best-in-class online courses that you might want to consider later in this article).
General Homeschool Coding Tips
Tip #1: Make it fun!
In our eyes, making it fun is the number one rule in teaching computer science to kids. Not all curriculum provides share our view. Many, in fact, still use the “Hello World” method in which students learn to print the words “Hello World” on a screen. The problem with this approach is that many kids find this boring and turn away from coding – sometimes forever. We recommend staying away from curricula that is too rigid and academic, and to focus instead on fun, project-based courses that match your child’s interests. Some kids will want to build a video game. Other students might have an idea for an app. Still others might want to build 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. Another fun way to learn coding is through robotics. There are an increasing number of new robotics classes and DIY products that we will list in our curriculum section below. Please let us know if you’ve found other good ones for us to review as we will be updating this guide with the latest products and services.
Tip #2: Enroll in local or online classes
It is well known that Mark Zuckerberg, 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.
Tip #3: Join or Start a Homeschool Coding Club
Utilize your local homeschool association to locate coding clubs and groups. If you can’t find one – start your own! Alternatively, you may try to get a group of like-minded homeschoolers together to take a group class at a coding academy or with a computer science tutor. One rule of thumb is to be careful about having too wide an age range in your group. Teens will tend to be much faster typers and will often become bored or frustrated if placed in a class with younger, slower students. Younger kids also stand the risk of becoming intimidated or frustrated when placed with older, more experienced students.
Tip #4: Find a mentor
Many engineers 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 and screenshare solutions.
What is the best programming language for kids?
Our developers at CodaKid built a handy interactive quiz that might help you identify some languages that you may want to consider.
At CodaKid we focus on Java for our Minecraft coding classes, and we use helper files to reduce some of Java’s more difficult commands. We have found a highly effective way to teach Java as an introductory language, and kids’ natural passion for Minecraft provides them with the extra motivation to learn complex concepts like Booleans, conditional, loops, variables, and methods – all concepts that can be found in nearly every other programming language. Java also happens to be the current language of the Computer Science AP exam.
Another language that has come into vogue particularly at the university level is Python. Python is a scripting language that many consider one of the easiest to learn. Python was used to make YouTube, Instagram, and Spotify, and you can even use it to build a website using Django, a popular web framework. CodaKid offers several exciting Python Game Development courses that use a professional text editor and allow students to build exciting games from the ground up. You can check our blog on why we believe that Python programming is an excellent choice for young coders here.
What are some coding concepts that my child might learn in homeschool computer classes?
There are many coding concepts that are found in nearly every programming language with some minor differences in syntax. Below we have given you two common coding concepts that are found in nearly every language. For ease of illustration, we have written this in pseudo code.
Conditional statements allow a computer program to execute a certain 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 an expression is evaluated by the computer.
Here is a snippet of code that sets a daytime or nighttime texture depending upon the time of day in Minecraft:
In the above example, if it is daytime, the computer will use a texture to make the Minecraft world appear as though it is daytime (sun, visible clouds, shadows, etc). If it is not daytime (indicated by the “else” command), the computer will use nighttime assets.
Another common coding concept that can be learned through Minecraft coding 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.
Here is an example of how a While Loop might appear in Minecraft coding:
In this loop, a player will be able to fire arrows as long as the number of arrows in her arsenal is greater than zero. Once the number of arrows becomes zero, the condition returns a false value (because the number of arrows is not greater than zero) and no arrows can be fired.
Homeschool Computer Science Curricula Recommendations
There are a number of free and paid options that can give homeschool children a world class coding education in the comfort and convenience of home.
MIT Media Labs Scratch is a fun, closed platform that teaches coding concepts while allowing students to build fun games through an easy and intuitive drag and drop interface. Google CS created some well-crafted lesson plans that families can use that include pacing guides. Best of all, other students’ Scratch projects and their “code” are freely available, and it is fun and educational to study how 2D games like Asteroids, Galaga, PacMan, and more were created. Scratch also allows students to add their own art, animations, sound effects, voice-over, and music, making it a dynamic and flexible educational tool. Scratch does not provide student support at this time.
Code.org (Free and Paid)
Code.org is more modern and slick than Scratch and features a closed platform environment designed for ages 6 and up. It has been featured by Hour of Code and is used by many public schools to teach introductory computer science. Code Studio has age appropriate modules using drag and drop interfaces with the option to write text-based code if desired. Code.org has also partnered with Minecraft, Tynker, CodeBattle, and others to create engaging modules that simulate the experience of creating games and apps. The strength of Code.org (aside from the fantastic fact that it’s free) is that they feature gamification, they have partnered with high-interest franchises such as Minecraft and Star Wars, and they have a well thought out sequential approach to teaching code. The downside is that you never quite experience the feeling of building something from the ground up and you always feel confined to a pseudo environment which seems to encourage drag and drop blocks rather than text. Code.org does not provide student support at this time.
Khan Academy (Free)
Osmo Coding (Paid $29 – $189)
An innovative entrant into computer science education, Osmo Coding combines Legos, coding, and video games. Osmo teaches children computational thinking by using tactile magnetic blocks which allow the user’s character to navigate a series of challenges and puzzles in an iPad game. While the manual specifies that the product is designed for students ages 5 to 12, we think that Osmo is much better suited to younger ages of 5 to 8. We love that Osmo introduces a physical, tactile approach to coding instruction and expect great things from this company in the K-2 space.
CodaKid (Paid – $25 Monthly Subscriptions with Free Trial)
In our opinion, CodaKid has one of the strongest homeschool curriculums for coding. CodaKid has a wide variety of course options ranging from Scratch 3.0 to Minecraft Modding to Python Game Development and more. There is no resource that we’ve found that provides more hours content, and that also includes unlimited support should your child get stuck or need a helping hand. You can start with visual block basics, and move forward into exciting text-based coding projects that will challenge even the most advanced young coders.
CodaKid’s goal is to teach kids ages 8 to 15 to write real code using professional grade programming tools, and to become independent programmers. One unique feature of the service is that CodaKid provides online support from a friendly team of engineers who answer questions and even do screen-share sessions with students as part of the service.
At $25 per month for access to over 500 hours of students projects, we think it’s an exceptional deal for homeschool families. CodaKid’s teachers have all passed rigorous national background checks and are experts in the course content.
Sphero (Paid $19.99 – $139)
Sphero allows children to program toy robots using drag and drop, block based coding interfaces on your mobile device. Their Star Wars BB-8 robot as well as the original SPRK+ are sleek and modern, and are an excellent way to teach younger children computational thinking.
Drag and Drop vs Closed Platform vs Real Coding Tools
Drag and Drop
Drag and drop programming courses are 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.
Some online coding courses such as Code.org and Khan Academy offer several text-based options in which students type code into their closed platform learning management systems. These courses will typically teach a coding language on a proprietary LMS to reduce the chances of student errors and to build a tightly-knit error messaging system that reduces the chance of bugs.
Real Coding Tools
Some programs such as CodaKid use real programming languages and professional grade coding tools. The advantage of this approach is that it gives students the experience of working with professional text editors and real languages. By teaching students real coding languages and using the same text editors that the professionals use, students learn valuable, transferable skills. The best courses also provide online support and screenshare from live engineers who walk students through solutions to their bugs and other issues.
What computer do I need to teach homeschool computer science?
This decision depends on what your child’s interests are and how you would like to approach your coursework.
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 cutting edge 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.
Considerations for Christian and other Religious Families
Good news for homeschoolers is that every coding curriculum that we’ve analyzed is inherently child-friendly and wholesome. This being said, any software suite that allows a student to create characters and animations can also be used to create inappropriate content.
Computer science is on the rise in homeschool education circles, as many families are viewing CS as a new literacy that will be as important as math and science in tomorrow’s world. There are many approaches to selecting suitable courses for K-12 students, and there are certainly no “one-size-fits-all” solutions.
If you might glean one take-away from this article, our advice would be:
Make. Coding. Fun.
Coding is not easy. Computer programming requires patience, persistence, and steadfast determination. If you implement a program incorrectly, kids can easily become frustrated and discouraged. If your coding curriculum is implemented correctly, however, you can inspire students to build their skills and become budding young technologists.
We hope that you found Coding for Homeschoolers – The Ultimate Guide for Parents helpful!
Are there any other suggestions you would make on how to best set up coding courses for homeschool families?