Should Liberal Arts Students Learn “Computational Thinking”?

in BU News, Significant Bits
May 24th, 2012

Machine Dreams

Computational thinking, procedural thinking, algorithmsYour brain in bytes: should the basic concepts behind computer science and language be required learning for everyone?

Should the three Rs be four Rs, as in reading, ’riting, ’rithmetic, and ’rogramming? That’s the argument made by Carnegie Mellon computer scientist Jeannette Wing and increasingly by academics from a broad spectrum of disciplines. They insist American education is shorting students, even those who’ll be poets and philosophers, by failing to equip them with the basics of “computational thinking,” the general ideas undergirding computing.

Andrea Berlin, a College of Arts & Sciences professor of archaeology, who specializes in Middle Eastern pottery made during the period from five centuries before Christ to 640 C.E., is one of them. Berlin says archaeological digs and other historical research have uncovered such a mountain of data that “most archaeologists cannot wrap their arms around it.” She’s hoping to develop a website and app that would allow scholars who aren’t computer scientists to gather, mix, and match that information—by time period, region, and other traits. Then a political scientist, for instance, could “compare the patterns, intensity, and direction of trade under earlier political regimes as revealed by archaeological evidence, and gain hard data and real insight into the relationship between economies and various imperial systems,” she says. Currently, no one can do that, because “there’s no venue by which somebody could access the data.”

Computers and computational thinking have revolutionized the way she regards information and its uses. “I used to think of archaeological data as a great mass comprised of many separate items—whole things,” she says. But like an atom, each individual datum can be split into different attributes, and “different users might want to deploy selections of those attributes for different and various questions,” like that hypothetical political scientist mapping ancient trade routes.

She’s seeking a grant for her project from the Rafik B. Hariri Institute for Computing and Computational Science & Engineering. The vision of BU trustee Bahaa Hariri (Questrom’90) in launching the institute with a $15 million gift was exactly what Berlin wants: the marriage of computational techniques and all fields of knowledge. The Hariri institute’s founding director, Azer Bestavros, says computational thinking encourages scholars to ask questions they wouldn’t ask without it. All academicians, he says, will ask more and better questions if they know those questions can be answered.

Bestavros, a CAS professor of computer science, argues for mandatory instruction in computational thinking in high schools and colleges, insisting that there are ways to teach it without plunging nonscientists into a flummoxed coma. “Computational thinking is not programming,” he says.

Leonid Reyzin, a CAS associate professor of computer science, seconds that. “Computation simply means working with information. And because we are in the information age, you can’t fully participate in society without such understanding.” For example, says Reyzin, understanding the current debate over congressional legislation to combat online copyright infringement overseas requires rudimentary knowledge of how people get information today, and how the legislation would change that.

A College Board commission currently devising a new high school Advanced Placement course in computer science has flagged general practices defining computational thinking. They include “analyzing the effects of computation,” “creating computational artifacts” (apps), using abstractions and models, and working effectively in teams.

Some universities already include programming in their computational-thinking-for-dummies courses. Carnegie Mellon, admittedly a techie school, teaches the programming language Ruby, Wheaton College offers Computing for Poets, which requires learning the programming language Python, and the University of Maryland uses Scratch, a visual animation language developed for children.

At BU, CAS requires all students to do course work in mathematics/computer science, not computational thinking per se. For a humanities major seeking an introduction, Dean of Arts & Sciences Virginia Sapiro suggests MA/CS 109, The Art and Science of Quantitative Reasoning, taught jointly by the math and computer science departments. The course description reads: “Buying music online, making phone calls, predicting the weather, or controlling disease outbreaks would be impossible without mathematics, statistics, and computer science. Focuses on methods of reasoning common to these disciplines, and how they enable the modern world.”

Bestavros assures students that there isn’t a minute of programming instruction in the course—just as “you don’t have to use a telescope to appreciate” astronomy, he says.

“We thought that there were more important topics given our limited time,” says Reyzin, who codeveloped and teaches the class. Given his druthers, though, he’d teach programming, because “it is learning by doing.” In Bestavros’ ideal university curriculum, MA/CS 109 would be part of a menu of approaches, with students electing whether to learn programming as part of computational thinking.

There are skeptics of the importance of teaching computational thinking, and some of them are computer scientists. The Yale Daily News reports hostility from the school’s computer science department, whose professors frown on such instruction as “trade school.”

Bestavros thinks they’re wrong about that. “Computational thinking is a big idea,” he says, “and 20, 30 years from now, there may be a standard way of teaching it. We are nowhere close to that. But I think society is going through this transformation, and if you want to be competitive 20 years from now, in whatever profession, you really have to get on that bandwagon.”