Wednesday, June 13, 2007
With simplified code, programming becomes child's play
After school lets out on Fridays at the Jonas Clarke Middle School , two dozen boisterous students descend on the computer lab to fiddle with the computer code that powers their projects, from a "Star Wars" lightsaber duel to a flying hippo animation.
The school has been beta-testing Scratch, a new programming language being released today by the Lifelong Kindergarten Group at the MIT Media Lab. The program, named after the technique hip-hop DJs use to mix music, gives novices the ability to create dynamic programs without wading through a manual, teaching computer programming concepts while encouraging students to play.
The goal: turn a daunting subject usually taught in college and considered the domain of geeks into an integral part of education for the grade-school set. MIT researchers hope the program will promote a broader cultural shift, giving a generation already comfortable using computers to consume content online a set of new, easy-to-use tools to change the online landscape itself.
The lab has also created a social networking site to provide Scratch users of all ages a community in which they can critique each others' projects.
"All the social networks out there now are basically about chatting with one another; not about creating things or sharing their creations," said Mitchel Resnick , head of the Scratch development team. "We as a society are moving in a direction where creative thinking is more important than ever before. Just learning a fixed set of facts in school isn't going to be enough."
As the projects among sixth- and seventh-graders in Lexington audibly and visibly demonstrate, Scratch -- unlike other forays into computer science -- fosters projects that bear the distinct imprint of "kid culture," Resnick says.
Christine Leung and Nancy Chomitz , both 12, began by making simple animations in which characters talk onscreen, but have begun to try interactive projects. Nancy's "flying moon hippo," for instance, blurts out funny phrases when people press different letters. In their current project, a snowman floats across the screen; when he gets into certain spots, a cartoon bubble appears saying, "OMG!! I'M MELTING!!"
MIT has "a very long history of working in this area; finding ways to really engage students at a young age, to encourage their interest in computing and programming, and to give them a sense of mastery to help overcome the false conception that this is a really hard area and you have to be a genius to do it," said Chris Stephenson , executive director of the Computer Science Teachers Association, an organization based in New York that promotes computer science education.
Efforts to make computer programming accessible to young people began in the late 1970s with the advent of the personal PC, when another programming language with roots at MIT -- Logo -- allowed young people to draw shapes by steering a turtle around a screen by typing out commands.But the path to mastering most programming languages has been strewn with obstacles, since students needed to figure out not only the underlying logic but also master a brand new syntax, observe strict rules about semicolons and bracket use, and figure out what was causing error messages even as they learned the program.
By contrast, Scratch -- a free download at scratch.mit.edu -- is easy enough for kindergarten-age children to use some of the functions, according to Karen Randall , a teacher at Expo Elementary School in St. Paul, Minn., who has been testing the program before its official launch.
"It is very, very easy to share projects online now, giving kids the motivation of having an audience for their work," Randall wrote in an e-mail. "The kids really 'own' their work, it matters to a wide range of kids, not just the computer nerds."
In place of programming jargon, Scratch offers users jigsaw-shaped programming pieces, which people can click and drag in order to create sequences of code that do things like make a character move or change costume or trigger a series of events -- like have a cop car chase a gangster as in a game by Cheyan Setayesh , 11, who used a line of code that reads "when touching cop 1 is true change health by -1" to ensure that when the cop car catches up with the gangster car, the computer takes power away from the gangster car.
The program doesn't appeal only to children. At Harvard University Extension School, Scratch has been tried out in some introductory computer science classes, as a way of giving students the opportunity to craft something flashy during their first programming experience.
In the past, said David Malan , a graduate student in computer science at Harvard University who has taught Scratch to students who later learn to work with more complex languages like Java or C++, beginners had the opportunity to create "visually uninteresting -- if not boring -- programs that add two numbers together or take the average of 10 numbers. Those demonstrate useful features of programming, but certainly are not compelling.
"With Scratch, we get rid of a lot of the overhead and let students sink their teeth into the concepts -- literally after a day of programming in Scratch they have their own games and own artwork," he said.
Media Lab partners such as Samsung, Microsoft, and Motorola, are working on new applications for Scratch -- including a version that would work on cellphones, but Resnick says the potential for change extends well beyond the electronic world.
"They're learning about the process of design -- what it takes to create something, how to debug it, how to revise the thing you've created," Resnick said. "That process is important whether you're designing a building or a newspaper article or an animation on the screen."
No comments yet