Learn to Code Code to Learn |Mitchel Resnick Prof of Learning Research MIT Media Lab
Is it important for all children to learn how to write? Very few children grow up to be journalists, novelists, or professional writers. So why should everyone learn to write?
Of course, such questions seem silly. People use writing in all parts of their lives: to send birthday messages to friends, to jot down shopping lists, to record personal feelings in diaries. The act of writing also engages people in new ways of thinking. As people write, they learn to organize, refine, and reflect on their ideas. Clearly, there are powerful reasons for everyone to learn to write.
I see coding (computer programming) as an extension of writing. The ability to code allows you to “write” new types of things – interactive stories, games, animations, and simulations. And, as with traditional writing, there are powerful reasons for everyone to learn to code.
Recently, there has been a surge of interest in learning to code, focusing especially on career opportunities. It is easy to understand why: the number of jobs for programmers and computer scientists is growing rapidly, with demand far outpacing supply.
But I see much deeper and broader reasons for learning to code. In the process of learning to code, people learn many other things. They are not just learning to code, they are coding to learn. In addition to learning mathematical and computational ideas (such as variables and conditionals), they are also learning strategies for solving problems, designing projects, and communicating ideas. These skills useful not just for computer scientists but for everyone, regardless of age, interests, or occupation.
In May 2007, my research group at the MIT Media Lab launched the Scratch programming language and online community (http://scratch.mit.edu) in an effort to make coding accessible and appealing to everyone. Since then, young people (ages 8 and up) have shared more than 4.5 million projects on the Scratch website, with thousands of new projects added every day. Scratch is used in many contexts (homes, schools, libraries, community centers), at many age levels (from elementary school to college), and across many disciplines (math, computer science, language arts, social studies).
We’ve been amazed with the diversity and creativity of the projects. Take a look at the Scratch website and you’ll find animated stories, virtual tours, science simulations, public-service announcements, multimedia art projects, online newsletters, interactive tutorials, and much more.
As an example, let me describe some of the projects created by a young Scratcher who I’ll call BlueSaturn. When BlueSaturn started using Scratch at age 12, one of her first projects was a Christmas card with cartoon images of Santa and his reindeer. Each reindeer was holding a musical instrument and, when clicked, played a different part of the song “We wish you a merry Christmas.” BlueSaturn sent her friends a link to the project as holiday greeting.
As she worked on the Christmas card, BlueSaturn realized that what she enjoyed most was creating animated characters. So she developed a project that featured a series of different animated characters: dinosaurs, dragons, flying horses. In the Project Notes, she encouraged other members of the community to make use of her characters in their own projects – and she offered to make custom characters upon request. In effect, BlueSaturn was setting up a consulting service. We had never imagined that the Scratch website would be used this way.
One community member wanted a cheetah for his Scratch project, so BlueSaturn made an animated cheetah, based on a video that she saw on a National Geographic site. For another community member, BlueSaturn created a bird with flapping wings – and then she posted a step-by-step tutorial showing how she had created the animation.
BlueSaturn became well-known in the community, and she began to receive requests to join collaborative teams, or “collabs” as they are often known in the Scratch community. In one collab, BlueSaturn worked with four other young people from three different countries to produce an elaborate adventure game. BlueSaturn created animated characters while other members of the collab developed game scenarios, created music and sound effects, and drew backgrounds.
In the process of working on these projects, BlueSaturn certainly learned coding skills, but she also learned many other things. She learned how to divide complex problems into simpler parts, how to iteratively refine her designs, how to identify and fix bugs, how to share and collaborate with others, how to persevere in the face of challenges.
We find that active members of the Scratch community start to think of themselves differently. They begin to see themselves as creators and designers, as people who can make things and express themselves with digital media, not just browse, chat, and play games. While many people can read digital media, Scratchers can write digital media – and are thus prepared to become full participants in today’s digital society.
Mitchel Resnick Professor of Learning Research MIT Media Lab
Published in EdSurge May 2013