[Squeakland] EToys Experience Report

Alan Kay alan.kay at squeakland.org
Wed Mar 23 09:38:13 PST 2005


Hi Kevin --

Let me see if I can help.

There are two somewhat opposite observations about Squeak/Etoys.

First, it is a demo system aimed at 9-11 year olds for helping them 
understand math and science (and a little bit about computing) via 
investigations and authoring. So some things are quite easy and some are 
awkward. Later this year we plan to release a larger scale version of this 
kind of authoring that should fit wider needs better.

Second, there is much more that can be done with the current Etoys than 
easily meets the eye or is easy to find in our inadequate documentation. 
But a little sleuthing will help.

For example, your first category has as an example a need for collections. 
If you had tried one of the animation examples on the squeakland website, 
you would have found an object called a holder, that functions as a kind of 
flexible array. You would also have seen how to do these animations in The 
Powerful Ideas in the Classroom book, that is available on the website, etc.

You mention the need for 10 projects that are ordered. That's what the 
Powerful Ideas in the Classroom book contains. You said that you ordered 
it, so this will help.

I don't have much of a comment about teaching computer science concepts to 
a 9 year old (you should be able to if you want regardless of whether this 
is a high priority for a 9 year old's time).

 From your email, I think you will have a better time with the larger scale 
version to be released this year, since you have already picked up many 
habits from your previous experiences with computing.  I think you realize 
that these are a double edged sword, particularly when dealing with 
children. If you are really trying for learning then you want an 
environment that is less like a productivity tool (with lots of prefabbed 
parts) and more like a classic tinker toy with a few parts that can be 
assembled in lots of ways. This should be combined with a sense of what can 
be really understood by the child vs recipe following. For example, an 
enormous number of interesting things can be done with simple addition and 
this will help the child get much more numerate about how numbers can be 
taken apart and put together.

It can be difficult for many adults (who are interested in learning things 
themselves) to scale back the number of tools and principles (but not the 
depth) to a useful level for children. We use the old Model T Ford as a 
motivating artifact. It was a real automobile, but anyone could take it 
apart and put it back together.

For example, one thing you might think about is all the ways "increase-by" 
can be used to model phenomena over time, from simple counting at different 
rates, to uniform and accellerated movement on the screen, to sampling 
images for animation and sound samples for synthesis, etc. All of these are 
easily doable by the current system. "Increase-by" is the powerful idea of 
a first order differential equation and it is a great "powerful idea" for a 
child to absorb deeply. We have found that 5th graders can easily deal with 
2nd order DEs and thus be able to model accellerated motion of various kinds.

So one way to get the fullest quality from what is available is to aim at 
curriculum ideas that the current system is set up to handle (and hope that 
we can make good on our plan to release a first look at the larger scope 
version later this year.

Cheers,

Alan




At 04:45 PM 3/22/2005, Kevin Lawrence wrote:
>Hi Squeakland,
>
>Some background first on why I am so excited about Squeak/eToys :
>
>I downloaded Squeak a couple of weeks ago with a view to getting my 9
>year old excited about computers/programming/math/science and most of
>all encouraging him to use his creative side more. Dylan has been doing
>Logo at school since first grade and is very good at it but, sadly, he
>doesn't enjoy it any more.
>
>Once a week he comes home with a completed Logo assignment. They started
>out as the usual draw a house/draw a star/draw an XXX and after four
>years the XXX is ever more sophisticated but the solution is still just
>an ever more complex sequence of repeat 10 [rt 50 blah blah blah]. He
>gets 100% for pretty much every assigment, but it has long ceased to be
>fun for him. I tried encouraging him to try some different ideas in Logo
>at home, but that was a non-starter because he associates Logo with
>boring stuff he does at school. Fun with Logo is an oxymoron for him.
>
>Enter Squeak.
>
>
>I downloaded squeak and tried the driving tutorial and was amazed - it
>was exactly what I was looking for. Dylan was also amazed that you could
>do "that kind of thing" with a computer. I left him to his own devices
>and he did the driving thing (follow a line) on his own with no guidance
>from me. He also did a "drop a 1000lb weight on a little man's head and
>make him howl" thing - exactly the kind of creative play that I was
>hoping for. I think he was more creative in those 3 hours than he had
>been in the previous year.
>
>That's the good news.
>
>
>I searched extensively for examples for him to try to direct his play a
>little and avoid having him get bored and that's where things got
>frustrating for both him and me.
>
>I tried to stay one step ahead of him on each example and I got stuck an
>    awful lot. After thinking about it for a while, I have come up with a
>small number of categories of stuckness and I'd like to ask for some
>help : for me in the present - and for other's like me in the future.
>
>
>Category One Stuckness - Computer Science Concepts
>
>This is a hard one and probably out of scope for Squeak/eToys. To solve
>some problems, you need to understand certain concepts. For example, in
>one example I was working through I knew that I needed a collection of
>somethings. I knew that because I have been around computers for a long
>time but my son has no concept of collections. Some concepts (like
>variables and scripts) he figured out for himself but at some
>appropriate point he will need to be taught some of the more difficult
>concepts. No complaints at all about Category One Stuckness.
>
>
>Category Two Stuckness - Find the eToys implementation of a concept
>
>This is where /I/ got stuck a lot. Continuing on the 'collections'
>theme, I wanted a collection of somethings and looked for an array-like
>property/player/something.
>
>After searching in vain (both within the eToys UI and on the Internet)
>for how I might create an array, I realized that I would do better with
>a linked list. This time my painful search (of the eToys UI and the
>internet) was fruitful.
>
>It took me two "Ah Ha !" moments - one to realize that I needed a linked
>list, another to figure out how to implement one in the eToys UI. Once I
>understood, the rest was easy. (I haven't tried to pass that knowledge
>on to my nine year old yet but ....)
>
>A sub-category (2b ?) of this would be not even knowing whether an
>implementation of a concept even exists. I figured out how to do a
>linked list, but I still have no idea whether it is even possible to
>make an array. Not having arrays in eToys is fine. Not knowing whether
>arrays exist in eToys is painful.
>
>
>
>Category Three Stuckness - It's different
>
>As a professional programmer who works extensively with procedural
>languages I am used to this feeling of knowing how /I/ would do it
>procedurally and knowing that I need to do it differently in /this/
>environment. Once I realize that things are done a different way in
>eToys (or XSLT or OO or Logo or SQL or whatever) it's just a matter of
>practice until I am used to the new way.
>
>My embarrassing example of category three stuckness was when I couldn't
>figure out how to find the average of two numbers :-(
>
>I guessed that the usual arithmetic precedence did not apply and I had a
>faint memory from the tiny bit of smalltalk that I know that expressions
>are evaluated left to right... but it took me an embarrassingly long
>time (and a peek at the generated smalltalk) to figure out that
>expressions are evaluated right to left. [Aside - what's the reason for
>that ?].
>
>Even once I understood the rules I found the mental gymnastics to do
>even simple arithmetic frustrating because it is so different from what
>I am used to.
>
>
>
>
>The worst thing about having to navigate by "Ah Ha !" moments is that
>finding out the answer just makes you (me anyway) feel even more stupid
>because you didn't think of the answer before.
>
>
>Having trawled the history of this mailing list, I know I am not the
>first to get stuck on these things. I hope it's helpful and not annoying
>to the Squeak community to hear some of these things yet again. I mean
>well :-)
>
>
>
>Very often the response to issues similar to mine is either "Sorry.
>EToys is experimental - don't expect product quality" or "We need more
>documentation" and I wonder if the idea of perfect documentation gets in
>the way of having useful but minimal documentation.  I wonder if there
>is a pragmatic, middle-way solution to issues like these ?
>
>
>The Drive a Car tutorial is outstanding as a way to get started and
>introduce the basic eToys concepts, but once I get through that I want
>less step-by-step guidance and more hints to help me get unstuck.
>
>
>I like (and my son seems to like) the challenge of having just enough
>understanding of the end goal to be able to figure it out by myself -
>or, more likely, change the goal to something more interesting to me -
>and I like just enough hints to help me when I get stuck. Both Dylan and
>I, have the patience to make it through about one tutorial before we
>want to just go explore. A list of ideas can help make the exploration a
>little more fruitful and directed.
>
>
>For example, I would have found it very helpful to have a list of (5 ?
>10 ? 50?) projects (perhaps ordered by difficulty) that are do-able in
>eToys.
>
>There would probably be hints aimed at different audiences. For example
>(for a computer savvy teacher) "Hint : try using a linked list" or (for
>a child) "Hint: Check out the 'color under' property".
>
>
>
>Something like this
>
>1. Drive a Car around a track
>    HINT : follow the excellent tutorial
>
>2. Salmon navigation
>    HINT : draw the river as a gradient
>    HINT : Watch the saturationUnder as you move your salmon around the river
>    HINT : store the previous saturation in a variable
>
>3. Bouncing Basketballs
>    HINT : add the acceleration to the forwardBy every tick
>
>.....
>
>14. Star-eating Snake
>    HINT : Use the 'copy' message to gorw an extra body segment
>
>...
>
>27. Prisoner's Dilemma
>    HINT : Store the history in a linked list
>
>.....
>
>38. Kepler's Law
>    HINT : Think of a player as a vector
>
>
>
>As I type this, I realize I have made an assumption about who the
>audience would be for a list like this and - of course ! - it's someone
>a lot like me. A third-grade teacher with a minimal computer background
>would need much more hand-holding. So before I go any further I should
>probably ask : Is my situation [a computer-savvy parent/teacher trying
>to work through projects with a child] typical ?
>
>
>A last question before I finally shut up - any suggestions for how to
>proceed ?
>
>I have the Powerful Ideas book on order, and I downloaded the 4 tutorial
>PDFs at squeakland.org. What would YOU do next in my situation ?
>
>
>If you made it this far through my ramblings - thanks ever so much for
>your patience ! And thanks even more for Squeak !
>
>Kevin
>_______________________________________________
>Squeakland mailing list
>Squeakland at squeakland.org
>http://squeakland.org/mailman/listinfo/squeakland



More information about the Squeakland mailing list