I’ve always had interest in educational technology, but between my Houghton Mifflin / Ziff Davis years and the birth of my first kid, it lay fallow. More than anything else, Scratch, a “drag-and-drop” programming language developed by the MIT Media Lab’s Lifelong Kindergarten Group, re-ignited that interest.
The Scratch programming environment is highly visual, consisting of a “background” or stage, and any number of “sprites.” Both the background and the sprites can have multiple appearances (enabling animation or other effects) and behaviors (called “scripts”). The language emphasizes the spatial relationships among sprites, with comprehensive support for sprite positioning, rotation, movement and collision detection, making it especially well suited to building interactive stories and games.
The programmer writes by dragging command “blocks” from a set of palettes; these blocks snap together in a way that enforces syntactical correctness (blocks automatically nest within if/then brackets, for example, and only a boolean block will “fit” into a comparator expression). The end result reads like pseudocode for a traditional procedural programming language, but kids don’t have to remember how to type and spell command names, or what characters delimit strings or line breaks, or how to indent properly. In my opinion this is one of the greatest triumphs of Scratch; without having to learn details of syntax first, kids nonetheless write programs that read like those in traditional languages. This gives the skills kids pick up when writing Scratch an extra dimension of relevance.
I found Scratch thanks to the efforts of Ingrid Gustafson, Instructional Technology Specialist in the Cambridge Public School District. Ingrid ran the Scratch Club at my kids’ school (Maria L. Baldwin School) and demonstrated Scratch there. My older child took to it right away when we started playing with it at home. Ingrid moved on from Baldwin School but I continued the afterschool Scratch Club along with another parent volunteer.
I recommend Scratch to anyone interested in kids’ programming.