Sunday, November 11, 2007

why learn etoys squeak?

Etoys is part of the OLPC - that may well be a catalyst to learn etoys if you are interested in what software the OLPC will be delivering to (perhaps) millions of children. It was for me.

But here I'm trying to (briefly) outline some of the broader arguments for learning etoys, as a piece of interesting software:

1) It represents an integration of some very good ideas that have taken some years to develop and have been expressed so far on these systems: logo, smalltalk, hypercard, starlogo. (What each of these systems offered could be spelt out in more detail)

2) It is an exploration of a visual-kinesthenic programming approach, which can be expressed with this slogan, "doing with images makes symbols" (from Kay, based on Bruner). In part this is constructionism but it is also pointing to a relationship between doing, visualising and abstraction that can work for young children.

3) It is a "live" system. The code can be written and variables manipulated directly while the system is still running in front of you. This makes powerful ideas such as variables and feedback far more accessible. It has transparent parallelism (aka late binding)

4) It represents an attempt to make an object <-- message model of programming accessible to children, a better underlying model to represent complexity than a procedural model. Some people have argued that this OOPs model cannot be taught to children but Etoys represents an attempt to show that it is possible.

5) In etoys the GUI consistently represents the underlying model. For example, you have drag and drop visual tiles which then spell out something like:
ball's heading <-- 45 + random(90)
This is like an English sentence:
<object> receives <message>
So, it is arguable that the meaning of the code will be accessible to young users who understand simple English

6) It contains a further evolution of the user interface called morphic, a range of halos that enable direct manipulation of objects (see screenshot)

7) There is an underlying philosophy of user as designer, not only of the immediate task but of the system itself. The latter part of this point ("of the system itself") may not be immediately apparent but the user is not being treated in conventional sense of "user friendly" but in the sense of a potential co-designer.

IMO it's fair to say that etoys is not particularly easy to learn. I think that the main point about visual programming systems is not about "easy" but about different channels of representation. Some learners become more engrossed in visual-kinesthenic systems. However, I'm pretty sure that Game Maker and Scratch are "easier" than etoys. Teaching etoys to experienced users requires a lot of instruction in the early stages because it is quite different to systems that these users are used to.

So my argument is not one of "user friendly" but that it is an innovation, an exposure to a different way of doing computing - a rich and fruitful pathway

No comments: