[Edu-sig] webster van robot and tballsnake
showell30 at yahoo.com
Fri Sep 5 21:00:29 CEST 2008
I just wanted to introduce myself and a little project that I'm working on that might be of interest to this audience.
My name is Steve Howell, and I was one of the early project leaders for Guido van Robot, which was introduced to this mailing list a little under five years ago by Jeff Elkner:
To paraphrase Jeff, Guido van Robot (aka GvR) brings "Pythonic" improvements to the teaching language Karel the Robot. Since 2003, the program continued to evolve, mostly under the stewardship of a Dutch programmer named Stas Z, who has helped to internationalize it, clean up its user interface, and maintain ports on four major platforms (Linux, OLPC, Mac, and Windows).
Although I'm proud of the success of GvR, I've always been a little frustrated by its lack of adoption. Although you never know for sure how many people use an Open Source project, I think GvR, like many other desktop applications, has a high barrier for experimentation. Although the IDE and language itself are very simple, you have to have Python and PyGTK installed, and then you have to download the software itself.
Warning: the program has only been tested on Firefox 3 so far (IE is unfortunately broken).
Webster van Robot is currently is a programming language and free software application designed to introduce beginners to one of the most fundamental aspects of programming--looping. It allows novice programmers to graphically manipulate an environment of streets, avenues, and walls using a simple programming language. (BTW this blurb is mostly plagiarized from GvR.)
Here is a small Webster van Robot that uses all of its features:
Here's how to see it in action:
go to http://webstervanrobot.com/
edit the program to say "do 2:" instead of "do 1:"
click on the run button
(try out Demo #2 as well if you like)
How is Webster van Robot different than Guido van Robot:
1) It runs directly out of the browser! No installation required.
2) It has only one programming construct now. This is mostly a function of where I am in the development process, but you can always argue that simplicity is a feature!
3) I have slightly different built-ins. I decide to build in both "turnleft" and "turnright," as well as a new builtin for "build_wall_on_left." I've always thought that Karel and Guido should start with a blank slate and build their own environment, without having to deal with "world" files.
Although I think of Webster van Robot mostly as a toy at this point, it got me thinking about the deeper problems of programming language literacy. I really believe that most people should be able to learn Python in their lifetimes, but there needs to be a gentle progression to get there. I've seen Guido van Robot used in only a couple classrooms, but that experience was enough to convince me that there's still a quantum leap from minimalistic languages to Python itself.
I'm also a huge believer that web apps will always meet with less friction than desktop apps.
1) Plug in new model/views. Streets, avenues, and walls aren't for everybody.
2) Plug in new builtins. Move, turnright, and build_wall_on_left aren't for everybody.
3) Allow a gentle progression through flow constructs. Start with "do," then introduce "if," "while," etc.
4) Allow "def" fairly early in the process too.
5) Allow gentle introduction of data structures and variables. (This is the place where Karel the Robot and Guido van Robot don't have any ambition to fill a gap, and I think this is where the quantum leap comes into play. I also think the lack of basic variables and expressions make it harder to write "fun" robot programs too.)
Anyway, hope some of this is food for thought.
More information about the Edu-sig