Scratch–Programming For Kids Or Going Old School
I was watching the TED session on Scratch after seeing it linked to in the DZone newsletter. I was interested to find out what it was and see if my kids might be interested in playing with it. Of course I also needed to find a new programming language to learn for the year (ok, couldn’t resist a little dry humor). The Scratch programming environment can be downloaded from MIT’s site here if you want to give it a try.
Scratch is an interesting little drag-n-drop language that is great for understanding the basics of programming. Of course for those of us who have been exposed to higher level languages with specific constructs for to do every operation we will have to relearn to bend the limited syntax constructs to our will. Using this environment reminded me of when I first learned to program as a kid using Applesoft basic on an Apple II+ and writing HRG programs but with better tools.
So how does it do as a learning environment? The visual structuring of the components acts as an easy way to figure out where you can use a particular construct. It isn’t going to let you place an language object in an area where it doesn’t belong. This is similar to the warnings generated by the real time interpretive checking done in today’s IDEs like Visual Studio and Eclipse. At the same time it does take some time to understand some of the syntax standards. Only sprites can “say” something. There is no way to popup an alert. Instead you make a variable visible in a specific location of the screen. In all it is easy to get the basics and come back wanting to figure out how to do more complicated operations.
The kids and I had fun making Minecraft Creepers march up and down the screen to sound effects that we recorded. Even if they don’t end up writing their own programs we had fun creating something together. Check it out and see where you can take it.
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)