My last post on Elementary School kids coding platforms was so fun, I figured I better do another one! There's lots of great tools that are being created out there, it seems by the hour, and plenty to choose from. This definitely isn't a complete list, but it's some of the tools that we've found effective for teaching kids around age 11-14. And bonus, these are all FREE platforms for teaching kids!
Before we start - our standard disclaimer! While there's lots of tools/platforms you can use to teach kids how to program a computer, many of them require a mentor or Code Coach® to really drive the passion and knowledge home. Since Middle Schoolers often have a bit better attention span, sometimes it seems they can be left to their own devices when learning. But think about music or sports. Can your (actually WILL your) Middle Schooler really become an awesome guitar player just watching Youtube? Would Peyton Manning be Peyton Manning without a coach his entire career? (hint, the answer is no to both!). So be careful - balance self-driven time with coaching time and you'll get the best results! And with that out of the way, let's get to our platforms!
Trinket is great because it allow kids to code Python purely on the web (browser), and create an account, log in and save their code. Like Scratch, it even lets you "Remix" code - take someone else's project, create your own copy, and edit the code from there! Trinket isn't quite as strong when it comes to pre-existing code or follow-along tutorials, but because they use a graphical library called "turtle", it's fairly easy to start using Python to draw stuff up on the screen. One of the first few lessons we typically teach is all about drawing squares and polygons using Python. As things progress and the Python programming gets more complex, you'll want to move off Trinket to a pure Python coding environment, as Trinket has its limitations once things get a little dicey in complexity. That said, you can still get craaaazy complex with Trinket in terms of logic - check out the Gravity Crush created by one of our student that uses real Physics gravitational formulas to play "billiards"! To REALLY get a sense of the awesomeness of this kids, check out lines 233 and 234 from the code, excerpt below. Newtonian gravity and vector scaling by an 11 year old?!? What the WHAT?!
# newtonian gravity. Product of masses is set to 100
PixelPad is another great Python option, a lot like Trinket. Seems like the rage these days is to end your domain in ".io", doesn't it? Anyway, PixelPad comes from our friends up north, and was built by Jamie Chang over at UndertheGUI, a coding school in Canada. Like Trinket, kids can create a login and save your Python code up in the cloud, all the Python runs in your browser, and you can share your games and creations easily. PixelPad's a little more game oriented, with the main differentiator being their step-by-step curriculums. Some are free, and some aren't, but PixelPad gives a great option for kids to jump on and follow a curriculum faaaaaairly independently. At one point, they even let kids create their own version of Plants vs Zombies in Python! PixelPad is a pretty new platform, so you can expect lots of great content to come! Our Code Coaches typically bounce between PixelPad or Trinket as similar options.
The last platform here's a little different, not really game oriented or graphical. Rather, Coding Bat is challenge and logic oriented, so it's not for every student. You can see by the screenshot it's pretty basic looking, but for the puzzle lover students and kids, especially combined with a mentor or coach, it's pretty awesome. Coding Bat runs both Python and Java languages, and presents kids with logical problems to solve using code. Kids can program it in Java or Python and submit it, and the site will check the answer for them. For example, here's a simple logic problem kids might start with when first learning coding basics, using if-then conditions:
The parameter weekday is True if it is a weekday, and the parameter vacation is True if we are on vacation. We sleep in if it is not a weekday or we're on vacation. Return True if we sleep in. Create a function sleep_in(weekday,vacation).
We use Coding Bat to test kid's logic and programming, see how much they picked up from other platforms they've used. Because the site is fairly basic, kids typically need to already have a somewhat decent knowledge of Python or Java first. But what a great way to get the logic down (and fun for some of us puzzle-loving adults too)! Coding Bat is a great tool for kids who eventually want to hit a Computing Olympiad (USACO) competition.
Is that it? No way! There's tons more platforms out there for middle schoolers, many/most are free, just get out there and hit Google!