Lots of free tools that could be used in the course of teaching kids about computers.
I blog post about teaching Ruby to 4th and 5th graders. The teacher used the “Shoes” platform.
There’s also an article about teaching Ruby to High School girls:
This looks a lot like Logo only better.
From the site: “ROBO is a new and very simple educational programming language that will familiarize you with the basics of computer science by programming your own robot. In addition to an introduction into popular programming techniques, you will also gain insight into areas such as robotics and artificial intelligence.”
“RoboMind is meant to be a first introduction to automation and programming without prerequisites. Because many different exercises can be made, the difficulty level can be tailored to the audience. In primary education pupils can get acquainted to writing commands to navigate the robot through its environment, on high school programming structures get more attention and universities focus on the theoretical aspects of automation theory like Turing machines.”
It’s free and available for Windows, Linux and Macs. ( Waring! It requires Java 1.6, which only recently was available on Mac OS X. )
This tool shows the working of a computer CPU using the Little Man Computer Model (LMC).
The Little Man Computer was created by Dr. Stuart Madnick of MIT as a model for teaching the workings of a CPU. The LMC models the working of a modern CPU, but is still simple enough to be understood and programmed by high school students.
This module uses a combination of discussion and participant involvement to learn about the differences between analog and binary representations of information. Since computers use a binary numbering system, participants learn how to count in binary.
The goal of this activity is to illustrate the basics of working with the binary numbering system.
The goal of this module is to conceptualize how communication happens between the parts of a computer. Placed into the context of the things we use the computer (typing, displaying characters on the monitor, accessing the Internet) we can gain a clearer understanding of how the parts work together to accomplish tasks. Understanding this process is useful when troubleshooting hardware or software problems.
This page has lots of software that can be used for educational purposes. It includes some programming tools.