Teaching Kids to Code

Teaching Kids to Code

EdSurge Guide

Every era demands—and rewards—different skills.

In different times and different places, we have taught our children to grow vegetables, build a house, forge a sword or blow a delicate glass, bake bread, create a soufflé, write a story or shoot hoops.

Now we are teaching them to code.

We are teaching them to code, however, not so much as an end in itself but because our world has morphed: so many of the things we once did with elements such as fire and iron, or tools such as pencil and paper, are now wrought in code. We are teaching coding to help our kids craft their future.

In this collection we share many different perspectives on coding, from a university professor's vantage point (MIT's Mitch Resnick describes why learning to code is like learning to learn) to an entrepreneur's reflections from his cross-country roadtrip to bring coding—and his stuffed dog—to classrooms across the U.S.

You can learn to code on your own by dipping into one of over 40 tools for learning to code that we've compiled (check out the bottom of this page). Or if you need more guidance, take a page out of educator Kasey Bell's book and follow her beginner's guide to coding in the classroom.

We should always teach children to bake bread, feed the goats and wield a hammer. But throwing in a little Java could take them a long way, too.

Got your own take on coding? Tell us at feedback@edsurge.com. Or if you want to share your thoughts broadly, post a comment below or give us a tweet @edsurge.

Live from the Classroom


A Comparison of 40+ Coding Tools

There are endless ways to learn programming available online. We've selected our favorite 40+ tools to get you started. Whether you're a complete tyro, robot-hacking hands-on learner, or a "l33t" coder looking for advanced training, you'll find something to help you hone your skills.

Learn Programming Logic

Product Price
Free downloadable software that teaches computer programming in a 3-D environment. Kids can create animation, games or videos to share on the web. There's also quite a collection of resources for teachers.
Monthly subscription service that sends a box of programming challenges for kids, along with lesson guides and other goodies.
$20 to $40/month
Introduces basic programming concepts by asking players to navigate a series of challenging mazes.
Players learn coding logic in this iPad app by using a string of commands to organize crates with a robotic arm. As levels get more complex, the user must create functions and optimize his limited number of moves to meet the objectives.
Code.org Studio
Offers free basic and intermediate modules featuring cartoons and characters from Angry Birds to Star Wars and beyond, for use at home or in the classroom. Teachers can access a dashboard to track student progress.
CS Unplugged
Here's a nifty trick—learning computer science without a computer! This series of logic exercises uses cups, ping pong balls and post-it notes to teach students the logic behind coding. The site also has videos of each exercise being used in a class.
Karel Coding
Self-paced online programming course that's currently used in schools, programming clubs and at homes. The course includes an optional algorithmic thinking pre- and post-test.
Move the Turtle
Based on the Logo programming language, this iOS app helps players learn coding logic by guiding a turtle through obstacles to a destination. Players can also use its composer function to create intricate designs.
Offers free coding courses for kids on Scratch, HTML, App Inventor, Kodu and Hopscotch
Players program a robot's movements on a grid and get it to light up specific squares before they run out of moves. Teaches concepts of functions and nesting.
Turtle Academy
A collection of short, free lessons using the Logo programming language. Students will learn the basics of programming logic in this browser-based program.

Learn to Code with Visual Blocks

Product Price
App Inventor for Android
This MIT-created platform uses visual blocks to allow students to create apps that can be exported to Android devices. Large library of tutorials that get as advanced as SMS texting and GPS. Requires a Google Account to use.
This free iPad app uses a visual programming language similar to Scratch to help kids learn the basics of programming logic, such as sequencing, loops, variables, functions and conditionals.
Free ($0.99 for in-app purchases)
Scratch 2.0
Created at MIT, Scratch popularized visual blocks as a way of learning programming. But don't let the easy interface and cute graphics fool you--users can make and share anything from simple animations to fully-fledged games.
SNAP!'s visual blocks support higher level computer science concepts like recursion, procedures, and continuations, making it appropriate for even college level intro classes. While it doesn't have the same social functions of Scratch, SNAP! can work with the Nintendo Wiimote and LEGO Mindstorms NXT. Comes with a manual and sample projects and can use much of Scratch's documentation as well.
Inspired by Scratch, Tynker has a dashboard to allow teachers to create a more structured way of teaching code with visual blocks. Includes assessment, classroom management, lesson plans, and a built in tutor.
Free to $399 for class account (30 students)

Learn Specific Coding Languages

Product Price
Code Avengers
In-browser exercises and courses in JavaScript, HTML5, CSS3 and Python. Introductory courses are free, with intermediate and advanced courses for $29-$39.
Free to $39 for advanced lessons
Offers free coding courses and curriculum resources including lesson plans to help teachers plan computer science classes. Exercises are done in browser and checked automatically for accuracy.
Karel the Dog just got some new tricks! CodeHS offers full year courses to teach Introduction to Computer Science in JavaScript, AP Computer Science in Java, and a professional development course for teachers.
Free; contact CodeHS for school subscription
HTML5 Rocks
Online resource with tutorials, demos, and sample work in HTML5. Supplementary resource for educators teaching the language.
Khan Academy
Users watch videos, do exercises and play with sample code to learn JavaScript programming basics. Completely browser-based with an interactive player/editor.
This free, downloadable program teaches kids Ruby and can be used completely offline. KidsRuby includes resources from other programs like Hackety Hack and Ruby Warrior. It can be installed on Mac, Linux, Windows, and even Raspberry Pi.
MIT OpenCourseWare
This initiative by MIT puts all of the course materials from the university's undergraduate and graduate courses online. This includes syllabi, reading lists, and sometimes practice questions and video lectures. Covers many formal programming languages and offers advanced theory classes as well. Recommended for students who are self-motivated.
Mozilla Thimble
Sample websites with annotations guiding students to change variables to impact aesthetics and usability. Instructors will want to create their own lessons around the content.
Over 100 interactive courses that cover languages from HTML to Ruby on Rails, and organized according to real-world skills such as web design, backend development and building apps.
$25 to $49/mo
W3 Schools
Extensive tutorials in web development languages like HTML, CSS, JavaScript, XML, PHP, and SQL. Includes interactive sample code.

Games—and Tools to Code Your Own Games

Product Price
Code Combat
In-browser, multiplayer live coding game set in a fantasy world. You play as a wizard who navigates obstacles and battles enemies using Javascript.
Free for first course; additional courses require one-time fee
Blended-learning courses that teach students to design and code educational games using Flash Actionscript, Unity3D, JavaScript, and more. Used as standalone courses or to supplement core classes.
Free. Contact Globaloria about school subscription.
This iPad game teaches the fundamentals of JavaScript by allowing players to program robots to compete in arena battles.
Free (in-app purchases available)
JS Dares
A collection of JavaScript lessons that go from teaching a student about basic syntax to helping them recreate working games. Browser-based and completely free.
Kodable is a freemium educational iPad game offering a kid-friendly introduction to programming concepts and problem solving. For kids ages 5 and up.
Free to $6.99; school pricing available
Created by Microsoft, this program uses a visual language to create games. While the PC version is free, Xbox 360 users can pick up a copy for $5.
Game creation software that allows users to make playable apps for iOS, Android, HTML5, Window, and Mac. The game logic is programmed with visual blocks. The official site has forums and a crash course to get you started.

Learn to Program Hardware

Product Price
A popular choice for hands-on learners who want their code to interact with the real world. Can be used for creating a range of projects in the Arduino Code programming language--from light up coffee tables to robots. Extensive documentation of projects online at websites like Instructables. Instructors take note that LEDs, motors, and sensors cost extra. Fairly involved hardware and programming environment setup time.
Lego Mindstorms EV3
The ubiquitous blocks from Denmark get a technological upgrade. This set allows users to create and program robots through a visual programming language. Big for hands-on learning (with a big price tag to match). Instructors keep in mind that projects require construction and programming time. Support can be found on the Mindstorms forum. Windows and Mac compatible.
Piper combines Minecraft, Raspberry Pis and circuit boards—all in a box. The kit comes with a Raspberry Pi board, a 7-inch LCD display, a power bank, and a hodgepodge of breadboards, wires and buttons. Designed for kids of all ages, Piper challenges players to solve virtual puzzles in Minecraft by using the physical circuit controller to build bridges and switches.
Primo literally takes the concept of “block coding” to create an Arduino-powered toy set that includes a plywood board, a wooden robot, and color-coded blocks that each instruct one move that Cubetto can make.
£170 (currently on backorder)
Raspberry Pi
This credit card-sized single board computer packs a punch! The Pi can be used for hands-on fun like an Arduino and is powerful enough to run a version of Minecraft. eLinux.org has a wealth of tutorials and projects for the tiny titan of the "Maker" world. Instructors take note that LEDs, motors, and sensors cost extra.
Let's get rolling! Sphero and sidekick Ollie are interactive spherical robots that you can program on your iOS, Android and Windows devices. There are dozens of apps available, as well as a growing educator community. These may be the droids you are looking for.
Wonder Workshop
These two delightful robots—Dot and Dash—offer a wide range programming activities for kids ages 5 to 12 and beyond. All you need is a smartphone. While they can operate independently, they're best when paired together, says the creators, since they can sense one another and offer kids more advanced programming challenges.

Wanna Get Serious? Try a Course!

Product Price
Code School
Offers full courses in JavaScript, HTML, CSS, Ruby, and iOS. Students will learn through video and practice coding in their browser--no downloads required! (Acquired by Pluralsight but still in operation.)
Beginning courses in JavaScript, Python, SQL and general computer science. Also offers higher level logic courses in topics like Data Science, Artificial Intelligence, and Computational Neuroscience. Note that classes have start and end dates. Founded by Stanford computer science professors, Andrew Ng and Daphne Koller.
Covers languages like Python, Ruby, C++ as well as higher level classes in Artificial Intelligence and Computer Graphics. Classes are taught through video, PDFs, and tutorials. Students answer problem sets and take tests online. Discussion boards connect students with professors and each other. Note that courses have specific start and end dates.
Envato Tuts+
Full courses in JavaScript, HTML, CSS, Ruby, and other web development tools. Subscriptions are $15/month with discounts for groups.
A collection of video tutorials covering a wide variety of formal coding languages. Beginners and advanced users alike can find lessons to suit their needs. Access to videos costs $25/month; users can access videos and exercise files for $37.50/month.
One Month
In one intense month, claims this startup, you can pick up enough HTML, CSS and Ruby to build websites and web products. Courses come with eight hours of instructional videos and code samples. $49/mo for one course, or $99/mo for access to all courses.