Mark --
At 11:01 AM -0400 7/5/02, Mark Guzdial wrote:
On Thursday, July 4, 2002, at 02:23 PM, Alan Kay wrote:
It must be someone else you are thinking of. I've never taught children anything but OOP. I don't think adults or children who have *never* programmed are challenged in the least by OOP.
Thanks, Alan -- I did misinterpret you. My apologies.
Well, I think this is a confusion with "objects" and some of today's "object-oriented systems".
That's probably where I stumbled -- it's not the "objects" but the current, common "systems" that are at the wrong level for an introductory University course. Thanks!
For example, I am astounded that folks who teach Squeak in
college haven't done a lot more to make an introductory environment that gets beginners quickly into the many media objects in Squeak. This would be analogous to what we did with the etoys for children, but with more range.
I think the problems are skills, range, and time. It's rare that one finds in the same person(s) the skills at developing classes/curricula, understanding novice programmers and the learning issues, AND implementing introductory programming environments. And even if one can assemble a team with the skills to do all of this, it's a large effort and takes a lot of time. It doesn't HAVE to be a huge effort, but I think our design processes for educational software are young yet.
These are very good points all, but I think I'm still unconvinced as to their necessity. It seems like this could be part of the training + dues for new grad students -- that is, to learn how to take care of and make better the programming environments, etc. This was a tradition in many of the 60s ARPA projects, especially at MIT, Stanford, CMU (then Carnegie Tech) and Berkeley. It still seems like a good idea, at least for special environments that reflect the particular interests and directions of teaching programming, etc. In a similar vein, I'm on the "Engineer of 2020" committee of the NRC/NAE, and I think one of the recommendations we are going to make (I'm pushing hard for this) about training for young engineers is to go though a course of study which includes "3rd World Design" and/or "appropriate technology". The idea here is to learn how to do "human scale" engineering that really provides leverage, but avoids "superhightech" if it isn't necessary. An "Aladdin" kerosene lamp is such an example: the light of an 85 watt bulb from the simplest of materials. It could have been made by hand back in Greek and Roman times (but wasn't because they didn't really understand how to make light from simple materials). No powerplant, no steel mills, etc., but great light! Another is E.F. Schumacher's solution to plowing efficiently with tiny amounts of power and not compacting the soil, etc. A lot of us think that children need something similar to reappear in their toys: where parts are sensible, instead of millions of transistors, etc., locked up in sealed plastic packages. (Back to programming environments) I think it's time for departments who are interested in teaching both majors and nonmajors to make some of their tools and environments for doing so. *And* to have this be part of the training of the majors, especially grad students.
Cheers,
Alan
---------
Mark
--