Teaching Computational, Abstract Thinking

Visual programming languages and programming as a learning tool are old dreams, rooted in the late Seymour Papert’s creation of the Logo programming language for children. Lately, many promising variants — all of them based on visual rather than command-line interfaces — are popping up: Scratch, a successor to Logo, has been evolving in the MIT Media Lab’s “Lifelong Kindergarten;” Google has entered this arena with Blockly, “a library for building visual programming editors;” UC Berkeley’s Snap focuses on robotic control, as does Roberta. Many of these are powerful learning instruments, but because they run in their own “sandboxes,” are not meant for creating apps that run in the wild. David Bennahum’s visual programming language Ready, “an open-ended software creator,” is intended to change that.

Ready is intended to be used in the classroom — here is a video of some examples and a library of lesson plans. But Bennahum, like other developers of visual learning languages, sees Ready as a tool for teaching “computational thinking,” abstract thinking in general, and for creating real apps that others can use outside of sandboxes. Although some tout it as a pathway to employment in an increasingly computerized world, Carnegie-Mellon, which has been championing computational thinking, defines it as “a way of solving problems, designing systems, and understanding human behavior that draws on concepts fundamental to computer science. To flourish in today’s world, computational thinking has to be a fundamental part of the way people think and understand the world.”

The importance of abstraction, algorithm, procedural thinking goes back further than Papert to his own mentor, Jean Piaget, who viewed children as active agents who constructed knowledge through experimentation with the world. Papert’s theory of “constructionist learning,” derived in part from Piaget’s “constructivism,” is fundamental to the idea that computational thinking is about more than programming machines: “Constructionism shares constructivism’s connotation of learning as ‘building knowledge structures’ irrespective of the circumstances of the learning. It then adds the idea that this happens especially felicitously in a context where the learner is consciously engaged in constructing a public entity, whether it’s a sand castle on the beach or a theory of the universe.” The legacy of Piaget and Papert dramatically influenced Alan Kay’s original vision of “the Dynabook,” a learning tool that was one of the most important prototypes for today’s personal computers.

More recently, constructionism is being viewed as one of the learning-theory foundations of maker ed. In other words, computational thinking and visual programming has generated much broader educational implications than the vocational application to understanding and practicing the programming of computers.

I’ve known Bennahum since 1994, when I was the founding executive editor of HotWired and he was one of our contributors, and I followed his subsequent writing as a Wired contributor. Recently, we talked about Ready and he demonstrated how it works — how a community of programmer-thinker-creators is already forming. Watch this short video to hear how it came about, what Ready intends to do, and see how it works.

Banner image credit: Karl-Ludwig Poggemann