contributed articles
Doi: 10.1145/1592761.1592779
“Digital fluency” should mean designing,
creating, and remixing, not just browsing,
chatting, and interacting.
BY mitcheL ResnicK, John maLone Y, anDRés monRoY-
heRnánDez, nataLie RusK, eVeLYn eastmonD,
KaRen BRennan, amon miLLneR, eRic RosenBaum,
JaY siLVeR, BRian siLVeRman, anD Yasmin Kafai
scratch:
Programming
for all
WheN Moshe Y. Vardi, Editor-in-Chief of
Communications, invited us to submit an article,
he recalled how he first learned about Scratch:
“A colleague of mine (CS faculty),” he said, “told
me how she tried to get her 10-year-old daughter
interested in programming, and the only thing
that appealed to her was Scratch.”
That’s what we were hoping for when we set out to
develop Scratch six years ago. We wanted to develop
an approach to programming that would appeal to
people who hadn’t previously imagined themselves as
programmers. We wanted to make it easy for everyone,
of all ages, backgrounds, and interests, to program
their own interactive stories, games, animations, and
simulations, and share their creations with one another.
Since the public launch in May 2007, the Scratch
Web site ( http://scratch.mit.edu) has become a
vibrant online community, with people sharing,
discussing, and remixing one another’s
projects. Scratch has been called “the
YouTube of interactive media.” Each
day, Scratchers from around the world
upload more than 1,500 new projects
to the site, with source code freely
available for sharing and remixing. The
site’s collection of projects is wildly diverse, including video games, interactive newsletters, science simulations,
virtual tours, birthday cards, animated
dance contests, and interactive tutorials, all programmed in Scratch.
The core audience on the site is between the ages of eight and 16 (
peaking at 12), though a sizeable group of
adults participates as well. As Scratchers program and share interactive projects, they learn important mathematical and computational concepts, as
well as how to think creatively, reason
systematically, and work collaboratively: all essential skills for the 21st century. Indeed, our primary goal is not to
prepare people for careers as professional programmers but to nurture a
new generation of creative, systematic
thinkers comfortable using programming to express their ideas.
In this article, we discuss the design principles that guided our development of Scratch and our strategies
for making programming accessible
and engaging for everyone. But first,
to give a sense of how Scratch is being
used, we describe a series of projects
developed by a 13-year-old girl with the
Scratch screen name BalaBethany.
BalaBethany enjoys drawing anime
characters. So when she started using
Scratch, it was natural for her to program animated stories featuring these
characters. She began sharing her projects on the Scratch Web site, and other
members of the community responded
positively, posting glowing comments
under her projects (such as “Awesome!”
and “OMG I LUV IT!!!!!!”), along with
questions about how she achieved certain visual effects (such as “How do you
make a sprite look see-through?”). Encouraged, BalaBethany then created and
shared new Scratch projects on a regular
basis, like episodes in a TV series.