Sign In

Communications of the ACM

Contributed articles

Scratch: Programming For All

girl manipulating Scratch scripts

Credit:; Scratch projects

"Digital fluency" should mean designing, creating, and remixing, not just browsing, chatting, and interacting.

The full text of this article is premium content


Alexander Repenning

The notion of YouTube of interactive media carries a couple of important challenges especially when explored from a public school point of view. As researchers with the goal of bringing computer science into public schools we have investigated the design principles presented in this article (more tinkerable, more meaningful, and more social) for over a decade as part of our research (e.g, We have found that indeed the programming threshold can be lowered through the use of drag and drop style visual programming environments and that sharing projects via the Web can be highly motivational. Early on, AgentSheets included the notion of social dimensions. AgentSheets has been used in K-12 schools to allow students to make games and computational science simulations which they could share through Web 2.0-like interfaces. For instance, the idea that students could explore Eco systems by designing their own animal species which they then share and mix together into stable (or often not so stable) ecological systems created enormous enthusiasm with the students. However, and this is where the YouTube model becomes problematic, very much in contrast to their students many parents, principals and even some teachers did not at all welcome the idea of creating public artifacts sharing their childrens identity. One could argue that this problem was largely due to the 1996 pre Web 2.0 mindset which simply did not embrace the value of social computing. Then again, our research focus including teaching game design is still on public schools and we see little evidence that this mindset has changed. On the contrary, many schools are not only making it hard for students to publicly share their creations, perhaps out of fear of legal retributions, but are increasingly blocking social sites such as YouTube and Facebook. How can we blame them given that real popular items such as the Cat Yodeling with over 4 million downloads hardly carry any educational value.

CACM Administrator

The following letter was published in the Letters to the Editor in the March 2010 CACM (
--CACM Administrator

I welcome the efforts described by Mitchel Resnick et al. in "Scratch: Programming for All" (Nov. 2009) to familiarize more people with programming. However, when I downloaded Scratch from the Scratch Web site ( and looked over the Scratch programming constructions, I found no convenient abstraction mechanism, as in, say, a facility to define and call parameterized functions.

Such a mechanism could be viewed as advanced and not easily digested by the intended users of the Scratch programming language. But some projects on the Scratch Web site feature significant code redundancy and could be reduced in size and simplified if the code could be restructured through a few suitable functions.

Though not all Scratch programmers would be comfortable with an abstraction mechanism, it seems a pity that something so fundamental does not even exist, and so cannot be conveniently demonstrated and disseminated.

Second in importance and also missing from the Scratch programming language is a data-structuring mechanism.

Thorkil Naur and Karen Brahes
Odense, Denmark



Abstraction is an important computational concept, and a simple form of procedural abstraction is provided by Scratch's "broadcast" mechanism. That's why we added parameterized procedures to some experimental versions of Scratch, though we have not yet come up with a design that satisfies our goals of simplicity and understandability. We're continuing to experiment, hoping to include more forms of abstraction in future versions.

The Scratch Team
Cambridge, MA

Displaying all 2 comments

Log in to Read the Full Article

Sign In

Sign in using your ACM Web Account username and password to access premium content if you are an ACM member, Communications subscriber or Digital Library subscriber.

Need Access?

Please select one of the options below for access to premium content and features.

Create a Web Account

If you are already an ACM member, Communications subscriber, or Digital Library subscriber, please set up a web account to access premium content on this site.

Join the ACM

Become a member to take full advantage of ACM's outstanding computing information resources, networking opportunities, and other benefits.

Subscribe to Communications of the ACM Magazine

Get full access to 50+ years of CACM content and receive the print version of the magazine monthly.

Purchase the Article

Non-members can purchase this article or a copy of the magazine in which it appears.