Scratch

Just one quotation about Scratch: 'Scratch rewards the user for the 99% of their program they get right, rather than penalising them for the 1% they get wrong'.
We use Scratch as a gentle introduction to programming: like Alice there's 'no writing' of your program, but it is (in my opinion) a lot easier to use and faster although not so much of a general programming system. It's almost impossible to get any sort of error other than logical ones ('my program does something but it's not what I wanted it to do').
Behind the scenes it's based on Squeak, which is Smalltalk, without which we'd all be a lot poorer in terms of our computing experience.
You cannot easily manipulate strings in the way that you can numbers, but for animations this should not be a problem, and version 1.3 has added lists which might come in useful.
By using the broadcast and when I receive blocks you can pass control from one co-routine to another, and having multiple processes running at the same time is a doddle; in fact it is so easy that students create multiple processes without thinking things through, and have a very early introduction to the problems of synchronisation.
One of my students created a zombie game with it that, although simple, used sound and animations in such a way that he ended up with a really frighting experience.
John Stout
About the only thing to be careful about, I would say, is that when creating variables you can make them 'global' or 'local to a particular object', but the only way to tell one from the other when they displayed on the screen is a very subtle colour difference.
We use Scratch as a gentle introduction to programming: like Alice there's 'no writing' of your program, but it is (in my opinion) a lot easier to use and faster although not so much of a general programming system. It's almost impossible to get any sort of error other than logical ones ('my program does something but it's not what I wanted it to do').
Behind the scenes it's based on Squeak, which is Smalltalk, without which we'd all be a lot poorer in terms of our computing experience.
You cannot easily manipulate strings in the way that you can numbers, but for animations this should not be a problem, and version 1.3 has added lists which might come in useful.
By using the broadcast and when I receive blocks you can pass control from one co-routine to another, and having multiple processes running at the same time is a doddle; in fact it is so easy that students create multiple processes without thinking things through, and have a very early introduction to the problems of synchronisation.
One of my students created a zombie game with it that, although simple, used sound and animations in such a way that he ended up with a really frighting experience.
John Stout
About the only thing to be careful about, I would say, is that when creating variables you can make them 'global' or 'local to a particular object', but the only way to tell one from the other when they displayed on the screen is a very subtle colour difference.