DIY Coding

Like many in the digital media and learning community, I am a fan of the free and open source computer programming language, Processing, which can be easily downloaded at Processing.org.  Processing is an incredibly accessible computer language for beginners, but it is also a stepping stone to widely used professional programming languages like Java and C++ that may contribute to success in corporate and academic arenas for those who are code literate.

There is a large do-it-yourself community made up of individuals who use Processing for everything from robotics to art projects to sequencing neighborhood Christmas lights to music.  Processing has also become popular in informal learning communities and hacker spaces, such as Machine Project in Los Angeles, where tinkerers and computer hobbyists can share ideas.  Users of Processing have created large libraries of code that allow programs written in Processing to “talk” to new technologies as they arrive on the market such as the microblogging site, Twitter, or the Microsoft Kinect game controller.

For the past two years I have been teaching Processing to creative writers who usually have no previous computer programming experience in college courses like this one on Digital Poetics that focuses on experimental forms of writing for the screen, and I have been consistently pleased with the outcome.  Even poets who describe themselves as radical “non-techies” or outright “Luddites” are able to complete projects, thanks to the simple programming interface of Processing.

In an interview, one of the creators of Processing, UCLA Professor Casey Reas explained why Processing is so accessible to complete beginners as a “low floor, high ceiling” language.  He credits its success to the immediacy of feedback, which is so central to a minimalist design that features large “stop” and “play” buttons familiar to anyone who has ever used a VCR or DVD machine.  As Reas explains, “You can write one line of code and see it run to see a result.”  He argues that this kind of visual gratification provides an immediate “motivation to beginners” in a “medium that they care about.”

Years ago Reas probably would have seemed like an unlikely person to have co-authored a programming language used by thousands of people.  In elementary school, he described himself as “more interested in drawing and making images.”  He was exposed to the Logo and BASIC programming languages, but he said that he soon gave up on computer programming after struggling unsuccessfully to make his own text adventure game.  He described trying to teach himself programming later on in college with products such as Macromedia Director.  Reas said he managed “to make a few projects but not enough to satisfy.”  It wasn’t until he took evening extension classes that he finally learned the principles of writing code, even though “numeric calculations weren’t fun for me.”liz.15.secondary

He found that he wanted other learners to have a better programming experience than he did, and he became determined to draw “a bridge between graphic design and code.”  In graduate school in the Aesthetics and Computation (ACG) research group at the MIT Media Lab he met Processing co-creator Ben Fry and soon the collaboration was generating prototypes.

Reas and Fry were protégées of design guru John Maeda, who has since moved from MIT to the Rhode Island School of Design, where he currently serves as president.  Under Maeda’s leadership, RISD is striving to transform itself from a more traditional art school to an institution at the forefront of “STEAM” initiatives that foreground the role of art in science, technology, engineering, and math education.

Under Maeda, the ACG first produced Design By Numbers, which Maeda defined as “a simple language designed to introduce the most basic ideas of computer programming in the context of drawing.”  With simple commands such as “Paper” and “Pen” followed by a number between 0 and 100, “people could begin drawing within a few minutes of instruction,” Reas said.  However, Design By Numbers was restricted to gray values and a small 100 x 100 pixel drawing area, and Reas and Fry wanted to “explore larger ideas” that could include color and 3-D imagery and sound working with iterative design and development in the same way that an artist might work with a sketchbook.

“I wanted to make the environment that I wanted to learn with to open up opportunities for more designers and artists,” Reas explained.

When I asked about his feelings about contemporary computer education from his personal perspective as a parent of young children, he worried that too many kids might be frustrated by text-based programming that was too careful about syntax.  “If my daughter forgets a semicolon, she shouldn’t miss out on systems thinking and logic, for example.  It’s not purely about technical skills; there is also a conceptual leap.”
2458096380_3c23af8ca8_mAsked to define digital literacy, Reas argued that it might not yet have the clear and commonly agreed upon learning outcomes that we generally associate with teaching children to read books.  He offered a provisional definition that involved “learning how to think in terms of systems rather than instances and to develop the ability to break a complex problem into a small set of solvable problems.”

Like many who have been involved in digital media and learning, Reas has a healthy skepticism about labels that present young people as “digital natives” or members of a “digital generation” who inevitably develop digital literacy merely by inhabiting a social world defined by computational media.  He described his own experiences with students who might be nineteen or twenty on several different continents where they were “swimming in digital media” as they “passed by one instant message window after another.”  Reas observed that “the fact that they are using it doesn’t make them critical of it.  It makes them less critical of it; they take it for what it is rather than a specific set of boundaries that someone invented.”

Reas described our current world of computational experience as often defaulting to a much less imaginative sphere in which “the potential of the computer has already been realized.”  Reas claimed that with Processing he wanted to restore the exhilarating feeling that people once felt in their first encounters with writing a program.  “Instead of having the computer be what you expected, you could imagine what the computer might be and make it happen.”

Banner image credit: debagel http://www.flickr.com/photos/debagel/134149908/

Secondary image credit: watz http://www.flickr.com/photos/watz/143543147/

Tertiary image credit: toxi http://www.flickr.com/photos/toxi/2458096380/