What it means to program a computer

by Anne Pycha
Scratch is teetering on the edge of some major milestones. It’s also confronting some deep issues of our modern times.

Scratch is a programming language for children, first introduced in May 2007. The Lifelong Kindergarten group at MIT’s Media Lab designed Scratch to be more tinkerable, more meaningful, and more social than other programming environments. Four years later, it appears to have achieved those goals. As of this writing in September 2011, children have shared 1,998,701 projects on the Scratch website. That number will soon reach 2 million, and the group plans to expand its reach beyond early adopters by developing a curriculum guide that educators can use to teach Scratch to children of all ages.

Part of Scratch’s appeal is that children can begin to use it immediately. The environment features objects called “sprites”, moveable objects that children can program by selecting blocks of code. These blocks resemble Legos: they are color-coded and they snap together, which means that kids can start tinkering with them in order to learn how they work. It takes just minutes to make a cat, a basketball, or Deval Patrick move across the screen in response to a mouse click, a task which could conceivably take hours in traditional programming environments.

But another part of Scratch’s appeal originates from a very different place. On the Scratch website, children share the projects they have created, many of which are stories or games. They also friend one another, write comments, and borrow code from each other’s programs — in other words, they participate in a full Web 2.0 experience. The site explicitly encourages “re-mixing”, in which a user modifies or extends another user’s project. It also has a procedure which automatically grants credit to the original creator of any re-mix.

So while Scratch provides children the means to create programs, and therefore to become authors of digital media instead of mere readers, it also provides them with an environment where they reflect on the ideas of personhood and authorship. Such reflection is crucial, according to some social commentators. “It is impossible to work with information technology without also engaging in social engineering,” writes Jaron Lanier in his book, You Are Not a Gadget (2010, Vintage Books). The choices we make about digital representations have tangible effects on the people who interact with them, he argues, and so we must think carefully about those choices. Casting the same argument somewhat more optimistically, Lanier writes: “Different media designs stimulate different potentials in human nature.”

The social design of the Scratch website encourages children to think about those potentials, and the curriculum guide for Scratch, currently in a pilot phase, takes this idea even a few steps further. The guide focuses on three types of activities: music, stories, and games. In one exercise, for example, students use Scratch to write the beginning of a digital story. Then they pass it on: they leave their computer and move to a classmates’ computer, where they inherit someone else’s story and accompanying Scratch code. Their job is to expand the project in any way they see fit, by adding sprites, for example, or expanding functionality. Not only does this exercise require students to confront another person’s code, it also encourages them to reflect on their own code.

“I think that approaches to computer science education sometimes neglect the personalizing aspect of a design-based approach to learning, namely, how young people can connect their individual, social, and cultural interests to the artifacts that they are designing,” wrote Karen Brennan, a research assistant in the Lifelong Kindergarten Group, in an email. “Those connections are incredibly motivating for learning, but are sometimes lost in the search for connections to the ‘big ideas’. In the curriculum guide, we’re trying to get the best of both worlds: making those personal connections, while simultaneously making the connections to the big ideas of computer science and computational thinking.”

What a nice answer to the question that Lanier posed: “We make it all up — so what shall we make up?”

Learning more
Educators who are interested in learning more about Scratch can join the online community ScratchEd, attend events such as educator meetups at MIT and  monthly webinars, and follow ScratchEd on Twitter. The Scratch curriculum guide will be posted online shortly. Educators who wish to participate in a pilot test of the guide should contact Karen Brennan, kbrennan@mit.edu


One response to “What it means to program a computer

  1. Regards for posting “What it means to program a computer | Massachusetts Academy of Sciences Blogline”.

    I actuallywill surely end up being back again for a lot more reading through and commenting here soon.
    Thanks a lot, Catherine

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s