Future directions for the MIT Media Lab’s Scratch
The Scratch programming environment enables people to quickly and intuitively create interactive multimedia projects without prior knowledge. I am continually impressed at how successfully Scratch introduces important software development concepts while providing a hassle-free experience for newcomers. I have often wished that there were an even more developed object system, particularly the ability to create instances of a class, because I think that kids would be able to immediately understand these “advanced” concepts.
I am currently working on a design for integrating features from object-oriented systems into Scratch. Scratch is actually based on Smalltalk (note: Scratch 2.0 will be in Flash), which is an object-oriented language itself, so there should be an elegant way to do it. I’ve been trying to learn more about why the language designers chose not to include this feature originally. I suspect that they thought it would introduce too much additional complexity for newcomers to the language, but I think it could be totally intuitive for kids to work with if the new features are nicely integrated into the user interface.
I’m often jealous that kids get to play with these fun MIT Media Lab toys like Scratch and Lego Mindstorms that teach them high school or college level computer science topics without them even realizing it.
Let me know if you want to discuss pedagogy, Scratch, etc.
