Scratch: Programming For All
Scratch: Programming For All
1592779
Scratch:
Programming
for All
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.
Thats 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 hadnt 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,
60
Photogra ph iStockp hoto.com , Scratch Projec ts f rom to p lef t to right: Sackboy2 , At yo -D icke rson , Kuri , Ne vi t, S han n pal, SadowFi re 11, Z adarmo3, Kgrodon , S han esta, Mt boom, Nat e .
contributed articles
contributed articles
She periodically added new characters to her series and at one point asked
why not involve the whole Scratch community in the process? She created and
uploaded a new Scratch project that
announced a contest, asking other
community members to design a sister
for one of her characters (see Figure 1).
The project listed a set of requirements
for the new character, including Must
have red or blue hair, please choose
and Has to have either cat or ram
horns, or a combo of both.
The project received more than 100
comments. One was from a community member who wanted to enter the
contest but said she didnt know how
to draw anime characters. So BalaBethany produced another Scratch project,
com municatio ns o f th e ac m
contributed articles
a small segment of the population.
What happened to the initial enthusiasm for introducing programming to
children? Why did Logo and other initiatives not live up to their early promise? There were several factors:
Early
programming languages
were too difficult to use, and many children simply couldnt master the syntax
of programming;
Programming was often introduced with activities (such as generating lists of prime numbers and making
simple line drawings) that were not
connected to young peoples interests
or experiences; and
Programming was often introduced in contexts where no one could
provide guidance when things went
wrongor encourage deeper explorations when things went right.
Papert argued that programming
languages should have a low floor
(easy to get started) and a high ceiling (opportunities to create increasingly complex projects over time). In
addition, languages need wide walls
(supporting many different types of
projects so people with many different
interests and learning styles can all become engaged). Satisfying the triplet of
low-floor/high-ceiling/wide-walls hasnt
been easy.3
In recent years, new attempts have
sought to introduce programming to
children and teens.7 Some use professional programming languages like
Flash/ActionScript; others use new
languages (such as Alice7 and Squeak
Etoys5) developed specifically for younger programmers. They have inspired
and informed our work on Scratch. But
we werent fully satisfied with the existing options. In particular, we felt it was
important to make the floor even lower
and the walls even wider while still supporting development of computational
thinking.
To achieve these goals, we established three core design principles for
Scratch: Make it more tinkerable, more
meaningful, and more social than
other programming environments. In
the following sections, we discuss how
each of these principles guided our design of Scratch.
More Tinkerable
Our Lifelong Kindergarten research
group at the MIT Media Lab (http://
63
contributed articles
Figure 5. Sample Scratch script (from Pong-like paddle game) highlighting computational
and mathematical concepts.
64
communicatio ns o f th e ac m
contributed articles
projects (such as birthday cards and
messages of appreciation) are intended
to cultivate relationships. Others are
designed to raise awareness on social
issues (such as global warming and animal abuse). During the 2008 U.S. presidential election, a flurry of projects featured Barack Obama and John McCain
and later a series of projects promoted
members of the Scratch online community for the not-quite-defined position
of President of Scratch.
Some Scratch projects grow out of
school activities. For an Earth-science
class, a 13-year-old boy from India created a project in which an animated
character travels to the center of the
Earth, with a voice-over describing the
different layers along the way. As part of
a social-studies class, a 14-year-old boy
from New Jersey created a simulation of
life on the island of Rapa Nui, designed
to help others learn about the local culture and economy.
As Scratchers work on personally
meaningful projects, we find they are
ready and eager to learn important
mathematical and computational
concepts related to their projects (see
Figure 5). Consider Raul, a 13-year-old
boy who used Scratch to program an interactive game in his after-school center.9 He created the graphics and basic
actions for the game but didnt know
how to keep score. So when a researcher on our team visited the center, Raul
asked him for help. The researcher
showed Raul how to create a variable
in Scratch, and Raul immediately saw
how he could use it for keeping score.
He began playing with the blocks for
incrementing variables, then reached
out and shook the researchers hand,
saying Thank you, thank you, thank
you. The researcher wondered how
many eighth-grade algebra teachers
get thanked by their students for teaching them about variables?
More Social
Development of the Scratch programming language is tightly coupled with
development of the Scratch Web site.12
For Scratch to succeed, the language
needs to be linked to a community
where people can support, collaborate,
and critique one another and build on
one anothers work.1
The concept of sharing is built into
the Scratch user interface, with a prom-
n ov e mb e r 2 0 0 9 | vo l. 52 | n o. 1 1 | c om m u n ic at ion s of t he acm
65
contributed articles
a project, the site automatically adds a
link back to the original project, so the
original author gets credit. Also, each
project includes links to its derivatives
(projects remixed from it), and the Top
Remixed projects are featured prominently on the Scratch homepage.
Some projects focus on the site itself, providing reviews and analyses of
other projects there. One early example
was called SNN, for Scratch News Network, featuring the Scratch cat (the
default character in Scratch) delivering
news about the Scratch community,
much like a CNN anchor. At first, we
saw it as a simulated newscast but
then realized it was a real newscast,
providing news of interest to a real
communitythe Scratch online community. The SNN project inspired others, leading to a proliferation of online
newsletters, magazines, and TV shows,
all programmed in Scratch, reporting
on the Scratch community.
Other Scratchers formed online
companies, working together to create projects that their individual members could not have produced on their
own. One company got its start when
a 15-year-old girl from England, with
screen name BeeBop, created a project
full of animated sprites and encouraged
others to use them in their projects or
place special requests for custom-made
sprites. She was setting up a no-fee consulting business. A 10-year-old girl, also
from England, with screen name MusicalMoon, liked BeeBops animations
and asked if shed be willing to create
a background for one of her projects.
This collaboration gave rise to Mesh
Inc., a self-proclaimed miniature company to produce top quality games
in Scratch. A few days later, a 14-yearold boy from New Jersey, screen name
Hobbit, discovered the Mesh Inc. gallery and offered his services, saying,
Im a fairly good programmer, and I
could help with debugging and stuff.
Later, an 11-year-old boy from Ireland,
with screen name Marty, was added to
the Mesh Inc. staff due to his expertise
in scrolling backgrounds.
Such collaborations open opportunities for many different types of learning.
Heres how a 13-year-old girl from California, who started a Scratch company
called Blue Elk Productions, described
her experience:
What is fun about Scratch and
66
communicatio ns o f th e ac m
contributed articles
puter science, it is important to move
on to other languages. But for many
other Scratchers, who see programming
as a medium for expression, not a path
toward a career, Scratch is sufficient
for their needs. With Scratch, they can
continue to experiment with new forms
of self-expression, producing a diverse
range of projects while deepening their
understanding of a core set of computational ideas. A little bit of programming
goes a long way.
As we develop future versions, our
goal is to make Scratch even more tinkerable, meaningful, and social. With
our Scratch Sensor Board (http://info.
scratch.mit.edu/Sensor_Boards), people can create Scratch projects that
sense and react to events in the physical world. We are also developing a
version of Scratch that runs on mobile
devices and a Web-based version that
enables people to access online data
and program online activities.
Probably the biggest challenges for
Scratch are not technological but cultural and educational.10 Scratch has
been a success among early adopters,
but we need to provide better educational support for it to spread more
broadly. We recently launched a new
online community, called ScratchEd (http://scratched.media.mit.edu),
where educators share their ideas, experiences, and lesson plans for Scratch.
References
1. Bransford, J., Brown, A., and Cocking, R. How People
Learn: Mind, Brain, Experience, and School. National
Academies Press, Washington, D.C., 2000.
2. diSessa, A. Changing Minds: Computers, Learning, and
Literacy. MIT Press, Cambridge, MA, 2000.
3. Guzdial, M. Programming environments for novices. In
Computer Science Education Research, S. Fincher and
M. Petre, Eds. Taylor & Francis, Abingdon, U.K., 2004,
127154.
4. Kafai, Y., Peppler, K., and Chiu, G. High-tech
programmers in low-income communities: Seeding
reform in a community technology center. In
Communities and Technologies, C. Steinfield, B.
Pentland, M. Ackerman, and N. Contractor, Eds.
Springer, New York, 2007, 545564.
5. Kay, A. Squeak etoys, children, and learning; http://
www.squeakland.org/resources/articles.
6. Kelleher, C. and Pausch, R. Using storytelling to
motivate programming. Commun. ACM 50, 7 (July
2007), 5864.
7. Kelleher, C. and Pausch, R. Lowering the barriers
to programming: A taxonomy of programming
environments and languages for novice programmers.
ACM Computing Surveys 37, 2 (June 2005), 83137.
8. Malan, D. and Leitner, H. Scratch for budding computer
scientists. ACM SIGCSE Bulletin 39, 1 (Mar. 2007),
223227.
9. Maloney, J., Peppler, K., Kafai, Y., Resnick, M., and
Rusk, N. Programming by choice: Urban youth learning
programming with Scratch. ACM SIGCSE Bulletin 40,
1 (Mar. 2008), 367371.
10. Margolis, J. Stuck in the Shallow End: Education, Race,
and Computing. MIT Press, Cambridge, MA, 2008.
11. Minsky, M. Introduction to LogoWorks. In LogoWorks:
Challenging Programs in Logo, C. Solomon, M. Minsky,
and B. Harvey, Eds. McGraw-Hill, New York, 1986.
12. Monroy-Hernndez, A. and Resnick, M. Empowering
kids to create and share programmable media.
Interactions 15, 2 (Mar.Apr. 2008), 5053.
13. Papert, S. Mindstorms: Children, Computers, and
Powerful Ideas. Basic Books, New York, 1980.
14. Peppler, K. and Kafai, Y. From SuperGoo to Scratch:
Exploring creative media production in informal
learning. Journal on Learning, Media, and Technology
32, 7 (2007), 149166.
15. Prensky, M. Digital natives, digital immigrants. On the
Horizon 9, 5 (Oct. 2001), 16.
16. Resnick, M. Sowing the seeds for a more creative
society. Learning and Leading with Technology (Dec.
2007), 1822.
17. Resnick, M. Behavior construction kits. Commun. ACM
36, 7 (July 1993), 6471.
18. Wing, J. Computational thinking. Commun. ACM 49, 3
(Mar. 2006), 3335.
Mitchel Resnick, John Maloney, Andrs MonroyHernndez, Natalie Rusk, Evelyn Eastmond, Karen
Brennan, Amon Millner, Eric Rosenbaum, and Jay
Silver are all researchers and members of the Scratch
Team (http://scratch.mit.edu) at the Media Laboratory of
the Massachusetts Institute of Technology, Cambridge,
MA. Brian Silverman is president of the Playful Invention
Company, Montreal, Quebec, Canada. Yasmin Kafai is
a professor in the Graduate School of Education of the
University of Pennsylvania, Philadelphia, PA.
n ov e mb e r 2 0 0 9 | vo l. 52 | n o. 1 1 | c om m u n ic at ion s of t he acm
67