Top FREE Platforms for Middle School Kids to Learn to Code

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!

The Middle School years are an interesting lot.  Kids are starting to come into their own, hitting that hormone-growth stage.  It's also the time we've found that kids' logical brain are really starting to grow, and their understanding of coding beyond basic sequential stuff really accelerates!  At the Coder School, our average age is probably around the 11-12 range, so it's definitely the sweet spot, and the fun spot too!  At this age, kids are typically starting to move towards typed languages like Python or Javascript, though often still with some easier built-in graphical components.

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!

"Gravity Crash" by L. Newhouse (age 11)

"Gravity Crash" by L. Newhouse (age 11) (Python)

One of our original favorites, Trinket is a great graphical tool to get kids transitioned from the drag 'n drop world of Scratch or the game-oriented world of Code Combat, to a more "pure" Python world. Python, for those un-initiated coders, is one of the world's most popular languages today - powerful enough to be used by professional coders word-wide, but easy to read and use enough for kids to pick up quickly.  Because of that, it's one of two languages that we typically use as the "first real-world language" that we teach our students (the other language is Javascript).

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

Codepen (Javascript)

While Python is one of the hottest languages today, Javascript's one of the most popular.  What's the difference?  Well... that answer might take a book or two!  High level, Python is a general-purpose language that can do lots of cool stuff, including scripts and data stuff or making games.  Javascript can do a lot of things too - but the biggest advantage is that it's the language that runs on all web browsers.  So that means anytime a website actually "does" something with logic (like check if a field is blank), it's pretty much running Javascript.  Websites, as many of you know, run on a set of languages called HTML and CSS, which provide a lot of the graphical and color elements on webpages you see today.  Because Javascript forms the core of all logic in the web, it connects really well to HTML and CSS, and so presto - it's automatically already a pretty "graphical language"!



Phew, and I still haven't even talked about CodePen yet!  CodePen is a great online tool that allows kids to learn Javascript "in real time".  That means with a split screen, kids are able to see their code run right away.  Pop quiz - where does Javascript run?  That's right, in a browser!  Our students who work on CodePen are typically combining the logic and coding language of Javascript with HTML (and maybe CSS), and seeing their output right there.  Sometimes we'll use CodePen to teach our kids HTML and CSS too - both fairly straightforward languages, though neither can run logic.

CodePen isn't exactly made for kids (professionals often use it), so that's a possible disadvantage (or advantage!).  There are a number of projects you can reuse and discover - but they do tend to be a little higher in difficulty.  But for starting from scratch to learn HTML, CSS, or Javascript, CodePen is a great choice. (Python)

PixelPad Screen

PixelPad Screen

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.

Coding Bat

Coding Bat Screenshot

Coding Bat Screenshot

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!