Scratch is a programming language designed to introduce learners to programming using a visual interface where programming structures are dragged onto the desktop and executed. The code uses "sprites" similar to objects that can perform actions. Each structure fits together like a puzzle to show what forms a "block" of code. The code acts on the sprite to form an animation.
It is amazing for teaching loops and selection structures and even includes threads. As the complexity grows it can cause problems with synchronisation between threads leading to some unpredictable results.
Scratch is available at http://scratch.mit.edu/
A really useful web site to learn Scratch is available at http://learnscratch.org/
Youtube has great videos to teach how to code certain games. Look at: