Scratch, offered through the MIT website, is a free programming environment to teach kids the basics of computational thinking and programming. You can download it and teach yourself programming concepts too. If you’re an adult, eventually you’ll have to move on to a more serious form of programming language.  Still, I’ve realized how often a lack of programming knowledge gets in my way as the designer of the Design Program at my school, and so I’ve spent at least some time this summer noodling around in Scratch, trying to figure out how its various programming components work.  I can’t say that this process has been a complete success, but I’ve learned quite a bit.  It’s a bit like the Turtle programming environment that I experimented with so long ago at Constructing Modern Knowledge, where I made the Alhambra window (link to this image at Flickr broken and vanished… hmm), but Scratch makes possible a much wider range of possibilities, including random actions.

We have a period in the school week (Mondays and Fridays) when students can work on their own learning within a particular range of activities. And really before I knew it, I’d signed up to lead this activity program in “computer programming using scratch.” So, from now until Thanksgiving I’ll be teaching this little class in computer programming, and probably learning a lot about programming along the way. Yesterday, the class met for the first time.  While the eventual class will have ten students, yesterday we had three; and it was a beautiful opportunity to lay some ground work.

I showed them how Scratch was organized; how to find and assemble small computer programs, and how to move the cursor around and draw things with it.  They made a simple program (each of the four of us solved the problem in a slightly different way)  that centered the cursor (shaped like a cat) on the 0,0 point of the cartesian plane, and then drew a 100×100 box of red color centered on that point, and then re-positioned the cursor at 0,0.

It was kind of amazing how long that little task took. I think if I can introduce a few computer programming tasks each week, and develop a range of skills in our students, that they’ll be better prepared to understand how computer programming works, and gradually they’ll wake up to other possibilities, like designing games and other more-fully-realized applications of this startling technology.