According to Code.org, 90 percent of U.S. schools are not teaching any computer science. Eyebrows were raised in 2013 as the U.K. passed a plan to educate every child how to code. In 2014, Barack Obama made history as the first U.S. president to program a computer. Yet critics claim that often only the more affluent schools offer computer science courses, thus denying minorities potential to learn the skills required by the 1.4 million new jobs that will be created during the next ten years.
In my opinion, parents of every student in every school at every level should demand that all students be taught how to code. They don't need this skill because they'll all go into it as a career -- that isn't realistic -- but because it impacts every career in the 21st century world. Any country recognizing that will benefit in the long term. Here's how you can start.
With the following resources, you can teach programming with every student and every age.
Apps and Tools to Teach Coding All Year Round
While the Hour of Code is in December, Code.org has suggested resources for educators, unplugged lessons (those not requiring computers), and tutorials to help you teach computer science to kids of all ages any time of the year.
Teaching Coding to the Youngest Students
- Tynker Games: Use these age-appropriate games to teach your elementary students coding concepts. From Puppy Adventures to Math Art and Maze Craze, you'll find games that your grades 1-8 students will enjoy. Tynker also has a curriculum and STEM Product Library that you may want to peruse if you're interested in combining programming with social studies, English, math, and science.
- Kodable started as an app targeted to students as young as kindergarten age, but it's now a complete curriculum. The first 30 levels are free, more than enough for an hour of code. They recommend this for age 5 and up, but there are stories of kids even younger using the app with great success to learn to program. iPad schools will want this app on every device. Students don’t need to know how to read in order to program using this game.
- Cargobot (for age 5 and up) starts very easy but becomes more challenging as your progress. In the game, you're moving blocks around with a claw. This is an intriguing game because it was programmed entirely on an iPad using Codea. Students can also record solutions to the 36 unique puzzles and upload the videos to YouTube. This is free on the iPad.
- Some more advanced programs have “junior” versions. ScratchJr is the version of Scratch intended for ages 5-7 and available as a free iPad app. A favorite of some programmers, LightbotJr targets children ages 4-8.
- Robot Turtles is a board game to teach children the basics of programming without having to use any technology.
Teaching Coding to Age 8 and Up
- Hopscotch is the free iPad app for upper elementary and above. Wesley Fryer has created and excellent free ebook (Dropbox account required) for Hopscotch in the classroom, full of challenges that you can use with students. He also recommends activating the emoji keyboard (go to Settings > General > Keyboards) for use with the program.
- Lightbot has a version on just about any platform and even has an online one-hour version. This puzzle game has a free version which lasts an hour but sells full versions on iTunes and Google Play. It teaches planning, testing, debugging, procedures, and loops.
- Alice is another popular platform with a unique storytelling aspect. You can use it to create a game, tell a story, or make an animated video. Like Scratch, Alice is free and supported by a powerful community of educators. There are two versions of Alice. (The newer 3.0 version still has a few bugs but also sports many new, very cool animations.) This longstanding platform is a rewarding tool that kids will want to keep using past the initial hour. Alice is considered more for the intermediate student, but experienced teachers can use this with beginners.
- Kodu is another programming tool that can be easily used on a PC or XBOX to create a simple game. There's also a math curriculum. This is one method that Pat Yongpradit, Code.org's Director of Education, used in his computer science classroom. (I've used it as well.)
- Gamestar Mechanic offers a free version that you might want to use for your hour, but if you fall in love with it, the educational package allows teachers to track student progress, among other features. The company supports educators, and there's also an Edmodo community that shares lesson plans and ideas for the tool, along with videos and a must-see teacher's guide.
- GameMaker is an option if you want to make games that can be played in any web browser. The resources aren't as comprehensive and the community isn't vibrant, but this one has been around for a while and might be fun for a more tech-savvy teacher.
- My Robot Friend is a highly-rated app according to Common Sense Media. It costs $3.99, but no in-app purchases are required to go to higher levels.
- SpaceChem is an interesting mix of chemistry, reading, and programming for age 12 and up. As students read the 10,000-word novelette, they have to solve puzzles by assembling molecules. SpaceChem created a helpful guide for educators. This tool is available for download on Steam and installation on Windows, Mac, and Ubuntu. (Download a free demo.)
- CodeCombat is a multiplayer game that teaches coding. It's free to play at the basic level, and students don't have to sign up. This has the advantage that teachers don't have to know computer science to empower learning in this programming. It's recommended for age 9 and up. See the teacher guide for the information and standards covered in this game.
- Minecraft.edu is an option that lets you install and use Minecraft in the classroom. While this does require some purchase and setup, Minecraft seems to be gaining in popularity among educators as an in-house, 3D world-programming environment that kids love. Minecraft.edu has a Google group and best practices wiki. (My son took a course at Youth Digital that taught him Java to mod Minecraft -- while pricey, it was a great course.)
- Do you want a board game for older children? Code Monkey Island is designed for children age 9 and up. This is a great addition to your game corner.
Flip Your Classroom or Use an Existing Curriculum
- Follow the Hour of Code lesson plan tutorial on Khan Academy for ways to teach your students. These lessons are for older students with one computer each, or they could be adapted to a flipped class model.
Use Hardware and Make Something Cool
Programming, making, and creating have never been easier. If you're getting into the maker movement or Genius Hour, these are staples for your classroom. While they may take longer than an hour of code, they're definitely something 21st-century schools can use, because students are programming and building with their hands.
- The Raspberry Pi is an inexpensive computer. While Kickstarter's Kano kit isn't available yet (but is likely what we'll be talking about next year), there are so many things kids can make with the Raspberry Pi. After setting one of these up with my 15-year-old nephew, I recommend that the teacher be a tad more advanced! This is definitely a tool I'd use in my classroom. (Cost for a kit runs less than $100.)
- I am in love with the Hummingbird Robotics kit -- it makes Arduino easy. An Arduino is basically a motherboard that you can make, plus a programming kit. I have one of these in my classroom, and the students are fixated for hours. (Cost for a kit is around $100.)
- LEGO MINDSTORMS are part of my curriculum every spring. Students love LEGOs! I have six older MINDSTORMS kits that we've used for years. The newer NXT kits even have cool robots that can be made and programmed. This product has been around for years, so there are many resources for teachers. If you purchase an older kit on eBay, make sure it will work with newer operating systems.
- Dash and Dot are two endearing little robots that can be used with age 5 and up. These robots have apps that can be used to program them, for which children age 8 and up can use Blockly, the visual programming language created by Google. Older students can even use Objective C or Java to program the bots.
- Sphero and Ollie are fantastic robots that can go almost anywhere (my students have taken them across water). The SPRK education program gives teachers and parents a curriculum to use the bots and teach programming even when the adult is still learning.
How Do You Teach Coding in Your Classroom?
In this post, you've seen 15+ ways to teach coding in your classroom, but there are many more. Please join the movement to help reach every child by sharing your story in the comments -- or a link to your favorite resources for teaching kids to code.