Learning to code for kids has become a hot topic these days. And anytime there's a hot topic, you can bet lots of folks out there are swarming to build something for it! As parents, we're starting to see lots of great options for how to teach our kids to code, with more popping up it seems on a daily basis! At the Coder School, our strength is in the experience and smarts of our staff - but we use coding platforms all the time to teach. Over the years, we've ebbed and flowed and have trended back and forth and found lots of cool tools and platforms to teach with, but some of them really stuck out for us.
This series of blogs will dive into some of the platforms we've encountered, broken out by age group. This first blog will target the elementary age school kid who's itching to code!
Before we start - we have a Coder School disclaimer of sorts! While there's lots of tools/platforms you can use to teach kids, it goes without saying that it's not like those TV commercials where you "set it and forget it"! Learning to code takes a passionate and knowledgeable teacher, a Code Coach® - someone to guide the student, answer questions, and really customize the experience. That's a whole nother topic that I touched on in our first blog, and might just need to jump back on in the future! Anyway, without further ado...
Top 5 Elementary Kids Coding Platforms
1. Scratch - Built by the brilliant folks at MIT, Scratch was developed back in 2003 as one of the original coding-for-kids platforms. It's widely considered THE go-to tool for teaching younger kids how to code, and almost every coding school uses it in some form. In my opinion, if it weren't for Scratch, I don't believe coding for kids could even exist - so kudos to the Scratch team!
There's two big reasons why this is the case. First, Scratch is what they call a drag n drop language, which means instead of typing long complicated code and worrying about missing semicolons or typos, kids can drag and drop code fragments on the screen. Can you imagine a kid typing "System.out.println("Hello, World");"? In Scratch, they just drag a button and BLAM, it's done. The second reason is that the code is geared towards creating graphical, moving, playable GAMES - quickly! Back in the day, it used to take thousands of lines of code just to get something cool on the screen. Now, with a half hour and a good Code Coach®, kids can be sucked into the world of coding games. Another awesome feature of Scratch is it has a huge library of apps created by other coders, which kids can play and even reuse the code.
2. Snap! - Snap! is a cousin of Scratch, using similar drag n drop principles, easy for any kid to pick up. Built by the Berkeley CS folks (in fact, the original developer Brian Harvey stopped by our Berkeley school's grand opening!), Snap will probably look like the same platform as Scratch to the untrained eye - but there's a subtle difference. Without getting into the technical tidbits, suffice to say that Snap! was built with computer science education in mind, while Scratch was built for kids to make games, fast. In Snap!, it's actually harder to do some things... Why's that better? Because then you have to figure out how to do it! In fact, they even use Snap! to teach Berkeley freshman computer science!
The biggest misconception about both Snap! and Scratch is that kids (and some parents!) think "they already know it" after becoming familiar with the 100 or so commands in either language. If there's one thing you should get from this blog, it's that that is NOT THE CASE! Coding is about the underlying logic, how to think critically and create things using the commands. For any kid or parent to say they "know a language" because they know the commands is like memorizing a Spanish dictionary and saying you speak Spanish. Doesn't work that way, does it?!
3. ComputerCraft - Computer Craft is the brilliant combination of learning how to code, and - you guessed it - Minecraft! Since exploding into every kid's brain and electronic gadget back in 2011, Minecraft has been one of the most popular games of all time. As an adult, I gotta admit - I don't get it. But if Microsoft is going to buy it for $2.5 Billion, then something about it works!
ComputerCraft isn't directly connected to Minecraft or Microsoft, rather it's what they call a "mod", something that modifies the original Minecraft to add more features. This mod actually allows kids to code sequential and other logic within Minecraft itself using a language called Lua. You can imagine the draw is that kids are more than excited to get to work in the Minecraft environment, and parents love that they can learn some coding at the same time. The disadvantage is that because it's a "mod", setting it up can be time consuming to say the least. Unlike many of the other platforms we use, you can't just go to a website and start using ComputerCraft, you have to install (and pay for) Minecraft, and install the mod on a specific computer.
This is one of those platforms that you might be tempted to just drop your kid in front of, let him/her play the levels, and just learn to code that way. It's plenty addicting and fun, so keeping kids on usually isn't a problem. That said, some of the downside is that it IS a game - and like any game, kids are plowing through to the next level as fast as they can. As my 10 yo son played it, I recall asking him quite often whether he actually understands the concepts, or if he just got to the next level. The results were mixed, I'd say. So it's a great tool - but just be careful if the student isn't paired up with a Code Coach® to explain the code, are the kids learning or are they just really good at gaming? Something to keep an eye on for sure.
5. Apple's Swift Playgrounds - Last but not least, we have an app from Apple. As you'd expect, the user interface on this thing is crazy-good, and the tutorials and everything else are really well thought out. Swift Playgrounds is Apple's answer to teaching programming to kids, and have offered hours of code with code.org to teach in their Apple stores. The language this app is built around is Swift, Apple's new (well, 2014) language in which (soon) all their iPhone apps will be built. So while Swift isn't really used for much else, there's nothing wrong with getting a leg up on developing iPhone apps, is there?
This app is only available for an iPad, so it doesn't (yet?) run on a computer. Because of that, the interface is a liiiiiiittle deficient (coding complex stuff really requires a good keyboard interface!) - but for those just learning to code, it works just fine. They say Playgrounds is meant for the 8-12 age range, and that's about right based on our experience. While there's some definite good stuff that kids (and adults!) can learn by just downloading and using the app themselves, as always, having a passionate Code Coach® translate, invigorate, and in-passionate (if that's a word) is always the best way to go!
While we've listed our latest 5 tools/platforms that we use, these things change in a heartbeat. The thing that doesn't change is that platforms are just computer programs, so be careful with sitting your kids down on a tool and walking away! After all, even Lebron James wouldn't be who he is today without his coaches, right?