So it was with pleasant surprise that my nine year old son asked me if he could download a software application called Scratch two years ago. The application, developed by MIT, allows kids to build online computer games using a visual programming environment. I watched my kids seamlessly learn fundamental programming constructs with Scratch - variables, functions, conditionals, events, loops - all while building something they were passionate about. But the best part was watching their enthusiasm for publishing their games for other kids to use and rate.
I tracked down Mitchel Resnick, director of the Lifelong Kindergarten group at the MIT Media Laboratory, to talk about his group's creation. Below is our interview.
Q: What was the vision behind creating Scratch?
In developing Scratch, we had two primary goals:
- To empower everyone (of all ages, backgrounds, and interests) to create their own interactive stories, games, animations, and simulations -- and to share their creations with one another.
- To help young people learn to think creatively, reason systematically, and work collaboratively.
Q: Did any external influences contribute to Scratch?
We were inspired by Seymour Papert, who taught us that people have their best learning experiences when they are actively engaged in creating things they care about.
We were inspired by the young people at Computer Clubhouse learning centers, who wanted to create their own interactive media but needed a new set of tools to do it.
Q: Who was your target user?
When we started developing Scratch, we hoped to appeal to young people, ages 8 to 16, who hadn’t previously imagined themselves as programmers, but were interested in expressing themselves creatively with new technologies. And that is also a pretty good description of who is using Scratch today.
Q: How long did it take to develop the first version?
We started working on Scratch in 2002, we received a National Science Foundation grant to support the development of Scratch from 2003 to 2007, and we officially launched Scratch in May 2007.
Q: What lessons did you learn trying to balance usability versus expressiveness in a visual programming language?
There is often a tension between (1) adding new features and functionality and (2) maintaining simplicity and understandability. In developing Scratch, we gave higher priority to understandability over functionality.
Seymour Papert emphasized the importance of developing technologies with both a “low floor” (easy to get started) and a “high ceiling” (opportunities to create sophisticated projects). In addition, we feel that technologies should have “wide walls” (supporting many different types of projects). In developing Scratch, we hoped to satisfy all three criteria. But when we needed to make a choice, we focused on low floor and wide walls, and compromised on the high ceiling.
Q: What did you hope to achieve with Scratch? Did you achieve it?
From the beginning, we have hoped that Scratch would provide young people with opportunities to express themselves creatively with new technologies -- so that they can be full participants in tomorrow's society. More than 2000 new projects are shared on the Scratch website every day, created by young people around the world. We are excited when we see all of the creative ways that young people are using Scratch, and the incredible diversity of projects that they creating.
Related Posts: Confessions of a Mac Convert
Special thanks the MIT Media Lab, the National Science Foundation, Mitchel Resnick, and the program sponsors for bringing us Scratch. Over thirty years ago, it was another MIT developed language (LOGO) that inspired me as a child to be learn to program.