Learning Programming Concepts
This area is hard to concretely define as it includes many tools or environments that were created to teach children the basics of coding and interest them in learning to program. The various tools are broken down by grade but there is a lot of overlap so feel free to have your first grader try Scratch if they are ready!
Pre-K to 2nd Grade
Turtle Logo is a great one for younger kids to start on. Logo is one of the oldest teaching languages and it has evolved into many things. A turtle appears on the screen and your job is to make it do whatever you want.
Daisy the Dinosaur (iPad, free): On a dinosaur kick, Elise discovered this app on her own and we installed it a few years ago. The app prompts kids to manipulate a character, Daisy, through challenges that involve loops, events, and other programming basics (e.g., when touched, move dinosaur forward). It’s a very stripped-down, basic program, but the simplicity is a big plus for young kids. There’s a free-play version in this app as well, so you can make Daisy jump in the air or walk backwards at will.
HopScotch is an iPad app for kids age eight and up to learn coding – though I think Kindergartners could handle it. The idea behind it is to lower the intimidation level – not make them code-writing masterminds. A lot of people get turned off from programming early by all the syntax including brackets, parenthesis and spacing which means the program breaks if one thing is off. It uses a similar style to Scratch and Blockify of drag and drop blocks.
Code.org was started with a mission to bring code to everyone and has an impressive list of heavy hitters giving performances via video including, but certainly not limited to, Bill Gates and Mark Zuckerberg. It uses a drag and drop language called Blockify which is similar to Scratch but has a little more complexity including functions and variables. They have four courses right now. Course 1 is designed for early readers – ages 4+
All courses come complete with teacher lessons as well as assignments for the students. It is extremely easy to organize classes and to track progress. I used Course 2 and Course 3 on a class of 4th graders this year and they enjoyed it tremendously. A great way to introduce kids to code. My lesson plans are all on my site for this.
3rd to 6th Grade
Scratch is aimed at slightly older kids. If your kid has mastered Logo or if they are upper elementary, Scratch is a good choice. It is a programming language developed by the Lifelong Kindergarten Group at the MIT Media Lab that allows you to create interactive stories, animations and games. This is another popular recommendation with a lot of information and tutorials available. It is free and runs on Mac, Windows and Linux computers.
Tynker is a new one that is based heavily on Scratch. It looks pretty cool but it does charge and I couldn’t see much difference between it and Scratch and Code.org. Investigate though! I will admit to being a little turned off with the fact that nothing was free – not even a starter beyond an Hour of Code. I have no problem paying for programs/apps/etc. In fact, I strongly believe that we should be paid. But, this seemed a little too much for me given how many other quality offerings there out there for a lower cost with a much more philanthropic mission.
Lego Mindstorms are robots that have interfaces and projects in various languages. This is a cool concept because you can easily craft a program to control the robot. It definitely keeps people interested, and there is a ton of information available.
Stagecast Creator was recommended several times, specifically when targeting younger, preteen children. The biggest reason kids will like it is that they can build games using the environment.
RoboMind: has created a new language specifically to control robots – it works with some Lego Mindstorm robots too.
Code.org was started with a mission to bring code to everyone and has an impressive list of heavy hitters giving performances via video including, but certainly not limited to, Bill Gates and Mark Zuckerberg. It uses a drag and drop language called Blockify which is similar to Scratch but has a little more complexity including functions and variables. They have four courses right now.
- Course 2 is designed for ages 6+ and introduces basic programming concepts including conditionals, events and loops.
- Course 3 is designed for ages 8+ and introduces functions and variables
All courses come complete with teacher lessons as well as assignments for the students. It is extremely easy to organize classes and to track progress. I used Course 2 and Course 3 on a class of 4th graders this year and they enjoyed it tremendously. A great way to introduce kids to code. My lesson plans are all on my site for this.
4th to 7th Grade
Interactive fiction is something that many kids love, and Inform, the most popular interactive fiction language, is still being used. It is based on natural language, so it could be easier to learn than other code based languages. Resources here start for 6th grade through high school.
GameMaker is not targeted towards children, but is a game building application that does not require you to write code. Given the non-code basis, it was recommend several times as a good way of learning programming while keeping kids interested.
GameStar Mechanic: Cost: $2 per student. GameStar Mechanic teaches kids, ages 7-14, to design their own video games. Your students will love completing different self-paced quests while learning to build game levels. The site integrates critical thinking and problem-solving tasks. An app embedded within Edmodo makes logins easy for students.
Cargo-Bot: Platform: iPad Cost: Free! Cargo-Bot is another game that teaches coding skills. On each level, the objective is to move colored crates from one place to another by programming a claw crane to move left or right, and drop or pick up. The game was actually programmed on an iPad, using a touch-based coding app called Codea, which is based on the programming language Lua. Elementary students will learn the logical thinking required to eventually do “real” text-based programming using Lua — but Lua is not for young learners. For elementary students, stick with Cargo-Bot.
Code.org was started with a mission to bring code to everyone and has an impressive list of heavy hitters giving performances via video including, but certainly not limited to, Bill Gates and Mark Zuckerberg. It uses a drag and drop language called Blockify which is similar to Scratch but has a little more complexity including functions and variables. They have four courses right now.
- Course 3 is designed for ages 8+ and introduces functions and variables
- Course 4 is still in beta and is designed for ages 10+
All courses come complete with teacher lessons as well as assignments for the students. It is extremely easy to organize classes and to track progress. I used Course 2 and Course 3 on a class of 4th graders this year and they enjoyed it tremendously. A great way to introduce kids to code. My lesson plans are all on my site for this.
Middle School & Up
MIT App Inventor looks pretty cool too. It allows users to learn how to make apps for Android phones. It is much like Scratch with drag and drop coding blocks. It does inlcude every method, function and other coding element you want to create an Android app. Lots of tutorials on the site as well. But it’s best for at least middle school kids or even older.
Colobot (Colonize With Bots) sounds like another interesting option. The Wikipedia page explains the education portion of the game, “The main feature of the game which makes it educational is the ability of the player to program his robots using a programming language similar to C++ or Java.”