Programming for kids

A while ago I started looking for ways to get my oldest coding. My first machine was a zx-81, with 1k of memory, and most of this was used by the screen, there was a big incentive to learn assembler. I'm not out to force him into assembler programming, but...

I evaluated a number of possibilities, one was the Kid's Programming Language (or Phrogram) which can do some impressive things in few lines of code. A sample 3D space 'game' takes about 30 lines most of which look like:

	If IsKeyDown( Up ) Then
		Ship.TiltUP( moveAmount )
	End If

I also looked at squeak, but it didn't grab me as being easy to use.

An interesting alternative to real coding is c-jump, which is a programming board game. I'm not quite convinced by the syntax, or the jumping around the board.

The first thing I tried with him was Java. Which was pretty successful, but I couldn't just leave him to get on with it. There's quite a bit of syntax to have to handle. So while it was a success, it relied on me finding the time to work with him.

We then tried scratch. This has been quite successful for the following reasons:

  • It's all drag-and-drop, and the programming constructs are coloured/shaped so it's easy to put them together correctly.
  • Its all graphical, and the interface is very intuitive. You can see the object that you're programming.
  • It has an integrated graphics editor so he can draw his own sprites. Changing the look of a sprite is a step towards looking at the programming of the sprite and from there modifying the programming.
  • The biggest thing has been that he can work on this autonomously, I just have to see the end results.

The downside of scratch is that it seems a bit limited in what it can do. He really wants to do 3D games - so perhaps Phrogram is the next stop.

Any other recommendations for kids programming?

Comments:

Hi Darryl,

We went for the Lego Robotics sets, the original RCX version, and then the newer NXT version, both of which can be manipulated by a variety of languages.

Apparently a common problem for young programmers is the 'alien' nature of engineering in a virtual environment. I found that the Robotics sets were a great way to demonstrate how programming interacts with the 'real world'.

Obviously these are equivalent to programming robot arms, stepper motors, and the like, which wouldn't necessarily demonstrate (human) interface design, but they do allow a grasp of programming fundamentals.

Andy (10) and Joey (8) can both program the sets in RCX (native, very high level, flowchart based language) and in Java and C / C++ in a rudimentary way (i.e. with some help).

http://mindstorms.lego.com/

http://en.wikipedia.org/wiki/Lego_Robotics

Currently the lads are more into Digital Editing, and have spent the last couple of weeks editing photos that they've been taking.

Something which I haven't tried, which I'd quite like to if the kids were up for it, is the RS Media, based in part on the RoboSapien 2. It has a Linux kernal, and apparently there's a number of ways to hack into it.

http://en.wikipedia.org/wiki/RS_Media

All the best,

Wayne

Posted by Wayne Horkan on March 22, 2008 at 08:44 PM PDT #

Funnily enough, we're just starting out on nxt. Although we've been doing lego videos for a while....

Posted by Darryl Gove on March 24, 2008 at 10:16 AM PDT #

Post a Comment:
Comments are closed for this entry.
About

Darryl Gove is a senior engineer in the Solaris Studio team, working on optimising applications and benchmarks for current and future processors. He is also the author of the books:
Multicore Application Programming
Solaris Application Programming
The Developer's Edge

Search

Categories
Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
5
6
8
9
10
12
13
14
15
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today
Bookmarks
The Developer's Edge
Solaris Application Programming
Publications
Webcasts
Presentations
OpenSPARC Book
Multicore Application Programming
Docs