Although a very knowledgeable user can program directly in Smalltalk within Etoys, the interface exposed to learners is the Project. This is not a matter of simply bringing a feature to the attention of children, who would then be expected to grasp the implications by themselves. It must be made a major theme throughout the entire curriculum, including the use of Etoys models in every applicable subject.
The Etoys opening screen provides three main options:
- Pre-built projects
- Build a new project
The tutorials are excellent as far as they do, but they do not extend through project building, and provide no help at all with project design. A highly motivated learner with prior knowledge of Smalltalk can work through the pre-built projects and learn enough to create a new project from scratch, but schoolchildren will need a lot of help to reach that point.
The usual progression for teaching programming in Etoys in elementary school begins by letting children use programs up through second grade, and then show them how to make minor modifications to existing programs in third grade. Changing one number, for example, and observing the change in the project's behavior. Then over time the students can learn to make larger changes within a line; then to write an occasional line of their own; then to write whole methods; then to create objects; then to create projects.
An essential part of this process is the tile-based programming method provided in Etoys. This lets children compose object methods out of parts provide on a set of palettes. In this way, it is impossible to spell a keyword incorrectly, and there are no semicolons that can be inadvertently omitted. A numeric tile includes controls for increasing or decreasing the value to be used. Function tiles have places to put values as arguments. So we have removed many opportunities for syntactical and semantic errors that can completely block the progress of children. There are other advantages, as well.
We can also follow this path in the Turtle Art activity, where the tile-based programming is brought to the fore, and it is completely clear, visually, that we are building programs in tree structures, not linear text. Etoys also has a turtle art project, with a set of tiles providing a different set of actions. It will make sense to use both modules at different points. In particular, Turtle Art has tiles programmable in Python, while Etoys tiles are programmable in tile-based Smalltalk.