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
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
Drive a Car around a track HINT : follow the excellent tutorial
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
Bouncing Basketballs HINT : add the acceleration to the forwardBy every tick
.....
- Star-eating Snake
HINT : Use the 'copy' message to gorw an extra body segment
...
- Prisoner's Dilemma
HINT : Store the history in a linked list
.....
- 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@squeakland.org http://squeakland.org/mailman/listinfo/squeakland
squeakland@lists.squeakfoundation.org