Learning Computer Programming from Scratch

A Programming Environment for Elementary School

Wayne McDonald
In my previous post I introduced the reader to several online assets relating to computer science education that are suitable for several grade levels. In today's post I would like to introduce a teaching tool that is suited to, and explicitly designed for, use in elementary school: Scratch.

Scratch was developed by the Lifelong Kindergarten Group (warning: cool website if you follow the Projects link !) at the Massachusetts Institute of Technology (MIT) and was funded by groups as diverse as the National Science Foundation, Microsoft, the MacArthur Foundation, Iomega, and Google. With the financial and intellectual backing of such groups, you might expect that the eventual outcome would be an overpriced, egghead-friendly, klutzy piece of software. Let me assure you that Scratch is none of these.

The program iis built around a graphical user interface representing a "world" into which the user can place images that represent real world objects such as scenery, locations, and even people. From that point different behaviors can be assigned to each object governing how those objects interact with their world and with each other. This is easily accomplished by selecting different interactive "blocks" or "tiles" which describe things such as movement from one location to another, body position, and even sounds or music to build the "story line" being developed by each user.

Scratch is written using the Squeak "dialect" of the Smalltalk programming language. Although these languages may be unfamiliar to many readers, you can take my word that these programming languages are "mature" in both the temporal and objective senses. Translated, this means that it is actually pretty difficult to "crash" or "break" Scratch or any other Squeak / Smalltalk program. We can only wish that other programming languages were so durable and forgiving of our errors.

Finally, although Scratch certainly isn't anything near a "real life" programming environment, it does teach real life skills such as analytic, structured reasoning and, if used in a school environment, demonstrates the importance of personal initiative, individual responsibility, and teamwork in accomplishing complex tasks. For a more in depth look at how Scratch accomplishes these tasks, see Educating the Digital Generation and the Scratch Forums.

You can obtain the latest release of Scratch from its download page and, along with a little help from the various how-to videos and the Scratch Reference Manual, you and your child can begin to use Scratch less than an hour after the download begins.

In summary, if you want your child to benefit from an early introduction to computers and computer science, you will be hard pressed to find a better resource than Scratch.

Published by Wayne McDonald

I'm a retired Physician's Assistant with special qualifications in adult & pediatric echocardiography (heart ultrasound) and cardiovascular testing. I'm also working on my master's degree in history.  View profile

To comment, please sign in to your Yahoo! account, or sign up for a new account.