Programming means tapping into the computer's immense power by talking with it directly. Through programming, children use the computer's terrific power to draw graphics, design animation, solve mathematical or word puzzles, and even build robots. Such a close friendship with the computer unleashes the children’s intellectual ability and creativity. It also allows them to apply concepts of Math and Physics to solve interesting problems.
The choice of the programming language is critical. It is essential to use programming environments like Logo/Scratch (and many others) that have been specially designed with "learning" in mind. These environments are simple and entertaining, and yet very powerful. They are called "low floor and high ceiling" languages. They allow the learner to build his/her vocabulary without getting mired in the complexities of syntax and grammar.
So, we teach programming; and in these programming courses, learning to program isn't the ultimate goal; the goal is to apply principles of math and logic, to learn critical thinking, and to unleash individual creativity. The focus is on fun, exploration, and challenging projects.
Available at: http://works.bepress.com/abhay_joshi/5/