ALICE

Alice is a free and open source 3D programming environment designed to teach students object-oriented and event-driven programming. With Alice, students drag and drop graphic tiles in order to animate an object and create a program. A variant of Alice, Storytelling Alice was developed by Caitlin Kelleher as part of her doctoral work in Computer Science at Carnegie Mellon University. By emphasizing animations and social interactions, this approach was found to greatly increase the level of student interest in programming.

HACKETY HACK

Hackety Hack is an open source application that teaches the basics of programming in the popular Ruby language. Hackety Hack offers an interactive tutorial that runs on Windows, Mac, and Linux operating systems. While both Scratch and Alice use a graphical programming language with "blocks," Hackety Hack teaches the basics of Ruby syntax. The tutorial and the text editor are well-integrated, so there isn't any flipping back-and-forth to move between the How-To guide and the actual coding. Hackety Hack gives students a solid foundation in the language so they can quickly and easily start building their own apps in Ruby.

ARDUINO

Arduino is an open-source electronics prototyping platform with both hardware and software components. Arduino's hardware is programmed with a language similar to C++, and although it may not be the easiest of entry points for learning programming, there's something about building things that actually move that can be pretty compelling. Projects that use Arduino to introduce children to programming include a modification of Scratch to support simple programming on the Arduino hardware. As Google recently announced that it would allow Android mobile devices to communicate with Arduino hardware, look for more opportunities to work with this platform in the future, perhaps even via the Android App Inventor, a tool that provides a visual interface for building Android apps.

LEGO MINDSTORMS

One of the most popular toys in history, Lego may be best known for its brick-building. But Lego Mindstorm s also enables robotics-building. Lego Mindstorms' kits -- which can be purchased in educational and consumer versions -- include sensors and motors, and the programming is command-box rather than code programming. The kits come with languages supplied by Lego, but can be modified to work with third party languages. Like several of the tools on this list, Lego Mindstorms has its roots at the MIT Media Lab.

These are just a few of the options for introducing someone to programming. What other languages or tools have you used -- in the classroom or at home?