Computational Thinking 
Learning to Program

Computational Thinking video from ISTE

Computational thinking  is now considered a critical digital skill for everyone. Learn more from the video here which is taken from the ISTE website at
Some other resources to explain Computational thinking
Jeannette Wing's ACM article that brought this phrase to focus

Mark Guzdial's Blog article that explains it well

Google's effort in this field and their definitions and examples
Google's online class on CT 

Another resource that explains it

Computational thinking = 
critical thinking skills + power of computing

Learning to program
 is one way to acquire computational thinking skills ....
... and it is fun !

How do I start learning programming?  What is the best language to learn first?
Based on my experience teaching programming over the last 4+ years to approximately 500 students each year, either Scratch or Logo is a great starting place. Scratch has a visual drag and drop interface and is much like putting Lego blocks together. It also provides a rich set of graphics and sounds to create projects like games quickly.  Here is a simple introduction to Scratch that creates a pattern using programming.  The new Scratch 2.0 works directly in the browser, no downloads needed. It has many cool new features including 'make your own blocks', video motion sensing, cloning, and cloud variables. Some of my favorite resources for Scratch are here

My students also enjoyed the experience of typing in code and the flexibility of Logo. We used ACSLogo in the classroom, this is a good Logo version for the Mac. Other versions of Logo are available on the Logo Foundations site  
One great site to learn Logo without downloading software is

What do I do after Scratch and Logo? 
There are several languages that are a possible next step after using Scratch or Logo.
Currently there is much excitement and venture capital being spent in teaching people to program. 

One good language to learn is Processing (an extension of Java). It is the best example of combining technology and art. The programs, called 'sketches' can be used to create some very cool visual effects and more. My students have learned Processing using on the Khan Academy CS platform. See class demos and more on my Processing page. 

Since Python is now a popular language, there are several free resources to learn Python. Here are some possibilities

Online, Interactive Tutorials for Python

Video Tutorials for Python

The Khan Academy computer science playlist teaches Python.

Free ebook (designed for kids) for Python

“Invent Your Own Computer Games with Python”

Also available as a print book from Amazon

Some 'older' resources - need to update and re-check this list!