Computing Applications BLOG@CACM

The Power of Computing; Design Guidelines in CS Education

The Communications Web site,, features more than a dozen bloggers in the BLOG@CACM community. In each issue of Communications, we'll publish selected posts or excerpts.

Follow us on Twitter at

Daniel Reed writes about how computing systems increase human intellect and abilities. Mark Guzdial discusses the need to avoid polarized and extreme positions in education and the trend toward design-based research.
  1. Daniel Reed "Intellectual Amplification via Computing"
  2. Amplification and Universality
  3. Mark Guzdial "From 'Must' and 'Unsuitable' to Design Guidelines in Computing Education"
  4. Authors
February 18, 2011

Many years ago, Fred Brooks relayed a tale about how he chose the first application target domain for his computer graphics research. It was not long after he had left IBM and completed his work on the IBM System/360. He had just moved to Chapel Hill and taken a faculty position at the University of North Carolina.

As I remember Fred telling the story, with a bit of a twinkle in his eye, he went to see one of the senior university administrators. He told the administrator that, as a computer scientist, he was in the intelligence amplification business. Who on the campus, Fred wanted to know, might most benefit from having their intelligence amplified?

DANIEL REED: "Success accrues to the talented with access to the most effective and powerful tools."

I have recalled this story many times, always with a smile, as I have reflected on the nature of computing and its power.

Back to Top

Amplification and Universality

Computing systems share many features with other instruments and machines in amplifying human abilities. However, one aspect distinguishes them—namely, their general utility as an intellectual amplifier. Like a universal Turing machine, which can simulate any other Turing machine with arbitrary inputs, computing is broadly—dare I say universally—applicable to human intellectual endeavors, much as all the variants of the inclined plane and lever are applicable to human physical endeavors.

Sir Humphrey Davy could well have been speaking about computing two centuries ago when he said, "Nothing tends so much to the advancement of knowledge as the application of a new instrument. The native intellectual powers of men in different times are not so much the causes of the different success of their labors, as the peculiar nature of the means and artificial resources in their possession."

In a phrase: Success accrues to the talented with access to the most effective and powerful tools.

Supercomputing and its applications to science and engineering have been canonical examples of this universal benefit. Powerful new telescopes advance astronomy, but not materials science. Powerful new particle accelerators advance high-energy physics, but not genetics. In contrast, supercomputing advances all of science and engineering because all disciplines benefit from high-resolution model predictions and theoretical validations.

As exciting as those opportunities remain, new ones are emerging in the world of big data.

The tsunami of structured scientific data produced by a new generation of sensors and the growth of semi-structured and unstructured data from business, entertainment, social networks, and popular culture have created new needs for the creative application of our intellectual amplifier. As the performance of IBM’s Watson system on the game show "Jeopardy!" illustrated, the combination of large-scale data, rich algorithm suites, and powerful computing are opening new vistas. Vannevar Bush’s 1940s vision of a Memex, a device capable of storing, indexing, and retrieving data from a broad knowledge base, is now within our reach.

It really is about how we use computing as an intellectual amplifier, allowing humans to be more productive and more creative by doing what we do best—asking interesting questions, ones that span multiple disciplines and that illuminate opportunities at their interstices—aided by powerful analytic and computation engines.

Back to Top

Mark Guzdial "From ‘Must’ and ‘Unsuitable’ to Design Guidelines in Computing Education"
March 25, 2011

Matthias Felleisen gave a rousing opening keynote at SIGCSE 2011. There was a lot to like about the ideas and insights he presented. I particularly liked the design-oriented topic list for an introductory CS course, versus a language-oriented one. The latter one looks like just about any intro course you’ve ever seen, which makes his point. What I didn’t like about his talk was the tone of the rhetoric. "Lesson 1: Your PL/IDE must support an arithmetic of images." "Must"? I loved what they are doing with images in Racket, but there are other tools for novices that do lead to success but don’t support an arithmetic of images. A useful design guideline might be: "Lesson 1: A PL/IDE that supports an arithmetic of image engages and motivates students." I buy that. I also buy that there are lots of ways to engage and motivate students without an arithmetic of images.

Recently, I visited Carnegie Mellon University where I heard about their new introductory curriculum. They introduce computing with an imperative first course using a language called c-0 ("C-nought"), then follow that with a second course using functional programming ML. The courses are quite rigorous in that they place a strong emphasis on verification and proof as part of program development. I love the multilingual, multiparadigmatic model! Object-oriented methods show up in a new course, not part of the core curriculum. Then someone sent me a link to Robert Harper’s Existential Type blog, where he claims in the "Teaching FP to freshman" post, "Object-oriented programming is eliminated entirely from the introductory curriculum, because it is both anti-modular and anti-parallel by its very nature, and hence unsuitable for a modern CS curriculum." Really? "Unsuitable?" The CMU report, Introductory Computer Science Education at Carnegie Mellon University: A Deans’ Perspective, describing the rationale for the new approach is more careful in its claims:

Although object-oriented programming (in its myriad forms) remains a dominant theme in industrial software development, the use of object-oriented languages, such as Java, at the introductory level introduces considerable complexity and distracts from the core goals at the introductory level. It seems preferable to give fuller coverage of OO design and implementation methodology to later in the curriculum to allow more focused concentration on basics at the introductory level.

MARK GUZDIAL: "Let’s celebrate our successes in computing education without claiming that ours is the only path to that success."

I can buy that. That’s a valid criticism, and it does consider where objects do fit into the curriculum. The Harper blog post paints all of OO with a Java brush. Alan Kay recently said in a comment to a post in my Computing Education Blog, "By my original definition of ‘Object oriented,’ neither Java nor C++ is OO." Message sending in Smalltalk and Self is both object-oriented and easily made parallel. Because Java doesn’t work for the purpose, all of object-oriented programming is "unsuitable" and must be "eliminated"?

Why do we take such polarized and extreme positions in education? All across the political spectrum, there are complaints about polarization in education. Maybe we fight about it because it is so important. But I would hope the researchers and scientists could be more careful. Could you get a paper published in a programming languages or parallel algorithms conference making statements about "must" and "unsuitable" without proof or evidence?

In education research, there is a trend toward design-based research that I think helps to avoid the polarities. Design-based research is about doing iterative development in real classrooms. You rarely come out with definitive claims supported by statistical significance that researchers expect to generalize. Instead, you end up with statements like, "Under these conditions, we can show that these interventions lead to significant learning gains." Those kinds of statements can guide future design, and can help the teacher, but avoid defining A One, True Way. Rather, we can talk about what works, leaving open the door that some other set of conditions might make another set of interventions successful. We absolutely care about having strong and careful yardsticks, so that we can measure real learning. But we recognize that there are many ways to reach the end of that yardstick.

Human beings are complicated and messy. What works great with one set of students may not work at all with another. Laws like "F=ma" are rare in education. Instead, we need guidelines that inform future efforts. Let’s celebrate our successes in computing education without claiming that ours is the only path to that success.

Back to Top

Join the Discussion (0)

Become a Member or Sign In to Post a Comment

The Latest from CACM

Shape the Future of Computing

ACM encourages its members to take a direct hand in shaping the future of the association. There are more ways than ever to get involved.

Get Involved

Communications of the ACM (CACM) is now a fully Open Access publication.

By opening CACM to the world, we hope to increase engagement among the broader computer science community and encourage non-members to discover the rich resources ACM has to offer.

Learn More