Why think with computers

Scott Richmond
Thinking with Computers
7 min readNov 28, 2017

Let me start where I got started: with Bret Victor’s important interactive essay, “Learnable Programming.”

I’ve been teaching my humanities students to code (mostly either in Twine or p5.js) to fairly good effect for something like four years now. I have also been reading and thinking about how to get better at teaching coding. Programming is hard; so is teaching it, even when you’re not dedicated to particular outcomes. Coding in my humanities classrooms is an exploratory and playful activity, and always connected to humanities forms of analysis. I’m emphatically not teaching students to be effective web developers. Rather, I’m giving us a context for asking: what might we learn when we code in a scene of humanistic reflection—e.g. in a classes dedicated to the history of media art or theories of media? Victor’s essay got me started thinking that perhaps teaching coding better wasn’t only about becoming a better teacher of coding, as a domain separate from my training as a professional scholar of digital media.

In his essay, Victor gets cranky about the ever-popular Processing (and by extension, its JavaScript implementation, p5.js) as an environment for learning how to program. For him, Processing stands in for the most common ways to teach programming. Most of these are pretty fundamentally broken. In the course of his critique, he makes the more important point that it was not always thus. He points to four deeply pedagogical, carefully designed, beautifully thought out programming environments for teaching kids—and older folks, too—how to code: Logo, Smalltalk, HyperCard, and Rocky’s Boots. The last of these to be invented was HyperCard, first released in 1987; Logo’s development reaches back to the 1960s. They all belong to a long late-midcentury moment between the mid-60s and mid-80s in which computing became personalized, computer science emerged as an autonomous discipline, and computation was full of unrealized potential.

What Logo looked like in the 80s.

More than a few people, Gary Stager and Mark Guzdial among them, share something of Victor’s assessment. There’s a consensus among progressive and reflective computer educators that we’ve lost our way on the way to “everyone should learn to program.” Others, like Mike Bostock and his colleagues at Observables working on d3.express, are working to build better systems, trying to follow Victor’s design indications. A number of really smart people are working to elaborate pedagogical programming systems and environments that are better than the standard-issue industrial programming languages (e.g. Java, Python, Ruby, JavaScript), including Scratch and Pyret. Logo is a constant touchstone for many of these folks. There’s good reason. Logo got a lot of things right.

Logo gets a lot of the how right: learning programming by using Logo is fun! It’s extremely accessible and extremely powerful. And it teaches programming well. But the reason Logo gets the how right is that it also gets the why right. Logo taught children programming, to be sure—but it taught them programming on the way to teaching them something else: geometry, drawing, grammar, poetry, and so on. In other words, in Logo, computer programming is a medium for thinking—and as we shall see, for thinking about thinking. In yet other words, that means that, as Logo imagines it, programming is a humanities problem.

As Logo imagines it, programming is a humanities problem.

Seymour Papert and Logo

Thinking with Computers is dedicated to historicizing, theorizing, and ramifying this idea of computer programming. At its very core is an intuition that this figure of computation as a medium for thinking about thinking means that we have to think about computation as a humanistic phenomenon, with the conceptual and methodological tools of the humanities. And, at the center of this investigation is Logo and the thought of its major exponent and co-inventor, Seymour Papert.

Seymour Papert in 1988.

I’ll have much more to say about Logo and Papert in the coming posts. For now, the tl;dr, whose terms may not all be clear yet: Logo realized a vision of computer programming as a medium for thinking, and thinking about thinking; it did so, not coincidentally, because it was a variant of Lisp, bringing its simplicity, power, and openness to children; it attached this to real-time, interactive graphics programming; it leads with aesthetics rather than mathematics; and its central metaphor of the turtle offered an opportunity for identification with computational space.

Logo makes iteration pretty.

Papert wrote two books about Logo, Mindstorms (1980) and The Children’s Machine (1993). They’re theoretically sophisticated works that use theories of pedagogy to articulate the technological and the affective registers of computer programming. I was frankly surprised at the near perfect appositeness of Mindstorms with respect to contemporary humanistic work in media theory and affect theory, which are two of my particular domains of specialty. A large part of my interest in Papert and Logo is the way in which they help us tell stories about the relationships between technological infrastructure and activity, affect, and thought that aren’t organized by our just-so stories of politicized aesthetics or political economy (i.e., alienation from our everyday or organizing around representation and access will save us from capitalism).

Why Logo now?

The point, in other words, is to use Logo and its context to articulate a tendentious history of computation. Computation is fucked. What computing means now has come to be determined by MicroApple AmaGooFace: we all make data all the time that will be monetized by somebody else; companies devise exploitive technology whose goal is engagement (read: addiction); the shattered economy demands that everybody learn to code as a way of reducing labor costs (see also); computing platforms are becoming more and more closed, from smartphones to cars to tractors to the internet of shit; ad nauseam. In other words, computation has become nearly fully identified with Silicon Valley — and thereby saturated by neoliberal, financialized capitalism. It’s really, really hard to imagine alternatives. I’m not any better at that than anybody else.

But I am trained as a film scholar. In film studies, there is a well-known, very important (and probably not unique among disciplines) argument that was articulated in the field’s turn away from the theoretical work that dominated in the 1970s, and toward the early film history that became extremely important in the 1980s. It’s often called the “film’s forgotten futures” argument, but in its most influential formulation, it goes by “cinema’s forgotten future.” (Full disclosure: Tom Gunning was my dissertation advisor.) In brief, the idea is that film theory articulated a very sophisticated and important critique of Hollywood and European art cinemas — but took on board Hollywood’s word for what cinema is. The critique was right, as far as it went, but it didn’t go nearly as far as it proponents thought. And perhaps more to the point, if the point of film theory’s critique of Hollywood was to help us imagine better alternatives, it didn’t really work.

Meanwhile, early film (roughly 1895–1910) was bonkers. The version of early film history I know best says that early film is important because it was a (surprisingly long) period of time during which cinema was used for all kinds of things other than 2-hour narrative films, and showed up in all kinds of places that weren’t actual cinemas. In short, early film history was full of alternatives! What’s more, studying those might in fact be a better way of articulating and possibly realizing alternatives to the present than using Marxist, psychoanalytical, or semiotic theory to critique Hitchcock films.

The main thrust of this project, after all that, is a sense that the best way to imagine alternatives to the present of computation — less saturated by financial capital, less organized by consumption, less damaging to our attention and our social relations — is to turn to its past. This articulation is focused on Seymour Papert and his work on Logo, but the goal is to understand the contexts in which Papert worked, from which Logo emerged.

I am near the very beginning of this research — and that means I don’t know what will come of it. I am working on translating Logo — not the language, but the environment and its intellectual and pedagogical commitments — into contemporary web-based technologies (to wit, JavaScript in the browser). I am reading Papert’s oeuvre and translating it into the idioms of contemporary humanistic theory. I am charting his intellectual history. I am working through the first edition of The Structure and Interpretation of Computer Programs as a practice of intellectual-historical research into the ideas about computing that originated in the 1970s at MIT. I am tracing the post-history of those ideas by studying the programming systems that explicitly take up the mantle of Logo, including Scratch and Processing and its variants. I am writing the curriculum for a planned yearlong course called “Thinking with Computers.”

I imagine this blog as a place to work through what I think about the various parts of this project. This will probably include the decisions about how to re-imagine Logo in JavaScript. (And of course, JavaScript is stupid Scheme, and Logo is Scheme for kids, that must mean they’re basically the same thing, right?) It will include field notes from my experiments with SICP and Scheme. It will include salvos from my work with Papert’s books and trouvailles from the archive. It will definitely include elaborations on just about every point I’ve made above. And, I hope, it’ll include some ideas about how to wrest computation away from capital in concrete, if small, ways.

--

--