Friday, April 20, 2007

guide to learning etoys / squeak

Why?

Partly because it's packaged with the OLPC and so will be used by millions over the next few years. I want to be part of that process and learning Squeak is one way to become involved.

Partly because Squeak is amazing but the overall advocacy is not the purpose of this article, so I'll leave that for now. The two recommended articles below by Alan Kay will help get you started here.

How?

This is a bit tricky because of these quirks: mouse buttons, User Interface and patchy on line documentation. I'll explain these as I go along

Good articles

Read these carefully, if you haven't seen squeak / smalltalk before there are some quite different ideas in there. I certainly didn't appreciate all the nuances until after I had actually played with squeak as well
Squeak Etoys Authoring and Media
Squeak Etoys, Children and Learning

First Projects

The tutorials here are good but don't start with Kedama, which is more advanced, do that later. Scroll down to the Painting, Handles and do those first. You need to do the Handles tutorial because the morphic UI is different to anything you have used before.

Then go to Drive a Car tutorial, which is well documented on line


Edit on line in a browser. Amazing!

Late binding means that you can inspect and even edit projects on the web. In puzzling how to do a simple animation I came across the term "Holder" but didn't know what it was. Later on I read about it in one of the Alan Kay articles mentioned above. But I still wasn't able to use it correctly. However, by going to Sam's face ball animation I could see how it worked directly. I was still puzzled though as to what sort of entities were inside the holder. But I could figure this out directly by middle mouse clicking (note the mouse quirk) on the objects in the holder and seeing their names: Sketch1, Sketch2, up to ... Sketch7, that they had all been made from the initial Sketch.

Sam's script is on display too and by reading that in conjunction with the Alan Kay article I could figure out how to do it


The screenshot shows the light brown holder containing the elements of my imitation of Sam's Face Ball animation, but better to click on the link above to see the online dynamic version

So, I have now reach beginner status. Where to next?

Some things are so annoying and I don't know whether that is my ignorance or a deficiency in the program. For example, when using Paint Undo only goes back one step, I don't know the keyboard shortcuts and I can't copy and paste a part of a drawing. Where is the help, mentoring, documentation? This is a definite problem. Everything is patchy, nothing is comprehensive.

I have searched the web more than once and the best I can come up with is this:

Buy the B.J. Allen-Conn and Kim Rose book, Powerful Ideas in the Classroom (squeakland, amazon)
It includes 12 "Etoy" projects in a sequential curriculum that explore powerful ideas such as feedback, increase-by, acceleration and gravity
There are other great more advanced books available about squeak but this seems to be the only one specifically about Etoys, the drag and drop where beginners will start.

Join the Squeakland discussion forum. Visit the archive to check out the quality of discussion. Recent example of an interesting comments I found there:
Eric Eisaman (4th April):
Well, I have been using Squeak Etoys for two years in my high school classes as a means to create physical simulations, presentations, and games. I like Etoys as an initiation to object oriented programming however, at times students students become overwhelmed with Etoys. If this happens frequently within a specific class of students, I have them use "Scratch", available at scratch.mit.edu . "Scratch" is a gentler approach to programming than Etoys yet lacks some of the advanced functionality. Next year I may start everyone in "Scratch" before moving on to Etoys. The more advanced students have shown some success in creating with the latest Full Squeak image without using Etoys. I am however, limited in my own abilities to help the advanced students. I have done a few tutorials with Tweak yet lack enough understanding to use it in class. I feel that Croquet will be a great option for my classes, but I continuously receive callout errors when the program tries to access the OpenGL library which I know is installed. I think it's important for the students to see growing levels of sophistication built on the same basic virtual machine going from Scratch to Etoys to Squeak to Smalltalk
Also it's great to see that experts like Alan Kay, Kim Rose, Bert Freudenberg, Ron Teitelbaum and Stéphane Ducasse are contributing to this forum!

6 comments:

Anonymous said...

Why do you think they did not include scratch with one laptop per child?

I think scratch is better.

http://kidslike.info/teaching_children_how_to_program_computers_comparing_squeak_and_scratch/getpage.apx/pageid%3D031517104407

http://kidslike.info/scratch_computer_programming_tutorials

Bill Kerr said...

hi anonymous,

Thanks for the links to excellent scratch resources - I just wrote a new blog about them

Scratch is now available for the OLPC. Scroll down to the programming section of the activities page.

Anonymous said...

Hi Bill,
The page you linked to is very interesting. It has a lot of educational software. Have you written about the others? I'd like to explore some of the others.
parenting.is.fun
on
kidslike.info

Anonymous said...

why do you think they preinstall etoys but not scratch?

Bill Kerr said...

hi anonymous,

To explore the other software on the OLPC, here is one suggestion, even if you don't have an OLPC: evaluating Sugar in the developed world

Why is etoys preinstalled and not Scratch (on the G1G1)? I'm not certain but my guess is that etoys came before scratch, historically - it took a while before a version of scratch which ran on linux became available. Someone told me recently that OLPCs now ship with only the journal and the hosts decide what software to put on. So the situation seems quite fluid to me in terms of what goes on and what doesn't.

I agree with you that Scratch is better for getting kids started with programming.

nbnds said...

great resources compilation ! many thanks !