I applaud your efforts, and hope everything is well with you and your daughter.
I do want to raise a note of alarm. I recall struggling through Java and C++ syntax as a kids, and though I did get through without too many scars, I remembered much pain upon reading of Natasha Chen's encounter with programming classes. In this article:
She details how boring classes organized around syntax displaced creative teaching and work. But she then explained how learning Scheme revived the magic for her: that the extremely simple syntax allowed her to focus on the ideas directly, learning, all the way.
I love Scheme, and it would be a great choice. Squeak, too would be terrific - it seems to have been developed with kid's exploration in mind: (see for example, http://www.squeakland.org/kids/kidsmain.html). Even Java might not be so bad.
But I would take caution. Making GUI apps in Java wasn't very fun. I recall my frustration with Swing and exception hierarchies and paths and packages and altogether it's just not an experience I would revisit. Maybe it's better to learn something designed to be easy. Something designed to grow with you.
This looks an awful lot like my childhood experience with Hypertalk. (In fact, I suspect Hypertalk might be better-developed than this framework.) It was okay, I guess, but Hypertalk wasn't a real programming language and I'm not sure this is either. I probably learned more from an even earlier childhood experience with (heaven help me) Basic.
If I were trying to teach someone to program today, whatever their age, I wouldn't dream of starting in any language other than Python. Seriously, Java?
I learned Lisp aged 12, after messing around a bit with Basic. I consider myself very lucky for having had that experience. Writing an ELIZA clone at that age was a lot of fun - I remember in particular thinking it was hilarious to give my version a very rude personality ;-)
Kids have a poor grasp of logic and cause/effect, so you can only teach kids what is in their "zone of proximity". For instance, it might be better to teach kids how to manipulate an existing program, like changing the color of a circle that is being drawn, or changing the radius. Slowly, you could introduce more complexity in the modifications. Trying to teach kids a language outright wouldn't be feasible.
Nonsense. I started learning QBASIC when I was 5 and was competent by 6. That's not a fluke; one of my elementary school classmates in a class of 40 started just as early, and in fourth grade a second friend easily picked up Visual Basic on his own when I introduced him to it. I'm very happy that my parents never learned about Piaget.
What about Alice from Carnegie Mellon? Randy Pausch (of life wisdom) fame. In Alice, programming errors cause objects in the Alice 3D virtual world to have unusual visual properties and/or behavior. http://www.alice.org
First lang i learned was TRUCK , when I was the ripe old age of 13. It was on a CD and you basically used the statements GOTO, LOAD, and UNLOAD to get a truck to drive around and pick up barrels... it was fun stuff.
http://www.trollope.org/scheme.html
(here's the comment I left on the blog)
Hi there,
I applaud your efforts, and hope everything is well with you and your daughter.
I do want to raise a note of alarm. I recall struggling through Java and C++ syntax as a kids, and though I did get through without too many scars, I remembered much pain upon reading of Natasha Chen's encounter with programming classes. In this article:
http://www.trollope.org/scheme.html
She details how boring classes organized around syntax displaced creative teaching and work. But she then explained how learning Scheme revived the magic for her: that the extremely simple syntax allowed her to focus on the ideas directly, learning, all the way.
I love Scheme, and it would be a great choice. Squeak, too would be terrific - it seems to have been developed with kid's exploration in mind: (see for example, http://www.squeakland.org/kids/kidsmain.html). Even Java might not be so bad.
But I would take caution. Making GUI apps in Java wasn't very fun. I recall my frustration with Swing and exception hierarchies and paths and packages and altogether it's just not an experience I would revisit. Maybe it's better to learn something designed to be easy. Something designed to grow with you.