Blockly versus Scratch – an apology

In a previous post about free online coding tools for kids, I made a very rash assessment of Google’s Blockly and described it as “Google does Scratch”, referring to the well known visual programming environment from MIT.  Yesterday, I came back to really look at Blockly and quickly saw:

  • How factually incorrect I was in that assessment, and
  • How the difference between the two can be confusing at first glance

I’m now going to attempt to make amends for my lack of rigour in first looking at Blockly…

tl;dr; If you wanted to build a Scratch-like product from, well “scratch”, you would probably start with Blockly.  Blockly forms one component of Scratch.

Continue reading

Activities for junior coders in Australia

Similar to a previous post around free online tools to encourage more kids to learn how to code, this is the results of some research I did last week into what “bricks-and-mortar” avenues exist for kids with a programming bent around Australia.  I’m sure I’ve missed lots of these, so please comment and help me fill in the gaps.  I’ve also included prices where available, but made no attempt to determine availability where places are limited.

Because these (generally) geo-centric, it makes sense to list them in that way.  I’ve repeated items where they apply across multiple states.

South Australia

  • Bubble Dome: Lots of coding-centric workshops (Minecraft, Lego Mindstorms) including a specific Python, Javascript one running in many cities.  $399/4 days.

Queensland

  • Bundaberg Library: School holidays Scratch programming classes.  Bookings needed.  Free.
  • Bubble Dome: Lots of coding-centric workshops (Minecraft, Lego Mindstorms) including a specific Python, Javascript one running in many cities.  $399/4 days.
  • Coderdojo.  The only Australian chapter of this global organisation providing free coding spaces for kids.

Victoria

  • Brainwaves:  Officially an organisation that focuses on “gifted” children, some of their programs include technology subjects including introduction to coding.
  • Academy of Interactive Entertainment: School holiday courses in Game Programming. $240/2 days.
  • Bubble Dome: Lots of coding-centric workshops (Minecraft, Lego Mindstorms) including a specific Python, Javascript one running in many cities.  $399/4 days.
  • Club Engineer: Offering introductory Scratch and more advanced Windows programming courses.  $50/hour/student for 10 hours over a week.
  • Robotics Club: Not surprisingly given the name, a bunch of robotics’ related camps.  Various prices/lengths.
  • Invent The World: Raspberry PI and Minecraft-based programming workshops.  $175 to $450 depending on the course.

New South Wales

  • Academy of Interactive Entertainment: School holiday courses in Game Programming. $240/2 days.
  • Code Camp: Short IOS (e.g., iPhone, iPad) coding courses for a wide range of ages (kinder -> year 12).   Prices range from $230 – $390.  No equipment needed.
  • Bubble Dome: Lots of coding-centric workshops (Minecraft, Lego Mindstorms) including a specific Python, Javascript one running in many cities.  $399/4 days.

Australian Capital Territory

  • Brainwaves:  Officially an organisation that focuses on “gifted” children, some of their programs include technology subjects including introduction to coding.
  • Academy of Interactive Entertainment: School holiday courses in Game Programming. $240/2 days.
  • Code Cadets: A dedicated coding community within Canberra Grammar.

Free tools for kids wanting to code

Yesterday, I spent a couple of hours looking into what freebies the internets have for kids wanting to learn how to program.  Thankfully, there are options a-plenty for this sort of stuff, but it does take a little Googling to undercover them all, so let me save you the trouble.

There are quite a few broad categories of these tools: lets look at each in turn, roughly in order of age/experience appropriateness.  I’ll start with the tools best suited for the younger developers with little experience with coding and move up to the platforms that really require a solid programming background to appreciate.  The level of software-based hand holding will decrease through each of categories, as will the reliance on primary colour palettes and kid-friendly animal avatars.

Logo-rithms

Don’t tell them they’re coding

Since the dawn of the time, the programming language most closely associated with learning has been Logo.  Not surprisingly, there are a number of online tools that use variations of the Logo metaphor of controlling a moveable instrument (originally a turtle holding a pen, but now apparently any animal will suffice).

The Code Monkey environment: Logo for Simians

The Code Monkey environment: Logo for Simians

  • Code Monkey: Here we’re controlling a monkey.  Slightly clunky with directions popping up all the time.  Signup encouraged via nagging messages, but not required.
  • Logo Interpreter:  Gives user option of text entry or mouse to create commands.  Limited functionality without signup
  • Turtle Academy: Seems like a more “grown up” Logo environment.  Documentation suggests entire Berkeley Logo instruction set is available.
  • Light Bot: No typing involved here, all instructions are created by drag-and-drop.  Objective is to have a robot activate a light.  Also available for iOS and Android via respective marketplaces.
  • Move the Turtle: Is a paid Logo development app for iOS.
  • Cargo-Bot: Solely for iPad, Cargo-Bot gives players a limited set of commands to instruct a robot.
  • Bugzy Code: For Android devices only.

Guided Tutorials

We tell -> you type -> repeat

The options in this category are based around industry languages (e.g., Javascript, Ruby, etc) and feature embedded browser-based developer sandboxes where participants can have their code evaluated/executed in response to specific tasks.

Hackety Hack using Ruby to do Turtle graphics

Hackety Hack using Ruby to do Turtle graphics

These tools would suit older kids as they don’t attempt to hide the raw code behind any other metaphors.  Examples in this category include:

  • Code Academy: covers Javascript, Python, PHP, Ruby and website technologies (JQuery, HTML, CSS).  Signup required.
  • Code Monster: covers Javascript
  • Code Pupil: covers HTML & CSS.  Has some interesting browser restrictions (e.g., doesn’t run on Firefox on OSX)
  • Hackety-Hack: A downloadable Ruby-based development tutorial.
  • Kids Ruby: Similar to Hackety Hack, but aimed at a younger audience.

Unguided Tutorials

Time to take off the training wheels

This category is for sites that provide a more unstructured development environment.  Whilst the environment has the ability to execute code within the browser, it will not provide the step-by-step instructions to help people incrementally build up their solutions.  Generally this category is for people with a better holistic knowledge of development and have more confidence in building larger solutions with little assistance.

Code challenged for the Javascript course at Code School.

Code challenged for the Javascript course at Code School.

  • Happy Fun Coding:  Provides a number of video tutorials, but these are not integrated with the development environment.  No free text editing of code, rather uses custom editing controls to adjust specific CSS elements (e.g., color picker for background-color attribute).
  • Khan Academy:  Not surprisingly, Khan Academy has lots of content around coding in Javascript delivered in it’s typically informal style.
  • Code School: Technically, this is offered as a freemium model as only a couple of the courses are free with the rest (e.g., Javascript, HTML/CSS, iOS) requiring payment.  Most of the courses are delivered via a combination of video and coding challenges.

Jigsaw Languages

Visual Programming

Jigsaw Languages are so-named (by me) because they all use a similar visual programming metaphor that allows you to slot appropriate pieces of templated code snippets together in logical ways.  The respective shapes are a strong visual cue to the developer to what “piece” should fit here.  As usual, a picture tells a thousand words…

scratch-metaphor

The Scratch environment showing how expressions are composed.

Here we have a screenshot from the Scratch development environment with an “If” block placed on the Scripts area.  There is no condition in the block at the moment (i.e., the hexagonal shape after the “if” is empty), but the shape that fits the condition helps developers work out which element from the left hand set of green shapes could fit here and which ones will not.

  • Scratch: From MIT and the best known of this category
  • Blockly:  A visual code editor component similar to Scratch – see an in-depth comparison here.  Blockly is also used as part of the programming interface to the coding game on KickStarter called CodeSpells.
  • Hopscotch: Scratch for the iPad is the best way to describe it.
  • Turtle!: A Windows phone app combining Logo-styled language within the visual programming style popularised by Scratch.  Added: Sep 17, 2014.

Game/World Builders

The Sky is the limit

There’s some fine lines in this category as there are many game building platforms that wont really expose any of the technical specifics needed to help generate interest and understanding in coding.  I’ve tried to include some of the ones that do.

  • Alice: Uses a similar visual metaphors to Scratch and Logo-based tools, but it’s ability to model 3D objects and worlds takes it beyond many of the Jigsaw Languages category.  Needs download to run.
  • Greenfoot: An IDE (Integrated Development Environment) for the Java language, built with younger developers in mind.  Provides the ability to use a combination of visual programming (a la Scratch) and direct source editing (a la Hackety Hack). Added: Sep 17, 2014.
  • BlueJ: (Full disclosure: I contributed some code to BlueJ many, many years ago).  Another Java IDE like Greenfoot, but for a slightly more mature audience. Added: Sep 17, 2014.
  • Honourable mentions to Beta The Game, Codea, Agentsheets and Agentcubes which which look mighty interesting but are not free 😦
  • Update Sep 17, 2014: There is a free online version of AgentCubes here.

Conclusion

If you’ve stumbled across this blog looking for something for yourself or your kids to use to get into coding, I hope I’ve left you with lots of links to click on as there are certainly lots of cool tools to consider.  I haven’t used many of these in earnest, so I’ve shied away from trying to compare one against the other.

And if there are notable choices, I’ve not included here, please let me know and I’ll update this list.