At the BarCamp following the NZCS 50th Anniversary Conference, there was an interesting discussion on programming languages for kids.  It was suggested that the key players ( Phrogram, Small Basic, Scratch etc)  don’t get it quite right.  That rings true to me.  Reflecting on this after the session, I realised the reason: When I was a kid, part of the attraction to programming was in the sense of mastering a technology that was new (i.e. new to the whole world, even adults, rather than merely “new to me”).  Phrogram, Small Basic and Scratch are languages for a technology that is no longer new – desktop computers.

Today, how can we offer kids the excitement of mastering a technology that even adults don’t understand, a sense of being part of something that is leading edge on a global scale?  By letting them program mobile devices, I suspect.  It’s not just about the mobility, but its also about the sensors and devices that are on those devices.  Imagine this:

A maths class is learning about trigonometry.  As a practical exercise, they are tasked with measuring the height of a tree using only their mobile phone.  With a little guidance (if necessary) they realise that the simply need to use use the device’s sensors to measure 3 things: (a) the position of the base of the tree, (b) the location of another point some distance away and (c) the angle from the second point to the top of the tree.  Items (a) and (b) can be measured with the GPS, and (c) with the accelerometer.  Tie them all together with a simple program, get it to do some simple trig, and hey presto, the cell phone is a mobile tree-measuring device.

To me, this seems like a far more motivating scenario than writing for desktop computers.  And, as several people implied in this morning’s discussion, perhaps motivation is the key to getting enough young people into IT.

This evening, I searched the net to find such a tool.  It took a while, but eventually I found App Inventor, which is a new product from Google.  It’s a bit like “Scratch for Android”.  It is still in restricted Beta, but I believe it has the potential to motivate today’s kids in the way 8-bit micros motivated my generation in the 80’s.


[Update 19 Sept: I’ve just heard that there have been some rather negative reviews/criticisms of App Inventor, although I get the impression that at least some of them relate to its immaturity/beta status.  Will be interesting to see how it matures.]

4 comments on “Programming Languages for Kids – time to go mobile

  • There’s an old joke about measuring the height of a tower in the same way. The method cited above is only the first.

    Second method; climb the tower or tree with a stop watch; drop the phone and time how long it takes to hit the ground;.

    Third method:Climb the tower/tree; tie the phone to the end of a long piece of string so it barely touches the ground; then swing it like a pendulum, time the swings and apply the formula we all learned at school.

    Fourth method: approach a local and say “I will give you this mobile phone if you can tell me the height of the tower” (this obviously doesn’t work as well with trees, but you might happen on an experienced forester 🙂

  • I did my Ph.D. on programming languages for kids so quite sad I missed the discussion! There are actually lots and lots of programming languages for kids – the ones you mentioned are a very small sample.

    However, it boils down to this:
    * kids who find programming intrinsicly interesting will learn no matter what we do. That’s people like us. These kids are generally interested in measuring the hight of trees.
    * kids who don’t find programming interesting will only learn as a side effect of doing something they’re interested in. These kids generally are not interested in measuring the height of trees.

    Finding the interesting tasks for the second group of kids is very hard. Once you’ve got the task, most programming languages for kids will do the job.


  • Thanks Tim,

    Very interesting comments. Did your research cover “finding interesting tasks”?

    A theme that cropped up on several occasions in the conference was that we (the industry) are not attracting a broad enough range of people into IT. I see that as saying that we’re not attracting enough of the second group.

    But, thinking about that now, in light of your comment, I find myself wondering – is it really a sensible goal to try to attract more people who, being in your second group, are genuinely NOT interested in what we are trying to attract them to? I’m sure there are all sorts of viewpoints on this. I’m not entirely sure which way my own views are leaning.


  • I would argue that the way to interest a broad range of kids is not to focus solely on programming but instead focus on the full range of skills need to produce a successful mobile app/game. This includes graphic arts, digital audio, interface design, gameplay, touch interfaces, social connections, marketing, and finally programming. IMHO, programming will always appeal to small subset of individuals; however, app/game design creation appeals to a much broader audience.

    BTW, you might want to take a look at that supports sophisticated game creation without coding and RevMobile that is really mobile Hypercard. Both of these make app/game creation approachable without an depth knowledge of programming.

Comments are closed.