The movement to bring programming back to the mainstream and to make it a natural part of education seems to be gaining momentum. Hear what Mitch Resnick, the creator of the Scratch programming language, has to say about it.
Programming is the connection between logic and creativity. Put simply you can build new things by describing exactly how they should work. Why is it then that programming has such a cold and technical air that seems to put people off. In fact it puts them off to the point were many would argue that learning to program isn't for "normal" people - only geeks.
Well Mitch Resnick is probably a geek but he created along with the MIT Media Lab the graphical language Scratch - which is aimed at children. in this video he spends some time convincing his audience that children using Scratch create amazing things - you might like to consider why this is necessary.
Later he puts forward the argument that being able to code, even in a visual language, extends what children can do:
"When you learn to code it opens up for you to learn many other things."
and by this he means things that are not just directly connected to computing.
I'd go even further than the idea that coding facilitates and motivates learning in general. Programming is about algorithmic thought. This is something that other subjects make use of but not as "head on" as programming does. To code you have to learn how to express a vague idea as an exact set of steps that realizes the idea as a logical mechanism. This is a skill that is useful, perhaps even essential, if you are to be an effective human and get things done.
The example of NYC Mayor Bloomberg pledging to learn to code is a good one. Imagine what might happen if politicians had the skill to turn their vague intentions to better the situations into "programs" that actually implemented them. This is the power of algorithmic thought and one way to learn it quickly and efficiently is to learn to code.
One of the big problems of today is working with live code. Now a team at Github has a very clever tool that makes it easy to make, and evaluate, changes in live code in the same way that you might re [ ... ]