Getting Things Done with Smalltalk + Seaside

I've been learning Smalltalk + Seaside over the past few months, mostly because I like learning new programming languages and Smalltalk + Seaside seemed pretty different to my usual Python + Django. So I've created a simple Getting Things Done app to give me something real to play with.
It's pretty basic, but big enough (for me at least) to get a real feel for the tools. Feel free to download and play with it here:!/~ericclack/GettingThingsDone
I've tried to test that I have included all required dependencies, and downloading to a fresh Seaside image seems to work, but I'm new to Smalltalk so may have missed a few things.
Have fun and let me know if you have any comments... 

Scratch Club 24 Apr 2013

Notes from second Scratch club...

What went well?

  • Some of the kids are already developing quite advanced games
  • Still lots of enthusiasm and excitement about the club
  • Demos still a real motivation

What could be improved?

  • What we learnt last time hasn't stuck for many kids
  • Still lots of dependence on me, frequently kids stuck waiting for me to answer a question
  • Sometimes excitement spills over and kids find it hard to settle back to the task
  • A few kids find it challenging to concentrate for more than a few minutes.

Ideas for improvements

  1. Plan each lesson with some overlap on the last lesson: build on things already covered to reinforce learning.
  2. Visit every kid in rotation for Q&A, stop kids shouting out for answers and encourage them to try to find solutions first while they wait for me to come round.
  3. Some cheat sheets or tips for common tasks and reinforce things we've covered, such as: getting a sprite to follow the mouse, getting a sprite to bounce around the screen, using the cursor keys to move a sprite.
  4. Try answering individual's questions to the whole group, e.g. on the white board so that everyone can see the answer.
  5. Nominate a random helper each week to help the group?
  6. Send some resources to parents to help kids be practice at home, e.g. starting out with Scratch. 
  7. Create some tasks to practice at home.

Programming concepts discovered:

Bear in mind that many things covered last week had been forgotten!
  • If-statements and events such as speech bubbles and sounds
  • Some of the sensing instructions, such as touching another sprite
  • Broadcasting messages to change the background, e.g. to "You've won!"
As before, not all children got all of these.

What next?

I think next week it should be less about learning new things, and more about creating a better learning experience (see above).


  • If-statements to make things happen (e.g. killed by a monster)
  • Sequencing and nesting commands, what difference does it make?
  • Logic: one thing and another happening, 'or', 'not', etc.
  • Moving along more interesting paths, e.g. spirals, random paths
  • Variables to control aspects of the game

Scratch Club 17 Apr 2013

I've just completed my first Scratch Programming Club and here's a quick retrospective...

What went well?

  • Kids' enthusiasm for learning
  • Scratch is a great environment, it's easy, safe and encourages exploration
  • Kids are fast learners and have great imagination
  • Games are great inspiration for the kids to try out programming
  • Then end of lesson demo was fun.

Programming concepts discovered:

  • Sprites, Script and other Scratch things
  • Movement controlled by some input, e.g. pressing a letter
  • Loops to repeat movement, and infinite loops
  • Turning and bouncing off the edges
  • Chasing: one sprite chasing another
  • Using the pen to leave trails
Not all children got all of these, but most got most of them.

What next?

  • If-statements to make things happen (e.g. killed by a monster)
  • Logic: one thing and another happening, 'or', 'not', etc.
  • Moving along more interesting paths, e.g. spirals, random paths
  • Variables to control aspects of the game

What could be improved?

  • I tried to give the kids the option of a Game project vs an Art project—they all showed interest in both, but we all ended up doing just the Game project as it was hard enough giving guidance on one thing.
  • Most of the children learnt alone (no one shared a computer) and they saw me as the goto person for problems. It would be good to get them working together more.
  • I had from 12:20 to 13:00, and 40 mins is not much time, but that's all we have as this is a lunch club. Is there some way to join up sessions so that kids can make progress one week to the next?

Teaching programming using SOLE (Self Organised Learning Environment)

Further to my previous post on teaching Scratch in schools I'm wondering whether I can use a different approach, called SOLE, to encourage more independent learning and creativity.

SOLE stands for Self Organised Learning Environment, where self = the student. So the children drive the learning, with the 'teacher' asking an interesting question to get things started, setting out the process and basically staying out of the way as much as possible.

Sugata Mitra has popularised this approach (through research and TED talks), here's a great introduction:

How it works

The room is set up with a computer with internet access for each group of students.

First the teacher asks an interesting question to direct the learning (see below)

There are some simple rules:
  • Students need to form small groups (of about 4) — they can choose their own groups and change groups at any time.
  • Children can look to see what other groups are doing and take that information back to their own group
  • They should be ready to present their answers back to the class at the end of the session

Asking big questions

To kick off each SOLE session I need to set a question that the students will research. These should be open ended, difficult questions (so no 'yes/no' questions). For example:
  • Is a computer intelligent? Can it trick you into thinking it's a human?
  • How fast are your visual reactions? 
  • How fast are your listening reactions?
  • How long do you need to see something to recognise it?
  • What makes a computer game addictive?


It seems that the collaborative nature of the SOLE approach is key, and this is much more effective than each student working alone with their own computer. We'll see how this works out in the classroom, I'll report back once I've given it a try.