My 11-year old and I attended an event held by CoderDojo LA at the Google LA offices this morning. The CoderDojo movement is a free, non-profit aimed at turning young kids on to programming. Their target age group is 8-16, and they use the Scratch drag-and-drop programming language (available at scratch.mit.edu) to introduce the kids to general programming concepts. Most of the kids who attended were in the 8-12 year age range. This morning’s session featured some activities that got the kids to create brief snippets of Scratch code to perform tasks like animate an object as it moves across the screen or make an object change color when a user presses a key. The kids were then introduced to an existing program that displayed a picture of a drum set, which animated the various drums and played drum sounds when each drum was clicked. The kids were invited to make their own modifications to the existing sketch or create their own musical instrument in Scratch instead.
My son and I worked on the structured activities, but we were also very interested in checking out the latest version of Scratch. Scratch 2.0 was released just a few weeks ago, and has some advanced new features. It is technically still in beta, and currently it is only available online. If you want to work offline, you will still have to use Scratch 1.4, though the developers are working on rolling out a downloadable version of Scratch 2.0 this summer.
Some of the new features in the 2.0 release include:
- Custom programming blocks, which are effectively subroutines that you can pack into a simple block.
- A suitcase to pack and transfer Scratch objects (also known as “Sprites”) and scripts from one program to another
- Vector graphics that will scale smoothly when resizing a Sprite
- The ability to clone Sprites dynamically in a program
- Variables that can be stored in the cloud, so that anyone who uses a program will have access to the same values. One use for cloud variables could be to create leader boards for interactive games.
- Webcam interaction that allows users to dynamically engage with the sprites by moving their bodies and other objects in front of the camera.
The last feature was definitely the most interesting to us. My son wrote a simple program that uses the webcam, and whenever the user “touches” the sprite with a black object (he was waving a black pen in front of the camera), the sprite moves to a new location on screen. Here is a link to the project he created: http://scratch.mit.edu/projects/10732001/ Being able to use the webcam to interact with the Scratch programs allows you to create games with Kinect-like interactions. I’m looking forward to seeing what other ideas that people will come up with to incorporate the camera into their projects.
As a bonus activity we also got to take a tour of the Google LA facility. My son was entranced by all of the free food, games and cool architectural design on display in their office complex. Even when it was explained to him that they had all of these amenities available to the employees because the employees didn’t get out of the building all that much, he still thought it would be a great place to work. I hope he retains that enthusiasm when he actually HAS to work for a living.
All in all, we learned a lot today and had a great time. I hope that the CoderDojo movement continues to expand. It is an terrific way to introduce kids to programming.