As I’ve mentioned here before, I’m a father of two children, aged 2 and 4. We, primarily my wife, have begun the process of homeschooling our oldest. She knows all of her letters and numbers, knows the sounds that most of the letters make, and is starting to phoenetically read simple words. I keep an eye out for educational things that I might be able to use to help teach the kids. In addition to the more traditional ABCs and 123s, my daughter is quite proficient with GCompris and ChildsPlay (as well as a number of Strawberry Shortcake-styled games). So, you can imagine that I was quite interested by this post on Ned Batchelder’s excellent blog. Ned referenced an entertaining post from David Bau’s site.
This post stirred my recollection of Guido van Robot (hereafter referred to as GvR), an education program written in Python and designed to teach programming. I installed it on my laptop from the Ubuntu repository and brought it up. It isn’t at all intuitive what to do with it once you bring it up, so I found an online tutorial. Here is an image of the main screen:
I’ll leave reading the tutorial to the reader, but the two main concepts in GvR seem to be your world and your actions. After going through the tutorial for a couple of minutes, I created a world that looks like this:
And after loading the world into the main GvR program, my world looks like this:
Next, I created a program to kind of traverse the new world:
Initially, I created a square set of walls and a program to walk the robot to a wall, turn right, walk until he came to another wall, turn right, and so on. I decided it would be interesting to create a “jut” in the walls and make GvR navigate around it properly. If you run my program, you’ll notice that he winds up going to a wall, turning right, then going back and forth across the top wall. If I wanted him to really navigate the “jut” properly, I’d have to modify the logic for what to do when he comes out of a jut.
I thought this was a really clever little application that can gently teach kids (and adults!) the basics of programming. The syntax is pythonish, but doesn’t have access to the full Python language. If there is a drawback, this is it. I understand the benefit of creating a stripped down language for educational purposes, so maybe this isn’t a drawback at all. Regardless, this is a nice little piece of work and if my daughter is as curious as David Bau’s son, I’ll be introducing GvR to my daughter within a couple of years.