After an unintentional hiatus, last week I resumed following Georgia Tech CS colleague Mark Guzdial’s Amazon blog. His latest salvo is a thought-provoking piece called Using computing to teach computing (Hint: Don’t use the “P” word). The post centers around a question Mark posed to Jeannette Wing, Director of the Computing & Information Science & Engineering branch of the NSF (aka NSF CISE): “How can you get to computational thinking for everyone if we don’t teach programming?”

Wing argues that computational thinking shouldn’t start with programming. She pointed to an example of a better method, one I hadn’t seen before: CS Unplugged. Here’s an explanation from the website:

Computer Science Unplugged is a series of learning activities that reveals a little-known secret: computer science isn’t really about computers at all!

Unplugged teaches principles of computer science such as binary numbers, algorithms and data compression through games and puzzles that use cards, string, crayons and lots of running around.

I find the idea both fascinating and absurd. On the one hand, I agree that the general skills in procedural literacy sit at a higher level than their particular instantiation in computing. Understanding systems and complexity is a valuable skill that transcends disciplines.

But Wing and CS Unplugged are not championing procedural literacy; they’re advocating a different way of teaching computational literacy, one that doesn’t involve computers. Concerns well up in me.

So I began searching for a reductio ad absurdum to express this concern. Here’s what I came up with, riffing CS Unplugged:

Literature Unbound is a series of learning activities that reveals a little-known secret: literature isn’t really about books at all! Unbound teaches principles of literature such as genre, setting, and characterization through games and puzzles that use cards, string, crayons and lots of running around.

Why not? Things like improv and recitation might be viable ways of introducing literature to the logophobic. After all, theater, performance, poetry, and literature have a long and intertwined history stretching back millennia, just as computing, mathematics, and philosophy do (well, stretching back decades anyway). Shhh, don’t mention The R Word!

But such an approach also misses a vital point: literature is fundamentally about written language, just as computing is fundamentally about analog and digital computation. There’s no way to excise the one from the other. Sure, the concepts of logic and algorithm exist without computers, just as the concepts of exposition, theme, and meter can exist without writing. But those ideas only become computation or writing (or…) when they are inscribed in the native form of their respective media.

During their conversation, Wing launched this provocation at Mark: “You wouldn’t start a 4 year-old with programming, would you?” It seems like a good point, on first blush. What 4 year-old could pick up C or LISP or even Python and start cranking out functional, meaningful programs?

But consider the example of literature again. Who would say something as silly as this: “You wouldn’t start a 4 year-old with reading, would you?” Ok, we certainly wouldn’t expect a 4 year-old to burn through The Brothers Karamazov. But we would read to her, from books with simplified themes and forms.

The same goes for writing; no 4 year-old would write a novel. But we might expect a 4 year-old to start the process of writing, even if that just means scrawling words in crayon on paper.

An important and overlooked property of both early reading and writing is also an incredibly obvious one: when young kids read and write, they do so for real. That is to say, when they read, they read actual books, even if those books are highly simplified. When they write, they write actual language on actual paper, even if that language is highly simplified, and even if that paper amounts to a single sheet.

And yet, we still have far too few examples of computer programs meant for use by kids. Sure, tools for helping children make stuff with computers go back decades, including the pioneering work of Seymour Papert, Alan Kay, and others. Indeed, we might argue that environments like Logo and Smalltalk and even Processing offer particularly good analogues to crayon and paper, because they scaffold real programming practices rather than substituting fake ones.

But just as importantly, we don’t have many examples of good computer programs for kids. I know that will sound implausible; aren’t there decades of great educational software meant especially for kids? Sure. But what about expressive software? Where is the computational equivalent of kids storybooks or chapterbooks? Where are the computer programs that capture the imaginations of the young as computer programs rather than as pedagogy?

Videogames offer one kind of example, not only because they are appealing to many kids but also because they are computationally native, not just computational versions of stories or music or whatnot. So does Lego Mindstorms, to some extent, but it’s such a specialized platform, so removed from the real use of computers. Other examples might include small-scale programs like iPhone interactive visual art apps Pixi and Spawn.

Promising signals, to be sure. But let’s not kid ourselves. If you want a real wake-up call about how far behind we are, take a look at the children’s section of any bookstore. How stupid would it be to try to teach literacy without the books?

published May 19, 2009


  1. Alan Kay

    Excellent analogies!

    One of the most difficult aspects of what to do based on your argument (which you can well imagine has been posed a few times already), is the “production value competition” from existing media. This has gotten to be more of a problem over the last 60 years. Before TV, radio and movies provided some competition with getting children to do their own theater (and to write their own plays — which they can certainly do), but radio lacked the visual and tactile, and children did not go to movies very often.

    This opened up a lot more space for their learning some aspects of literacy through their own direct involvement and creation.

    Another analogy which is worth looking at today is music learning by children. This is under attack both by pervasive “music by others” and also by “Guitar Hero”. (The Quincy Jones Foundation is very concerned about this, etc.) Still, there are many children’s music programs which are powerful forces to help children get into the real deal. One that has just started to move from Venezuela to the US is “El Sistema” which is a wonderful process that has had great success. One of its great virtues is that it puts the children into a non-diluted real deal with the support and social structures needed to get them going without dumbed down versions that are only tokens.

    Young children can do quite a lot of “cause and effect” reasoning (mostly single step), and can make programs in a suitable system (for example, Etoys, which was made for 9-11 year olds has been used for simple programming by 4- year olds). However, as you point out, much better environments could be designed for younger children. We humans are wired for stories, and most children of most ages will use computer media to tell stories.

    Really good teaching and teachers are required to get them to also start learning about the invented non-story forms of math, science, etc., and how computing relates to these.



  2. Ian Bogost

    Alan, thanks for your great comments!

    Indeed, the last factor you mention here seems really important. The ways parents and educators culture kids’ activities. Reading to and with kids assumes a parental commitment to literacy. Same with encouraging lessons and practice and the like with music. Kids who have supportive (and no doubt more affluent) families are more likely to get this encouragement in the first place. And of course, even parents/educators fortunate and committed enough to such things may find themselves unsure about how to balance so many demands: reading, writing, music, sports, computing…

    As for the production value competition, I still wonder if it could be narrowed somewhat if we had better mass-market examples of computing products for kids. I’m not even thinking about products for programming/making, although those are great. I’m just thinking about artifacts kids can use and enjoy that are really and truly computational, that show off what computers are all about and generate that interest. Not a new observation by any means, but still a significant one.

  3. Sarita Yardi

    Wow, great post Ian!

    (but not sure if I also need to repost this comment to Mark’s blog too?) 🙂

  4. Ian Bogost

    Yeah, I wish there were some way to aggregate comments in the same conversation across multiple websites/blogs. 🙁

  5. Alfred Thompson

    Have you looked at Kodu from Microsoft Research at all? Kodu is a game/programming environment for younger children. It’s not full or perhaps real programming by some definition but it is a step in that direction.

  6. Ian Bogost

    Alfred, I have seen Kodu and it’s pretty awesome. I haven’t had a chance to play around with it too much, but I was pretty impressed seeing it demoed at the Foundations of Digital Games Conference last month. I really think Microsoft should put it in a box and sell it, rather than hiding it in the Xbox Community Games channel.

    I think we actually have a large number of promising systems for getting kids into programming (although I’ll admit that I’m not so sure things like Kodu are really any better than Logo, but that’s a different debate).

    I’m much more interested, I think, in more computing systems that would appeal to kids in a computationally native way, and not necessarily as teaching tools (whether they are teaching programming, mathematics, physics, or whatever). Where are our equivalents of Sylvester and the Magic Pebble, or Where the Wild Things Are, or Alice in Wonderland, or The Lion, the Witch and the Wardrobe?

  7. Walt Gordon Jones

    Are there any open source projects for apps that help teach computing to young children?

    Any pointers or links are appreciated. This is an interesting topic.

  8. Mark J. Nelson

    Re: open source apps for teaching computing to young children, there are a reasonable number, but I suppose it depends on which of the many approaches that have been proposed over the decades you mean.

    One classic approach, the Logo language and famous associated turtle-graphics (though they’re not actually the defining aspect of the language, contrary to popular belief), has a lot of open-source implementations, the most popular probably being UCBLogo. The Python people are also making a number of efforts to adapt their language and provide environments around it to be education-friendly.

    These are both more along the lines of teaching traditional, text-in-an-editor programming to learners, though; if you mean something more radical like visual programming languages, someone else will have to answer. =]

  9. Kragen Javier Sitaker

    I haven’t read about Wing’s or Bell’s approach in detail, but I think it is fundamentally a good idea.

    I did start programming when I was 4, in MBASIC. (Like everyone else, I started by modifying existing programs.) Ian, you may remember that I was sort of a pathetic programmer when I was 16. I think I didn’t actually learn very much about programming from when I was 4 to when I was 12, perhaps largely because I thought I was already knowledgeable. I’ve written more about this in an essay entitled, “My Evolution as a Programmer”, which you can find online.

    When I was 7, I ran across a book entitled, “The Design of Switching Circuits,” by some Bell Labs guys from the 1950s. It explained how to build digital logic and phone-network switching out of relays, vacuum tubes, and gas discharge tubes. I suspect that obsessively reading that book, sketching out circuit designs on paper, and simulating them on paper did a lot more to improve my current programming ability than more programming in BASIC would have.

    While I appreciate Alan’s point of view, and I think it’s valid, generally I find that to actually get anything done in programming I have to combine my inner Alan Kay and my inner Edsger Dijkstra. In this debate, the relevant Edsger Dijkstra quote (if it’s real?) is, “Computer science is no more about computers than astronomy is about telescopes.” If you’re going to teach kids about astronomy, it might be good to have them spend some time peering through telescopes â?? but it’s probably important to keep them from getting too distracted by the telescope itself (and the spectrograph, &c.).

    In this case, the danger is that it’s easy to get distracted from the big ideas inherent in computers â?? discrete sampled approximations of analog phenomena, the Algorithm, the power of recursive-ascent design, the Interpreter and the Church-Turing thesis, the productiveness of simple formal systems like NAND or pure Lisp, the distinction between a state machine and a function, the power of notation, the Eliza effect, and so on â?? by how cool it is to push pixels around a screen or vibrate a speaker cone or make a robot walk. Guitar Hero isn’t the only example of this; you can get stuck in a flashy comfort zone in Logo or Etoys too.