Talking with Joan Peckham about computational thinking

When Phil Windley pointed me to Jeannette Wing’s manifesto on computational thinking, she had me at hello. The intellectual tools of computer science, she argues — including the ability to work at multiple levels of abstraction, to automate repetitive processes, and to make and use state machines — are really “a universally applicable attitude and skill set that everyone, not just computer scientists, would be eager to learn and use.”

In 2007 I interviewed Jeannette Wing for my Innovators show. Since then she has moved from Carnegie Mellon to the National Science Foundation, where she is — among other activities — working to define, promote, and bootstrap the teaching of computational thinking.

On this week’s show I spoke with Joan Peckman, a University of Rhode Island professor of computer science who’s on leave to work with the NSF on that mission.

Toward the end of the podcast, she relates this delightful anecdote:

At the first CSTB workshop on computational thinking for everyone, someone from the University of Indiana showed a video on how he was teaching science. We all looked at it and thought: “But it’s also computational thinking!”

In the course of teaching elementary school students about honey bees, he took them out on the playground and asked them to act out what the honey bees did: leaving the hive, finding the pollen, giving directions to the other bees. Then he brought them back into the classroom, went to a whiteboard, and engaged them in activites that I would identify as modeling, debugging, and drawing finite state diagrams. He didn’t call them that, but that’s what they were.

Yes he was teaching them science, but the way he was analyzing the subject, and engaging them in analysis, clearly involved a set of computational constructs.

In my own recent writing and speaking, I’ve suggested that feed syndication and lightweight service composition are aspects of computational thinking that we ought to formulate as basic principles and teach in middle school or even grade school.

We tried, but failed, to come up with a phrase that embellishes computational thinking with connotations of flow, orchestration, and connectedness. Syndication-oriented architecture. gets partway there, but will never fly in the mainstream. Maybe connected thinking? But you don’t want to leave out what computational connotes. Perhaps computational and connected thinking? Nah, too wordy. I’d love to hear suggestions for a tagline that concisely captures both aspects.

For more background on computational thinking, here are Joan Peckham’s show notes:

The CSTB (Computer Science and Telecommunications Board) of the National Academy of Sciences is holding Computational Thinking for Everyone: A Workshop Series in 2009. Monitor their website for developments and reports:

Previously awarded CPATH projects (only some of which address computational thinking directly … although the current solicitation requires it):

2007 award portfolio –

2008 award portfolio –

Computer Science Unplugged ( site has a wealth of classroom ready activities.

Rebooting Computing Summit in January 2009 ( Several working groups emerged from this meeting. Some of the groups were concerned with computing education, and in defining and better communicating computing to others.

The Computer Science Teachers Association (CSTA) has a web repository with K-12 computer science teaching and learning materials:

The Carnegie Mellon University Center for Computational Thinking site has materials and resources: [ed: Sponsored, I’m pleased to say, by Microsoft Research.]


  1. The idea of “Syndication-oriented architecture” sounds very close to our work on Linked Data Architecture: The latter combines AtomPub, domain modeling, and even throws in Linked Data for free.

    The basics of domain modeling should be within the grasp of middle-schoolers and simplified forms could reach down to kindergartner levels.


  2. The recording on IT Conversations is playing your interview with Jeannette Wing rather than Joan Peckham

  3. Computational and systemic thinking. I think in systems, in collections of components, how they relate, and how they interact. That interaction is, amongst other things, data flow.

  4. > The basics of domain modeling should be
    > within the grasp of middle-schoolers

    How would you motivate the teaching of the subject at that level?

    1. Every game has a domain model and agreeing on a domain model is inherently social. It’s just a question of finding games that are age-appropriate.

      I haven’t thought much about it at a middle-school level, but a teacher friend and I have started to discuss ways to present domain modeling in his vocational high school programming classes. Developing this into a “certification program” seems feasible and would help justify it to educators.

      At the middle-school level, domain modeling might be appropriate in the context of a mathematics course. I remember being introduced to Sudoku in a summer grade school math class. I didn’t get it at the time, but the impact lingers.

  5. > That interaction is, amongst other things,
    > data flow.

    Computational and systemic thinking does surely involve data flow. But it predates networks — well, electronic networks anyway.

    If systemic thinking implies human->human, human->computer, and computer->human communication, in ways that create and exploit network effects, then I agree.

  6. Very informative interview! I vote for retaining “computational thinking” and get on with the mission. How about a series of podcasts introducing the topics in terms the public can understand?

    Here’s a similar effort a decade ago, Information Fluency, led by Larry Snyder at U. Washington

    FITness is more technology oriented whereas computational thinking is more abstract. Here’s a challenge for both approaches: explain SQL in both theory and practice.

  7. The honey bee example is definitely how our schools should be teaching. The teacher may have indirectly introduced computational thinking but some students will have the ‘ah ha’ moment further on in their learning. Computational thinking is a model for problem solving and would benefit children today.

  8. What we are talking about here is simply modeling. Process modeling. System modeling. System analysis. Design analysis. Engineering. I would never refer to it as computational thinking–what is the point? It would be one thing to say we can look at things in terms of a software development model, but to coin a phrase “computational thinking” is noisy and clutters up the language without adding anything. Time to take out Occam’s razor and kill it right here.

    Better to think in terms of systems modeling, which can be applied universally, rather than trying to force-fit systems modeling into how an academic may view software design processes. This is not to say that we can’t grab useful terms and concepts from software analysis and design, but let’s also grab from natural processes, engineering, and elsewhere.

    Ideally the goal is to facilitate the mindset of a developer in students. But a developer can be a software developer, a business developer, a product developer, a service developer, a land developer, etc. A developer does systems analysis and design with respect to their current project, whatever that may be.

  9. > This is not to say that we can’t grab
    > useful terms and concepts from software
    > analysis and design, but let’s also grab
    > from natural processes, engineering, and
    > elsewhere.

    I agree. But don’t know what name will capture all of that, plus the key new ingredient of massive interconnectivity and all that flows from that.

    And if part of the goal is to rally an educational movement, there does need to be a good name.

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 )

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s