-----Original Message----- From: Joshua Marker [mailto:lux@umich.edu] Sent: Wednesday, December 30, 1998 10:36 AM
No! Not at all. I turn people on to squeak left and right, but can only do it so quickly because they find it hard to believe and I have to show them myself. I guess they're inundated with the 'better than sliced bread' hype that they don't believe it when it's true. <g> If I had a book I could hand them, written not just for smalltalk but for squeak. . . .
Some thoughts on Squeak tutorials..
I am, of course, hardly an expert on Squeak. One format that I really like is that used in by Matthias Felleisen, Daniel P. Friedman in their books about recursive programming "The Little Ml-er," and "The Little Schemer". The books are set up as a dialog between a tutor and student. The tutor asks a series of questions and suggests exercises that build up a collection of program fragments. In the process the student (and the reader) makes some very interesting discoveries about recursive data structures, functions, and so on.
There are several advantages to such a format: 1. It maintains an informal and personal tone; 2. The reader can try each of the examples or read the student's answers and work on only the more challenging exercises; 3. It provides a nice format for introducing deeper issues of software design and meaning in addition to programming language syntax and semantics; and 4. It provides a nice format for exploring the experience of programming, including common pitfalls and misconceptions.
The other thing that would be important is to avoid the mind-deadening examples that often find their way in to most programming language tutorials. (Financial record-keeping anyone?) There are really interesting issues, both in the language design and in quite a number of application areas. The key thing would be to come up with a collection of graduated examples that are really exciting and model new techniques and approaches to programming and simulation.
Learning Squeak may involve more than figuring to use a new programming environment:
* Learning Squeak can be a way of learning to take control of part of one's information environment.
* Learning Squeak can be a way of entering in to the larger discourse about the nature of human thought and its relationship to simulation and language and logic. (And that dialog touches on a number of other fascinating discussions about the nature of perception and belief, cultural transmission and learning, the relationship between human societies and nature, and so on.)
I would love to see tutorials that would not only teach programming but also empower learners to create their own information space(s). I would also like to see tutorials that could be used as a springboard to help people full participant in that larger conversation about programming, language, etc.
Such tutorials might take the form of a library of interesting programs with explanations (and an annotated dialog relating the choices made by the designer.) Perhaps some parts of such a tutorial could be built out of an annotated (and edited) change log?