There will always be friction

October 6, 2009 at 12:12 pm 13 comments

I (finally) finished grading midterms and first round of grad student essays from my joint undergrad/grad “Educational Technology” class last night. The first phase of the class was an exploration of the proposition: “Computing creates an opportunity to program, and learning to program creates an opportunity to learn other things better.”

Many of my grad students referenced a wonderful essay by Michael Mateas, analyzing the Alan Perlis 1961 talk where he called for everyone at the university to learn to program: Procedural Literacy: Educating the New Media Practitioner.  An often quoted section from Michael’s essay focused on an interaction between Alan Perlis and Peter Elias, where Elias saw programming as a mere technician’s job:

“I have a feeling that if over the next ten years we train a third of our undergraduates at M.I.T. in programming, this will generate enough worthwhile languages for us to be able to stop, and that succeeding undergraduates will face the console with such a natural keyboard and such a natural language that there will be very little left, if anything, to the teaching of programming…”

Michael disagrees with Elias’ view:

The problem with this vision is that programming is really about describing processes, describing complex flows of cause and effect, and given that it takes work to describe processes, programming will always involve work, never achieving this frictionless ideal. Any tools that reduce the friction for a certain class of programs, will dramatically increase the friction for other classes of programs.

Can the programming language simply “disappear” from the task of programming?  I think Elias’ view represents that of most computer scientists, that the language is a mere detail in education or in actual programming. It’s something to get rid of or ignore. Or is Michael right, and there will always be some “friction” involved?  If there is friction, how do we teach it?  Michael wants us to teach the friction, wants us to teach the “worldview” that each language builds upon.  His view is like Ian Bogost’s “Platform Studies” which suggests that understanding this “friction” is important to understanding how the technology has developed and impacts us.

Michael goes on to describe what a curriculum focused on computer-as-medium might look like:

It is important not to view computation for new media students as a dumbed-down version of the traditional computer science courses. Teaching programming for artists and humanists shouldn’t merely be simplified computer science with lots of visually engaging examples, but rather an alternative CS curriculum.

I think Michael is right. It’s probably not surprising that Michael was on the committee that created our Computational Medium degree here at Georgia Tech.  What I worry about in Michael’s comment is the implication for the Computer Science curriculum program.  What does that say about computer science if our goal is to ignore the “friction,” when that “friction” is actually important, interesting, and is part of what is most challenging for our students to learn?  What does it say about computer science if wanting to teach programming for creative expression demands the creation of another curriculum?

Entry filed under: Uncategorized. Tags: .

Computing Surge in Georgia from Inside Higher Ed What are the priorities of computer science?

13 Comments Add your own

  • 1. Ian Bogost  |  October 7, 2009 at 6:39 pm

    I see where the conclusion in this piece comes from, but I don’t think Michael meant to say that this couldn’t happen in CS. His article, and this section specifically, was just dealing with the implications of the computational media degree.

    If Elias’s view is truly predominant in CS, then that’s a shame. What other craft pays no attention to the details and evolution of its tools?

    • 2. Mark N.  |  October 7, 2009 at 7:04 pm

      Math, perhaps? There’s a strong sense among many mathematicians that notation and style of proofs and such is just implementation detail that shouldn’t be dwelt on more than necessary. (Maybe CS even inherits that “it’s just notation” view directly from the mathematical part of its heritage?)

      • 3. Ian Bogost  |  October 8, 2009 at 9:56 am

        Mmm, maybe so Mark. For example, I don’t think Newton or Leibniz ever came up in any of the reasons and conflicts of calculus and its notation when I was in school.

      • 4. Jeff Graham  |  October 8, 2009 at 11:04 am

        I would disagree about mathematicians don’t care about notation and style. The British mathematicians from Newton until a century later stuck with Newton’s clumsy notation for derivatives and geometric viewpoint. They fell very far behind the continental mathematicians using the more conceptually powerful algebraic notation of Leibnitz. This situation has not changed in the following centuries. Mathematicians use thei language very precisely, it is not possible to do this and NOT CARE about the notation, symbols, and style of proof (the fundamental tool of mathematics). This is not at all similar to the superficial choice of a programming language to teach cs1, I don’t think. Maybe if it is, it is because cs is not a mature discipline yet being only a few decades old. So argue about the tools with vigor, you are defining the future.

      • 5. rdm  |  October 30, 2012 at 10:12 am

        Math is more of an art form than a technology. It’s less connected with real world practicalities than any other subject. Music, painting, english literature, and philosophy all are more grounded in practicality than mathematics.

        Which, ironically, is what makes mathematics so useful — its “tools” are all concepts that people have found pleasing, which turns out to be a useful selection process for concepts.

        Still, other liberal arts subjects also turn out to be useful.

        But I am sort of surprised that liberal arts also does not include any classes on the sort of industrial design which has gone into making factories. That’s also an important part of our culture (albeit a fading element, if we are talking about education in the States). And the sorts of processes that go on there are in some way related to the sorts of processes that we use in computers.

        Something similar might go for agriculture (at least in the states, where only a tiny fraction of the population is immersed in the subject).

        Of course, in a liberal arts context, the point is not to make the student an expert in the subject. Instead, the point is to give them the basic vocabulary and appreciation of the subject — enough so that they are not blind to the issues. Something similar probably applies to a liberal arts computer curriculum. (Except, of course, there’s at least 7 levels of abstraction in the IP stack, alone — and a real liberal arts computer curriculum would probably need to introduce the student to at least that many levels of abstraction.)

  • […] recent discussion on my last blog post talks about how we in computer science tend to dismiss (as mathematics does, says one commentor) […]

  • […] Michael Mateas has talked about this in his discussion of a published dialog between Alan Perlis and Peter Elias.  Elias claims, like Norman and Weiser, that one day “undergraduates will face the console with such a natural keyboard and such a natural language that there will be very little left, if anything, to the teaching of programming.”  Michael responds, “The problem with this vision is that programming is really about describing processes, describing complex flows of cause and effect, and given that it takes work to describe processes, programming will always involve work, never achieving this frictionless ideal.” […]

  • […] Today, I’m at Carnegie-Mellon University to speak in their Program for Interdisciplinary Education Research (PIER) today, and at the “EdBag” tomorrow.  I’m excited (and a bit nervous) — I’ve never spoken here at CMU before.  Leigh Ann Sudol-DeLyser is my student host, and she gave me a great tour of the campus yesterday.  For today’s talk, I’m giving a variation of my “Meeting the Computing Needs for Everyone” talk (describing Brian Dorn’s work and the role of contextualized computing education in this goal), but with special attention to the Alan Perlis lecture from 1961. […]

  • […] it is.  It’s very much about developing a mental model of a notional machine and gaining procedural literacy. But even expert programmers, especially the self-taught ones, can be ignorant of the key […]

  • […] modern liberal arts education.  The argument is a modern and updated version of the argument that Alan Perlis made back in 1961. The specific computing literacies being described go beyond computational thinking — […]

  • […] I buy Chris Granger’s argument here, that coding is not nearly as important as modeling systems.  The problem is that models need a representation — we need a language for our models.  The point is modeling, but I don’t think we can have modeling without coding.  As Michael Mateas said, there will always be friction (see post). […]

  • […]  I told the story about Alan Perlis’s talk and about Michael Mateas’s argument, “There will always be friction.” From the computing educators, I heard a lot of anger. The German computing education […]

  • […] the first two public arguments for teaching computer science to everyone in higher education.  Alan Perlis’s talk was the most up-beat, talking about all the great things we can think about….  He offered the carrot.  C.P. Snow offered the […]


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Trackback this post  |  Subscribe to the comments via RSS Feed

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 7,982 other followers


Recent Posts

Blog Stats

  • 1,794,421 hits
October 2009

CS Teaching Tips

%d bloggers like this: