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 50 tools for learning to code that we've compiled (check out the bottom of this page). Or you can pack your kids off to summer coding camp, as Charley Locke explains.

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

Personal Reflections


A Comparison of 50+ Coding Tools

50+ Tools to Learn Coding

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 'leet coder looking for advanced training, you'll find something to help you hone your skills.

"Math Prerequisite" indicates the amount of math a student should know to make the most of a tool: Elementary, Middle, and High School and above. "Prep Time" is relative: some products require hardware setup, user authentication, and lesson planning while others are browser-based and ready to go. Prices (as of May 2013) are as indicated, with any extra fees noted in a product's description.

Have other favorites? Let us know at feedback@edsurge.com

Learn Coding Logic

Compiled by EdSurge

Product Math Prereq Prep Time 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.

Free game that 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.

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.

This iPad game teaches the fundamentals of JavaScript by allowing players to program robots to compete in arena fights. Requires no prior knowledge of coding to play.

Karel the Robot
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.

$2.50/mo - $30/yr
Kodable is a free educational iPad game offering a kid-friendly introduction to programming concepts and problem solving. For kids ages 5 and up.

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. 

Move the Turtle
Based on the Logo programming language, players learn coding logic by guiding a turtle through obstacles to a destination. Players can also use its composer function to create intricate designs.

Robot Turtles
Board game that teaches programming logic to young children.

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. 


Learn to Program Hardware

Compiled by EdSurge

Product Math Prereq Prep Time 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.

These two delightful robots--Bo and Yana--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.

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. 

Sphero Robot Ball
Let's get rolling! Sphero is an interactive spherical robot that you can program on your iOS, Android and Windows devices. There are over 30 apps available, as well as a growing educator community. You can also get Sphero's tubular companion, Ollie, coming in Fall 2014. 


Learn to Code With Visual Blocks

Compiled by EdSurge

Product Math Prereq Prep Time 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.

Detailed video tutorials for Scratch and App Inventor for Android. Advanced students can check out tutorials on C#.

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.

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. 

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


Learn a Formal Coding Language

Compiled by EdSurge

Product Math Prereq Prep Time Price
Code Avengers
In-browser exercises and courses in JavaScript, HTML5, and CSS3. Courses are free for individuals and $5 each for student licenses (which include extra resources and progress tracking) with bulk discounts available.

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.

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!

Full courses in HTML, CSS, JavaScript, Python, Ruby, and PHP. Exercises are done in browser and checked automatically for accuracy.

Students learn JavaScript by commanding a dog named Karel to move around the screen. Classes advance to understanding data structures and programming for games. The first module is free to use, gaining access to the rest of the site is $25/month, and receiving feedback and debugging in addition to access is $75/month.

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. 

Blended-learning courses that teach students to design and code educational games. Start by playing and analyzing games, move onto prototyping and coding in Flash Actionscript, Unity3D, Java Script, and more. Used as standalone courses or to supplement core classes. Annual school subscription $75/student includes onsite professional development, virtual mentorship, and daily support system for students, teachers and administrators.

Hackety Hack
An introductory Ruby environment for Mac, Windows, and Linux. Its website includes a few early lessons in Ruby.

HTML5 Rocks
Online resource with tutorials, demos, and sample work in HTML5. Supplementary resource for educators teaching the language. 

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.

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.

Learn Code the Hard Way
As its name suggests, this set of courses is for self-motivated learners. Html lessons walk complete novice coders through their languages of choice: Ruby, C, SQL, Regex, or CLI. Each course requires the installation of the chosen development environment (which is explained thoroughly). For $29, students can buy PDF versions of the lessons as well as gain access to tutorial videos.

Courses in JavaScript, Ruby, Python, HTML, and CSS where students can practice coding in their browsers. Courses are free but users can pay for 1 on 1 tutoring.

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.

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.

One Month
In one intense month, claims this startup, you can pick up learn enough HTML, CSS and Ruby to build websites and web products. Courses come with 8 hours of instructional videos and code samples.

Offers a full course in Java through video and interactive code. Also has extensive sample code from many other formal languages like C++, PHP, Ruby, Python, Android, and iOS. 

Stack Overflow
Massive repository of coding information and help available online. Covers every formal coding language on this list.

The Puzzle School
JavaScript and HTML training in the context of puzzles. While not a full course in the languages, the browser-based games teach important fundamentals. 

Three-month courses for front-end web development, Python, Ruby, AngularJS and iOS development. Includes one-on-one sessions with mentors.

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.

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.

Tuts Plus
Full courses in JavaScript, HTML, CSS, Ruby, and other web development tools. Subscriptions are $19/month with discounts for groups.

Developed at Stanford, this MOOC covers many different coding topics including Java, HTML5, Python, as well as logic classes in AI and debugging.

This MOOC marketplace offers covers a wide range of programming courses for Java, Ruby, C++, PHP, HTML, CSS, and other languages. Courses are taught through video, slides, and PDFs and require students to install the appropriate programming environments.

$50+ /lesson
W3 Schools
Extensive tutorials in web development languages like HTML, CSS, JavaScript, XML, PHP, and SQL. Includes interactive sample code.