Snap, Create, and Share with Scratch (Case Study 5)

An Engaging Way to Introduce Computing

Scratch is a free “media rich programming environment” in which novice programmers can quickly express their creativity while learning computational thinking. Developed by the Lifelong Kindergarten group at the MIT Media Lab, Scratch is used at both the K-12 and undergraduate levels to reduce the barriers created by a programming language’s abstract syntactic and semantic rules. Instead, students “snap” together several categories of “building blocks” (e.g., statements, loops, variables) to quickly generate animations, games, and art. The building blocks only snap together if they are syntactically appropriate. Students can work both individually and in small teams.

Scratch is effective as a learning tool because it incorporates several effective practices: it uses hands-on, active learning; it is visually appealing; it allows users to express their own creativity and to build on their own experiences; it gives immediate, understandable feedback; and it allows users to avoid syntax errors without focusing on minutiae, freeing them to focus on processes and concepts.

Educational researchers at MIT Media Lab and University of California-Los Angeles studied Scratch scripts used in 425 programming projects created by 80 girls and boys ages 8-18 to determine which programming concepts they learned. The researchers found that all these projects used sequential execution and 90 percent used threads (multiple scripts running in parallel). About half of the projects included loops and user interaction and about a quarter included conditional statements and synchronization. A smaller set included Boolean logic, random numbers, and variables. The projects tended to include more of these concepts the longer students used Scratch.

Although Scratch was originally designed for ages 8-16, several universities are using Scratch in undergraduate courses, including Harvard, Rutgers, and College of New Jersey. Harvard researchers conducted a small classroom-based study on the use of Scratch for entry-level programming at the undergraduate level. The researchers used surveys to gather information about students’ prior programming experience, their experiences with Scratch, and the ease of the post-Scratch transition into Java. Most students felt that Scratch positively influenced their ability to learn Java. Of the students who felt Scratch had no influence, all had prior programming experience.

The makers of Scratch created a social network of sorts within the Scratch site. Users can post their project and remix others’ projects; they can also discuss issues on the Scratch forum in several languages. More than 200,000 projects have been posted on the Scratch web site by novice programmers from around the world. The “top-loved” project has more than 23,000 views and 635 votes of “Love It.” More than 26,000 projects have been remixed by other Scratch developers. The website also has a section especially for educators, with videos and other resources for getting started and ongoing support. Find out more here:


A number of educators have begun posting lesson plans and support materials to share with other teachers around the world. For example, Karen Randall, an elementary school teacher in Minnesota, has created a wiki (at where people can share Scratch materials. MIT Media Lab doctoral student Karen Brennan is creating an online community called ScratchEd, where educators will be able to share ideas, experiences, and curriculum plans with one another (to be launched later this year). Here are other sources of Scratch lesson plans and materials:



  • Malan, D.J., & Leitner, H.H. (2007). Scratch for budding computer scientists. SIGCSE Bulletin (39) 1, 223-227.
  • Maloney, J. H., Peppler, K., Kafai, Y., Resnick, M., & Rusk, N. (2008). Programming by choice: Urban youth learning programming with Scratch. SIGCSE Bulletin (40) 1, 367-371.

View related research:

View related case studies:


Author: Lecia Barker