Scratch: the YouTube of interactive content

Democratizing programming

Summary

The Scratch website is an online community where young people can share interactive stories, games, and animations that they create with the Scratch programming environment.

The Scratch project is a not-for-profit educational initiative committed to providing people with free access to a new generation of programming tools, with the ultimate goal of promoting creative learning, systematic thinking, and effective collaboration.

Scratch has the power to revolutionize education by democratizing programming. In order to achieve this, Scratch needs to be supported by a powerful infrastructure that can provide scalable storage and computing power, a mechanism to leverage human intelligence to catalog people's creations as well as a mechanism to receive payments from users who wish to order an optional sensor board.

Current state of the project

On May 15, 2007 our website was launched and the response has far exceeded our expectations.

Scratch Project Young people have created and shared a diverse range of interactive creations, including online newscasts, science simulations, public announcements and video games.

Since it was launched, the website has received more than 3.6 million visits and close to 130,000 projects have been uploaded. A new Scratch project is uploaded to the website about every 3 minutes, generating 22 million page views 1.

Scratch has been in development for the past five years. It builds on many years of experience in educational technology, including research that led to the creation of successful commercial products such as LEGO ® Mindstorms.

The Scratch experience has three components:

  1. The Scratch programming environment is a 7MB desktop application where users snap together graphical programming blocks to control the actions and interactions of rich media content, including photos, graphics, music and sound. The application, compatible with Windows, Mac and Linux2, is freely available as a 35MB download that contains the application along with a library of sounds, images and sample projects. There have been more than 500,000 downloads from people around the world. The application is available in 18 languages. Features under development include a version for the XO OLPC, network-based variables, connection with Second Life and a player for mobile phones.
  2. The Scratch Website lets users share their creations with one another. On the website, users can try out other people's Scratch projects on their browser (even without having Scratch installed), download the original source code of other projects to create modifications and remixes, and upload their own projects to share with the rest of the community. The website gives people an audience and a source of inspirational ideas. In addition, common features of other social media sharing websites are available such as tagging, commenting, friending, favorite-ing, voting, view counters, galleries, forums and search. The website runs on a web server using popular open source technology (Linux, Apache, MySQL, PHP). Features under development include internationalization, user-driven content control, maps mashups, open API, and a Facebook application.
  3. The Scratch Sensor Board lets users connect real-world sensors to their projects. This is an optional piece of hardware that connects via USB. The Sensor Board is sold on the website at the cost of manufacturing (currently $25 USD). About 1,000 boards have been shipped to users all over the world. Features under development include an industrial design of casing and browser connectivity.

All the technology is freely available under Open Source licenses.

User engagement

Users of the Scratch community have been very active inside and outside the Scratch website.

A few examples:

A few weeks after the site went live, two kids worked together to create a Paint program in Scratch and post it on their personal website.

Another group of kids organized themselves to create a "company" called Crank Inc. where they build Scratch projects collaboratively. Some of the kids are in charge of the animations and others of specific types of programming such as "scrolling background". The ages of the children ranges from 9 to 15, none of them know each other in person, some of them live in the US others in the UK, the leader is from France and a new member from Russia.

A kid in Ireland uses Scratch regularly to create projects related to his life and interests such as school, Club Penguin and other topics. He posts his projects on his blog regularly.

Another member of the Scratch community created a Facebook group and invited other users to his group by creating a Scratch project.

Target Market

Our ultimate goal is that every child in the world ages 8 and up gets to experience the joy of programming through Scratch. Of course, reaching to every child in the world is a big task. We will start by focusing in making our website accessible for those with computers and Internet connectivity.

More than 65,000 people have registered on the website primarily of ages 8 to 17, with a peak at age 12. A good number of users are adult computer hobbyists and educators that enjoy creating projects in Scratch even though a lot of them know other professional programming languages. Some members of the community have emerged as mentors that help the beginners and provide advice.

Visitors to the site come from 211 different countries, mainly from the US, UK, Canada, Japan, Australia, Brazil, Germany, Spain, France and India. In addition, we have established collaboration with a diverse group of institutions that are helping us spread the word about Scratch around the world such as the Srishti School of Art, Design, and Technology (India), Hong Kong Federation of Youth Groups (Hong Kong), Children's Art Museum and Park (Japan), Bradesco Foundation (Brazil), Casa Telmex (Mexico), Omar Dengo Foundation (Costa Rica), and Computer Clubhouse Network (in 20 countries).

Inspiration and problem to solve

A lot of the technology used in education is focused on simply finding better ways of delivering information, replicating old models of instructional education.

Scratch presents an alternate model of how children might use computers, in which children use computers more as tools for self-expression and creation than as as devices to passively consume information. Scratch opens new opportunities for children to playfully explore, experiment, design, and invent.3

Scratch builds on several decades of experience of designing programming environments for children, but it goes beyond previous initiatives by making programming:

As young people create and share interactive Scratch projects, they not only learn computer science and mathematics concepts, they also develop important 21st century learning skills: thinking creatively, communicating effectively, analyzing critically, experimenting systematically, working collaboratively, designing iteratively, learning continuously.

Competitors

Many websites (from MySpace to blogs) support user-generated content, enabling young people to create and share text, graphics, photos, and videos. Scratch goes further, enabling young people to create and share interactive content. We believe that the ability to produce (not simply interact with) interactive content is a key ingredient to achieving digital literacy and becoming a full participant in the interactive online world.

There are other interesting programming languages for kids such as Alice and Microworlds. But Scratch goes beyond these languages by making it easier for kids to get started, easier to create characters and import media, and easier to share creations on the Web.

On the purely commercial side, there are some initiatives that look promising. however they differ from Scratch in many ways.

For example, there are websites for amateur game developers that let them post their creations online, such as Newgrounds and YoYoGames. Unfortunately, they require the use of Flash or GameMaker which have a steep learning curve and make it harder for beginners to get started. In addition both applications are proprietary software for which parents and schools need to pay license fees in order to use them. Another challenge is that the focus on games makes it harder to get the same interest across genders.

Other sites such as Kerpoof and MyGame provide extremely basic tools for authoring games and animations online that do not let users go beyond modifiying parameters on a template. This makes it harder to be used as a tool for self-expression and to expose kids to the computational concepts that make Scratch fun yet educational.

While Scratch is a not-for-profit initiative we have done an in-depth market analysis to survey the landscape in which Scratch is competing.

Website architecture

When we started the development of the Scratch website we were surprised to find that, despite the popularity of media sharing websites such as YouTube and Flickr, there was not any web application platform to run this kind of websites. In other words, there was not a Wordpress equivalent for social media sharing.

ScratchR (Scratch Repository) is the platform created for run the Scratch Website. ScratchR was developed using CakePHP, an open source MVC framework based on PHP, MySQL as the RDBMS and Apache as the web server. A customized version of PunBB, an open source discussion board, is used for kids and adults who engage in discussions about their projects. Currently the production Scratch website is powered by ScratchR running on a RedHat Enterprise virtualized Xen box.

The architecture of the application resembles that of many other MVC applications

The database stores as much data as possible, in particular users behavior and the history of projects. This is useful for future statistical analysis that will help us understand better the usage patterns and the best ways we can help support sharing and collaboration. Here is a diagram of the database tables:

Foototes

1 Based on figures collected from Google Analytics.

2 Full Linux support coming in 2008. Currently most of the features run in Linux but not all.

3Based on Resnick, M. (2006). Computer as Paintbrush: Technology, Play, and the Creative Society. In Singer, D., Golikoff, R., and Hirsh-Pasek, K. (eds.), Play = Learning: How play motivates and enhances children's cognitive and social-emotional growth. Oxford University Press.