Scratch: Programming For
Total Page:16
File Type:pdf, Size:1020Kb
contributed articles DOI:10.1145/1592761.1592779 discussing, and remixing one another’s “Digital fluency” should mean designing, projects. Scratch has been called “the YouTube of interactive media.” Each creating, and remixing, not just browsing, day, Scratchers from around the world chatting, and interacting. upload more than 1,500 new projects to the site, with source code freely by MITCHEL RESNICK, JOHN MALONEY, ANDRÉS MONROY- available for sharing and remixing. The HERNÁNDEZ, NATALIE RUSK, EVElyN EASTMOND, site’s collection of projects is wildly di- KAREN BRENNAN, AMON MILLNER, ERIC ROSENBAUM, verse, including video games, interac- JAY SIlvER, BRIAN SIlvERMAN, AND YASMIN KAFAI tive newsletters, science simulations, virtual tours, birthday cards, animated dance contests, and interactive tutori- als, all programmed in Scratch. The core audience on the site is be- Scratch: tween the ages of eight and 16 (peak- ing at 12), though a sizeable group of ATE. N , adults participates as well. As Scratch- M ers program and share interactive proj- ects, they learn important mathemati- MTBOO TA, S Programming cal and computational concepts, as well as how to think creatively, reason ON, SHANE systematically, and work collaborative- D ly: all essential skills for the 21st cen- O3, KGRO M for All tury. Indeed, our primary goal is not to AR D prepare people for careers as profes- sional programmers but to nurture a IRE11, ZA WF new generation of creative, systematic O D thinkers comfortable using program- , SA L A ming to express their ideas. P WHEN MOSHE Y. VARDI, In this article, we discuss the de- Editor-in-Chief of IT, SHANN IT, V sign principles that guided our devel- E Communications, invited us to submit an article, N opment of Scratch and our strategies RI, U for making programming accessible he recalled how he first learned about Scratch: ON, K S and engaging for everyone. But first, ER “A colleague of mine (CS faculty),” he said, “told to give a sense of how Scratch is being CK TYO-DI me how she tried to get her 10-year-old daughter used, we describe a series of projects A developed by a 13-year-old girl with the interested in programming, and the only thing BOY2, Scratch screen name BalaBethany. CK that appealed to her was Scratch.” BalaBethany enjoys drawing anime That’s what we were hoping for when we set out to characters. So when she started using Scratch, it was natural for her to pro- EFT TO RIGHT: SA RIGHT: EFT TO L develop Scratch six years ago. We wanted to develop gram animated stories featuring these P TO an approach to programming that would appeal to characters. She began sharing her proj- M FRO S ects on the Scratch Web site, and other T people who hadn’t previously imagined themselves as C E programmers. We wanted to make it easy for everyone, members of the community responded J H PRO positively, posting glowing comments C RAT of all ages, backgrounds, and interests, to program under her projects (such as “Awesome!” C , S and “OMG I LUV IT!!!!!!”), along with M O their own interactive stories, games, animations, and C questions about how she achieved cer- simulations, and share their creations with one another. tain visual effects (such as “How do you HOTO. CKP Since the public launch in May 2007, the Scratch make a sprite look see-through?”). En- H ISTO couraged, BalaBethany then created and P Web site (http://scratch.mit.edu) has become a shared new Scratch projects on a regular vibrant online community, with people sharing, basis, like episodes in a TV series. PHOTOGRA 60 COMMUNICATIONS OF THE ACM | NOVEMBER 2009 | VOL. 52 | NO. 11 contributed articles Figure 1. Screenshots from BalaBethany’s anime series, contest, and tutorial. She periodically added new charac- a step-by-step tutorial, demonstrating can create (and how you can express ters to her series and at one point asked a 13-step process for drawing and col- yourself) with the computer. It also ex- why not involve the whole Scratch com- oring anime characters. pands the range of what you can learn. munity in the process? She created and Over the course of a year, BalaBeth- In particular, programming supports uploaded a new Scratch project that any programmed and shared more “computational thinking,” helping you announced a “contest,” asking other than 200 Scratch projects, covering a learn important problem-solving and community members to design a sister range of project types (stories, contests, design strategies (such as modulariza- for one of her characters (see Figure 1). tutorials, and more). Her programming tion and iterative design) that carry The project listed a set of requirements and artistic skills progressed, and her over to nonprogramming domains.18 for the new character, including “Must projects clearly resonated with the And since programming involves the have red or blue hair, please choose” Scratch community, receiving more creation of external representations of and “Has to have either cat or ram than 12,000 comments. your problem-solving processes, pro- horns, or a combo of both.” gramming provides you with opportu- The project received more than 100 Why Programming? nities to reflect on your own thinking, comments. One was from a commu- It has become commonplace to refer to even to think about thinking itself.2 nity member who wanted to enter the young people as “digital natives” due contest but said she didn’t know how to their apparent fluency with digital Previous Research to draw anime characters. So BalaBeth- technologies.15 Indeed, many young When personal computers were first any produced another Scratch project, people are very comfortable sending introduced in the late 1970s and 1980s, text messages, playing online games, there was initial enthusiasm for teach- and browsing the Web. But does that ing all children how to program. Thou- really make them fluent with new tech- sands of schools taught millions of stu- nologies? Though they interact with dents to write simple programs in Logo digital media all the time, few are able or Basic. Seymour Papert’s 1980 book to create their own games, animations, Mindstorms13 presented Logo as a cor- or simulations. It’s as if they can “read” nerstone for rethinking approaches to but not “write.” education and learning. Though some As we see it, digital fluency requires children and teachers were energized not just the ability to chat, browse, and and transformed by these new pos- interact but also the ability to design, sibilities, most schools soon shifted create, and invent with new media,16 as to other uses of computers. Since that BalaBethany did in her projects. To do time, computers have become perva- so, you need to learn some type of pro- sive in children’s lives, but few learn gramming. The ability to program pro- to program. Today, most people view vides important benefits. For example, computer programming as a narrow, Figure 2. Sample Scratch scripts. it greatly expands the range of what you technical activity, appropriate for only 62 COMMUNICATIONS OF THE ACM | NOVEMBER 2009 | VOL. 52 | NO. 11 contributed articles a small segment of the population. llk.media.mit.edu) has worked closely have hexagon-shaped voids, indicating What happened to the initial enthu- with the Lego Company (http://www. a Boolean is required. siasm for introducing programming to lego.com/) for many years, helping The name “Scratch” itself high- children? Why did Logo and other ini- develop Lego Mindstorms and other lights the idea of tinkering, as it comes tiatives not live up to their early prom- robotics kits.17 We have always been from the scratching technique used by ise? There were several factors: intrigued and inspired by the way chil- hip-hop disc jockeys, who tinker with ˲ Early programming languages dren play and build with Lego bricks. music by spinning vinyl records back were too difficult to use, and many chil- Given a box full of them, they immedi- and forth with their hands, mixing mu- dren simply couldn’t master the syntax ately start tinkering, snapping together sic clips together in creative ways. In of programming; a few bricks, and the emerging struc- Scratch programming, the activity is ˲ Programming was often intro- ture then gives them new ideas. As they similar, mixing graphics, animations, duced with activities (such as generat- play and build, plans and goals evolve photos, music, and sound. ing lists of prime numbers and making organically, along with the structures Scratch is designed to be highly in- simple line drawings) that were not and stories. teractive. Just click on a stack of blocks connected to young people’s interests We wanted the process of program- and it starts to execute its code imme- or experiences; and ming in Scratch to have a similar feel. diately. You can even make changes to a ˲ Programming was often intro- The Scratch grammar is based on a stack as it is running, so it is easy to ex- duced in contexts where no one could collection of graphical “programming periment with new ideas incrementally provide guidance when things went blocks” children snap together to cre- and iteratively. Want to create parallel wrong—or encourage deeper explora- ate programs (see Figure 2). As with threads? Simply create multiple stacks tions when things went right. Lego bricks, connectors on the blocks of blocks. Our goal is to make parallel Papert argued that programming suggest how they should be put togeth- execution as intuitive as sequential ex- languages should have a “low floor” er. Children can start by simply tinker- ecution. (easy to get started) and a “high ceil- ing with the bricks, snapping them The scripting area in the Scratch ing” (opportunities to create increas- together in different sequences and interface is intended to be used like a ingly complex projects over time).