By user12607856 on Nov 29, 2005
Recently James Gosling has been looking at the BlueJ IDE with his seven year old daughter. I want to get my seven year old son interested in programming but I've taken a different approach.
When Duncan was 3 or 4, we went down to LEGOLAND in Southern California and spent the day there having a fun time. As we were leaving at the end of the day, I bought a set of LEGO Mindstorms, primarily for myself, but I also knew that my son would be interested in playing with some of the things that I'd create with it. That was v1.0 of the LEGO set.
Between then and now, we've done exactly that. Initially I'd create the "robot" and program it and he'd play with it. As he got older, he could follow the steps in the Constructopedia and build the models and I'd just do the programming.
A couple years ago, as part of a mentoring project here at Sun, I even built my own infrared sensor to go with the Mindstorms kit. I've also recently bought a rotation sensor and v2.0 of the Mindstorms CDROM.
Over the Thanksgiving break (the Friday after to be exact), Duncan wanted to build another Mindstorms creation. I'd recently bought a copy of the Robotics Invasion book, so we decided to build the first project in there; a cargo pushing bot. We successfully built the vehicle. We also created the special track out of foam and construction paper. It was now time to program it.
By that time, I had something else I wanted to do so I suggested that we should return to the project the next day, but if Duncan wanted to continue with the LEGO Mindstorms that day, he should fire up their CDROM, and have a go at the training missions instead. These show you such things as how to download your code to the RCX brick, how to setup motors and sensors and how to program them. All the things that I'd always done for us upto now. They also have a programming environment that's very visual. The construction of the programs for the RCX is very much like playing with LEGO, where you plug the bricks together to achieve the desired effect.
I fully expected Duncan to get stuck pretty quickly and come looking for me to help him out. Alternatively, I expected him to get fedup because it was too hard and wander off and do something else. Neither of these things happened. The training missions enthralled him for 2-3 hours. By the time he's finished them, he'd even got to the point where he'd constructed his own "My Blocks" (the equivalent of a subroutine) and worked out how to plug them into his program.
I was quite amazed. More for how good a job Lego had now done to make this interesting and intuitive. I'd played with the graphical programming environment with v1.0 and I could now see that they've really improved it with v2.0. It's something that young kids can pick up and easily learn. Of course, experienced programmers are probably going to program their bots with one of the other programming languages such as NQC or Java.
We never did get around to programming the cargo bot. Duncan had taken it apart in order to complete some of the training missions. He's now going to try the various challenges that the CDROM provides.
While I was googling around for Lego Mindstorms and Robototics websites that might have interesting projects we could do in the future, I came across these three links that others might find useful   .
Anyway, because he's really got into this, we are planning to buy him his own set of LEGO Mindstorms for Christmas. He said it's what he wants. He suggested that we just ask Santa to get it for him, then we wouldn't have to pay for it ourselves. Ahh, right. Why didn't I think of that?