We want to introduce One Laptop Per Child computers into the government school system to assist kids with their usual studies and to provide them with a whole new world of opportunities. To do this we need to produce the necessary content to make the computers fit into the Nepali classroom environment. It's not the glitziest part of the job but someone's gotta do it!

Specifically our goal is to produce interactive learning material to cover the whole government curriculum for math and english in grades 2 and 6. This is a lot of material: we've started with the revision exercises for the first two weeks of second grade math (arithmetic, continue the series, match the quantity with the numeral, etc) and even that is a lot to do. To reach our goal for the next school year we will have to be extremely productive: we need to produce the content almost as fast as it can be consumed!

This seems to rule out having professional programmers do all of the work in our office -- there's just too much of it. We need a solution that allows designers, scriptors, and programmers around the world to collaborate to design, prototype, and perfect learning activities on their own initiative, and for the results to fit into a coherent teaching framework.

We especially hope to collaborate on developing content with the other Open Learning Exchanges currently being created in other countries.

We're only a couple of weeks into the implementation project, this is a very early status report!

The direction: Squeak

Squeak (also known as Etoys, in reference to its end-user programming features) is the extremely promising direction that we've taken. The images on the right are intended to put the words below into context.

Here's the idealized workflow we're developing with Squeak:

  1. Designer (skillset: web design, Powerpoint, Photoshop, etc) creates a learning activity on the screen using Squeak's drag-and-drop WYSIWYG interface. The designer will choose screen layout, produce suitable graphics and sound effects, and so on.
  2. Scripter (skillset: any programming - BASIC, Javascript, etc) adds prototype dynamic behaviour. For example: a script detects when the correct answer is given and plays a sound and displays a message of congratulation.
  3. Programmer (skillset: object-oriented programming - Smalltalk) adds any features needed to 'productize', for example: automatic creation of randomized new puzzles, score keeping, escalating difficulty level, etc.

Some good features of this approach are:

  • There's a low barrier of entry for designers: anyone can try it on their own.
  • The skills required to script designs into functional activities are relatively easy to acquire. The developers of Etoys and their colleagues are regularly teaching these skills to classes of ten-year-old children.
  • A production team of designers and Smalltalk programmers can incorporate the most appropriate designs into the main courseware repository.

Squeak itself has many more virtues worthy of mention:

  • Portability: The activities can will run identically on a wide range of computing platforms: Windows, Unix, MacOSX, Sugar on the OLPC XO. The activities will even run directly in a web browser provided that the suitable plugin is installed.
  • Squeak is one of the five supported programming environments included with every machine from One Laptop Per Child.
  • The Squeak community are already heavily involved in the development of One Laptop Per Child and have done extensive work to integrate with Sugar and its evolving interfaces.
  • Stability: Squeak has been in continuous development and use for over ten years and serves as the basis for serious applications such as Croquet, Scratch, and Seaside.

Early experience

We've been alternatively wearing the designer, scripter, and programmer hats and so far everything feels extremely productive. We can drag and drop an interface template together quickly enough to hold the attention of someone sitting and watching ("did you mean something like this?") and we've been able to add most of the necessary dynamic behaviour by way of drag-and-drop Etoys scripts.

It takes about two hours to teach a (non-Smalltalk) programmer to design and script Squeak/Etoys activities like the ones we've built. The skills are passed on very easily by way of face-to-face demonstration but they're difficult to pick up all by yourself. We must discover or produce more effective materials for people to teach themselves Etoys - please point us to anything that you have found especially helpful!

Next steps

  • To take the work we've done so far and to publish it as a traditional open-source project accessible to the wider Squeak community.
  • To finish a fully 'productized' activity complete with scoring, randomized puzzles, increasing difficulty levels, and so on. It will be interesting to see how much time and effort this takes and how much of the work is reusable for future activities.
  • Find a professional graphic designer and teach them to use Squeak. (For now we're programmers borrowing all icons from Gcompris or images.google.com -- thank you artists!)
  • To create more activities and invite other people to join us!