Scratch is a graphical educational programming environment specifically designed to teach programming concepts to younger children. By clicking together Lego-like blocks, kids can build up sequences of instructions to create animations, games, interactive stories, simulations, and more.
Scratch teaches many fundamental programming concepts such as iteration (looping), conditional statements, variables, threads, user interface design, event handling, and more.
Here is a great introductory video about what kids can do with Scratch:
There a number of factors that make Scratch a great choice for younger children:
Example Scratch Code