Scratch is an awesome visual programming environment written in Squeak Smalltalk. It was designed by the lifelong kindergarten branch of the MIT media lab for the purpose of inspiring kids of all ages. Absent of the barrier of syntax, you can create fun animations and games by dragging and dropping ‘code blocks’ to form ’scripts.’ Scratch supports serious programming concepts: you can learn about operators, control statements, events, threads… all within the context of a cute and easy to use environment.
One of the best features of Scratch is its introduction to social coding and its amazing social networking twist: go home Facebook. You can easily share your projects online at the Scratch website. Sharing your projects allows others to ‘like’, ‘comment’, ‘download’, and even ‘remix’ your application (social coding ftw!). Best of all, if someone wants to check out your project and he or she don’t have Scratch installed, the project will run on the Scratch website in a java applet without the need to download anything! Yeah, that’s right. I made a snowman math fact game for practicing addition facts, and my not-super-computer-savvy-but-has-java-installed mom played it! Gotta love it.
This is an awesome video of Harvard professor David Malan teaching CS50 with Scratch as an initial introduction to key programming concepts: loops, iterators, booleans, events, and threads. I’m excited to go through the whole course, but particularly loved the first two class sessions using Scratch!
I’m doing a lightning talk tonight on Scratch. I have basically taken a hiatus from “real programming” and am just hacking on baby games. You should try it.
update: http://www.ustream.tv/recorded/6923784 <- my lightning talk on Scratch. I gave this talk at an event I helped plan and organize at Coworking Rochester -- cosponsored by Coworking Rochester and Interlock Rochester.