Scratch is a great environment for learning to program produced for free and to a very high standard by the Kindergarden Lifelong Learning Group at MIT. This is the home of Logo and many other computing frameworks for children.
Scratch is aimed at 8-12 year old children although it can be used to teach programming concepts to younger children. The design environment currently runs on PCs and Macs and the created project can be shared and run on most web browsers.
The Scratch environment comprises a small screen area, or stage, upon which various programmable sprites may roam. Sprite behaviour is determined by a program which allows the sprite to move around the screen and respond to events including keypresses from the user and messages broadcast from other sprites. Each sprite has a number of costumes which change the appearance of the sprite to product an animation type effect. Speech bubbles and sounds (including playing of mp3 files) can also be made by a sprite.
Programming is effected by dragging blocks from the project design application and filling in the spaces required by each programming command. A sequence of commands can easily be defined and performed by the sprite each time it is double clicked by the user or a particular key pressed. Control blocks allow for iteration of commands so that they can be repeated any number of times or continue forever to define the behaviour of the sprite. Conditional statements allow for different commands to be executed according to the current status of the Scratch environment.
Scratch is inspired by research into robotics and allows sprites to interact with each other either by broadcasting and reacting to messages or by monitoring the distance to the nearest sprite. A number of sprites can exist on the stage, each behaving independently and reacting to the behaviour of others, encouraging the emergence of interesting behaviour. Scratch projects are easily shared on the internet and will run on any web browser using a java applet. Scratch programmers are encouraged to load their projects onto the Scratch website (scratch.mit.edu) to share their projects and allow others to download and modify the underlying program.
Individual sprites can also be exported and imported to projects for collaborative projects. Scratch is particularly suited to the creation of simple games and entertainment programs and also to the creation of story telling environments with sprites moving about the stage with speech bubbles of making sounds. A simple board can also be purchased from MIT with a few sensors including a light sensor to allow scratch applications to interact with the real world.
Scratch is a limited programming language designed to allow young programmers to easily create applets containing intelligent agents that can move, change appearance, make sounds, and interact with each other and the user. There are no facilities for creating procedures or shared code with parameters, text processing, mathematical functions, data representation or storage, networking, and many other features that make Logo, for example, a rich language. Many of the features of Scratch exist in StarLogo (also from MIT) but Scratch provides a top quality interface that encourages creativity through computer programming and a website to encourage sharing and learning.
Scratch is the perfect introduction to programming for young programmers and a welcome boost for teachers wary of teaching programming with Logo or frustrated with the quality or cost of other child oriented programming languages.
© redware research limited 2007