The First Lines of Scratch

Scratch should be seen as a tricycle and meant to be used as an introduction to programming concepts. You can learn more on Scratch MIT.

It's meant to be fun, safe, and reasonably representative, but it's also designed to be outgrown and if you find your lessons are not being met with the same enthusiasm you can move on to more complicated languages.

Having said that, I ran a Scratch game development contests for some time now with the kids in the family, which has been met with a lot of enjoyment. And I have seen my nieces and nephews make some really great stuff with Scratch.

And I have been able to create a reasonably accurate orbital mechanics simulation with it. But that is the subject of another post.

What is nice is that the language is based on Smalltalk. Think of it as a springboard into Javascript. There are plenty of powerful features including support for arrays, message-passing, and custom blocks that will allow them to stretch their programming muscles and get enjoyment of making something for real. One of the latest feature now allows kids to store data on the cloud. My niece who just turned seven has used it as a way for her to store high score data and she and her friends play against one another.

You can do a lot of neat things with it which even a little bit older children can enjoy.

But since kids like to see what they have made programming can be a challenge to teach. And other languages have a higher upfront cost when it comes to getting things on the screen. That is why Scratch comes with two graphic editors as well as a basic but serviceable audio capture and editing tool.

I taught my 14 yo niece programming with JavaScript and she loved it. She liked that the language was easy to write and read, and it is more forgiving with the syntax than other language. And she was able to go home and continue on with what we learned since you don't need much except a browser and a text editor. Both of which are not hard to come by.

Leave a Reply

Your email address will not be published. Required fields are marked *