Mitchel Resnick
Professor of Learning Research
MIT Media Lab
I’ve always enjoyed making things. As a child, I built a miniature golf course in my family’s backyard. In college, I worked at a local science museum and helped build new demonstrations and exhibits. I found that making things was not only enjoyable, but it was the best way to learn new things.
I am now lucky enough to work at a place, the MIT Media Lab, where people are constantly designing and creating things. In one corner of the Lab, people are creating new types of musical instruments. In another corner, people are developing new forms of online newspapers. This inventive spirit makes the Media Lab not just a good research lab, but a great place for learning. As students and researchers at the Media Lab create things, they are always learning in the process.
My research group at the Media Lab is committed to spreading this inventive spirit to learners of all ages – especially K-12 students. For example, we collaborated with the LEGO Company on the development of the LEGO MINDSTORMS robotics kit, which enables kids to design and create their own robotic inventions.
More recently, we have developed a new programming language, Scratch, that provides kids with the tools to design interactive stories, games, and animations – and then share their creations with others on the web. Just as LEGO MINDSTORMS allows kids to control things in the physical world, Scratch allows kids to control media-rich creations on the computer screen.
We believe that learning to program offers benefits for everyone. As students create computer programs, they not only learn important mathematical concepts, they also gain a deeper understanding of the process of design: how to create a working prototype, experiment with it, debug it when things go wrong, get feedback from others, then revise and redesign it.
Through this process, students develop many of the 21st century learning skills that will be
critical to success in the future: thinking creatively, communicating clearly, analyzing systematically, collaborating effectively, designing iteratively, learning continuously.
In developing Scratch, our goal was to make computer programming accessible and engaging for everyone. Scratch is different from traditional programming languages in several ways:
Building-block programming
. To create programs in Scratch, you simply snap graphical blocks together, like LEGO bricks or puzzle pieces. The blocks are shaped to fit together only in ways that make sense, so you don’t need to worry about where to put parentheses and semi-colons, as you do in traditional programming languages. You can make changes even as programs are running, so it is easy to experiment with new ideas incrementally and iteratively.
Media manipulation
. Scratch extends the media-manipulation activities that are popular in today’s culture. You can create programs that combine graphics, animations, music, and sound into interactive creations. You can create characters that dance, sing, and interact with one another. Or create images that whirl, spin, and animate in response to movements of the mouse. Or integrate images with sound effects and music clips to create an interactive birthday card for a friend, or an interactive report for school.
Sharing and collaboration
. On the Scratch website, you can post and share Scratch projects – in the same way you share videos on YouTube. You can get new ideas by browsing through projects on the website. If you like one of the characters or images or scripts in another project, simply download the project and use parts of it in your own Scratch project.
Scratch offers a low floor (easy to get started), high ceiling (ability to create complex projects), and wide walls (support for a wide diversity of projects.)
As students work on Scratch projects, they learn mathematical
concepts in a meaningful and motivating context. When students learn about variables in Scratch, for example, they can immediately put their new knowledge to use in very meaningful ways: to control the speed of an animation, or to keep track of the score in a game they are creating.
The Scratch website (http://scratch.mit.edu) provides students with inspiration, an audience, and feedback. It is truly a community-building place to go. Students can see and play with Scratch projects that others have created – and, in the process, learn new programming techniques and get ideas for new projects. By uploading their own projects to the website, students receive feedback and suggestions from others in the Scratch online community.
The Scratch software and website were officially launched on May 15, 2007. You can download the software for free from the website (
http://scratch.mit.edu
) – then start designing, creating, sharing, and learning.