This last spring my 10yo son and I visited Boston’s Museum of Science. We go maybe twice a year and take in new programs, special exhibits, and a few old favorites. This time we stopped by Cahners ComputerPlace and found a live exhibit sponsored by iRobot intended to introduce programming to children. Although many teaching applications exist the exhibit struck me as wonderfully unique.
The child’s finished program actually controls a complex external device in real time. Not just a model car for example – but a fully operational robot – what appeared to be a modified Roomba. The child is tasked with a goal like ringing a bell. However, the goal itself can be altered to keep the experience fresh. Now that alone is reasonably commonplace, but unlike similar exhibits the robot moves under the control of a clever visually presented language. The languages actions match the capability of the robot but also include constructs like loops and constants (ex: loop 5 times here, turn 90, etc). The programming experience is rich but tailored to the robots domain.
A particularly interesting aspect of the visual language is that it’s represented by physical interlocking puzzle pieces, not a computer screen. No use of a mouse or keyboard is required . A camera mounted above the programming desk is able to read symbols from the puzzle pieces and how they interconnect. As soon as a configuration is complete the child can start the program and see the result. Very cool.
One other aspect of this experience I found interesting is that the child learns that initial conditions matter. For example, the position and angle of the robots body was just as important as a correctly operating program – it’s true of course – even if the program is perfectly written initial data and boundary conditions impact results. Think of the initial conditions required of a successful space flight!
Here are a few screen shots of the exhibit and Josh programming the robot
Here is the visual representation of the language
I was inspired and thought maybe it was a good excuse to create a 2D version of this as a Silverlight program complete with drag-able puzzle pieces and a simple graphical robot. Although I would not use an external Roomba I still felt it could be an interesting project for me and a fun program for Josh (an older Roomba turned up at a church flea market recently for $25, so the thought of external control did cross by mind). But never mind that now.
Microsoft Research has done it again. Microsoft recently announced such a platform for kids (and kids at heart, like me) called Kodu. It takes the concepts discussed above to a new level altogether. The software does not control external robots but does allow children to develop highly complex games via the XBox 360 using only a game controller. Amazing in every sense of the word. The cost as of this writing is $5. This is truly a “gateway” technology and Josh and I could not wait to try it out.
Here are a few screen shots of Joshes first creation – after we both spent less than an hour getting up to speed. Notice the icon based placards used to represent the program. Each object or character in the game can be provisioned with multiple “concurrent” actions.
Just a couple of tips for parents of younger children.
Spend at least enough time yourself prior to involving your child and be able to perform the following steps
- Create an empty world.
- Add a 2D surface
- Add one character
- Add one object, like a tree
- Program the character to do something simple like moving toward a tree. See the Kodu blog for other examples.
Teach your child the above steps – at that point just hand over the controller and watch the fun!
The examples provided are excellent but I suggest you follow the above steps first – this avoids some initial frustration.
Have Fun !!