Scratch

Scratch is an object oriented programming language that is built specifically for students to learn how to do some programming. It can be used to create screen by screen stories and you can choose to incorporate simple programming for students that want to extend their learning into the computer science realm.

A masters project exists at http://www.elementary.prn.bc.ca:16080/course/view.php?id=64 which is an introduction to scratch for students and teachers.