Scratch: MIT Media Lab

Curator: Rafael Fajardo
date: November 3, 2011
Categories: Experience Design, Information Design
Tags: interaction design, interface design, Media Lab, MIT, platform design, programming, Scratch
Screen shot by Rafael Fajardo
Scratch programming environment default start-up screen with the “Motion” code blocks visible

Scratch is a visual programming language designed to be accessible by young learners. It is powerful enough to have been adopted as the entry-level computer language in the computer science programs at leading universities across the United States. It is useful for a broad array of expression, from games to physical computing to musical instruments to beyond. It is turning people all over the world on to programming—and it is a future leading platform for learning creative expression.

Scratch makes use of snippets of code embedded in blocks shaped like puzzle pieces. This gives immediate visual feedback to the programmer about the correctness of their syntax. If the pieces fit together, then they have a valid expression. This goes a long way to overcome the fussiness of traditional programming languages that can be tripped up by a misplaced semi-colon or an unbalanced parenthesis. The fussiness of traditional text-based languages has been an insurmountable frustration for many would-be learners. Another is the opacity of the language itself. Novice programmers have difficulty remembering the entire lexicon and the possible relationships between elements. Scratch includes palettes that show the entire set of elements arranged into logical categories, and the puzzle-shaped outlines express which elements can be put into relationships. The developers have also included a little audible feedback and “snap” action when the pieces fit that is very gratifying.

Screen shot by Rafael Fajardo
Scratch programming environment with “Control” code blocks visible and a sample program loaded

Screen shot by Rafael Fajardo
Scratch programming environment with “Scripts” pane enlarged

Screen shot by Rafael Fajardo
Scratch programming environment detail of a code block with comments

It is difficult to judge the value of a platform upon first release. Some time is necessary to evaluate the realm of possibility enabled by the platform. A diverse set of designerly communities have come to embrace Processing, another programming environment from the minds at MIT, as a platform for productive creative computation. Processing makes it easier to get visual output, but retains a steep learning curve for those whose mind is not already accustomed to algorithmic logic. It remains a stiff challenge to create pathways for the mind to become accustomed. Scratch is a huge step forward in the creation of such pathways.

Scratch emanates from the Lifelong Kindergarten Group of the MIT Media Lab. Mitchel Resnick is the leader of the group. John Maloney, Natalie Rusk, Karen Brennan, Andres Monroy-Hernandez, Ricarose Roque, Sayamindu Daspgupta, Amos Blanton, Champika Fernando, Jay Silver, Eric Rosenbaum, Michelle Chung, Gaia Carini, Tony Hwang and Amon Millner, along with Resnick, form the current core of the Scratch development team. They are supported by a host of others, and a full list of contributors is available at the Scratch website.
blog comments powered by Disqus