Scratch is an excellent free drag-n-drop system for teaching basic programming concepts without the need to text-based coding that throws off many kids who are used to the instant visual feedback of things like video games. The programs created with the Scratch system are “played” in the system and can be shared with the online community allowing for peers to play and provide feedback on a students creation. Similar to the popular Lego Robotics systems, the system uses a set of visual “blocks” to represent various variables, conditional blocks, user input, or other programmatic construct.
There is a separate site educators called ScratchEd. This provides a community for educators to share experiences, lesson plans, success stories in using the system. It provides a hub for teachers and volunteers to create single day events to promote Scratch to kids, and well as help teachers incorporate it into their existing lesson plans. Here is a video introduction from the Scratch site:
Although apparently simple in design, it covers a wide variety of topics that students can branch out with into other more formal programming languages. The graphical nature appeals to the visual learners, and provides the immediate feedback to students. For younger students, it seems a great intro to get them started in a non-threatening and engaging way.