Many professors of computer science say college graduates in every major should understand software fundamentals. They don’t argue that everyone needs to be a skilled programmer. Rather, they seek to teach “computational thinking” — the general concepts programming languages employ.
In 2006, Jeannette M. Wing, head of the computer science department at Carnegie Mellon University, wrote a manifesto arguing that basic literacy should be redefined to include understanding of computer processes. “Computational thinking is a fundamental skill for everyone, not just for computer scientists,” she wrote. “To reading, writing and arithmetic, we should add computational thinking to every child’s analytical ability.”
There is little agreement within the field, however, about what exactly are the core elements of computational thinking. Nor is there agreement about how much programming students must do, if any, in order to understand it.
Most important, the need for teaching computational thinking to all students remains vague [more after the jump].
At the college level, computer science courses intended for non-majors run a gamut. In some classes, students start coding right away with a mainstream language. Others exclude programming and examine social and ethical issues related to computer use.
At Carnegie Mellon, students who are not computer science majors are invited to try “Principles of Computation.” It starts with a history of computation, but in Week 2, students start learning the programming language Ruby. Then the course covers iteration, recursion, random number generators and other topics.
Tom Cortina, who teaches the course, says that some students perceive the programming as challenging, especially those who aren’t majoring in a field of science, technology, engineering or mathematics and are not accustomed to “the preciseness required.”
At Wheaton College in Norton, Mass., Mark D. LeBlanc, a professor of computer science, teaches “Computing for Poets.” The only prerequisite, according to the course syllabus, is “a love of the written (and digital) word.”
Professor LeBlanc has his students learn the basics of Python, another modern language used in the software industry. But this course is tied to two courses offered by the English department on J.R.R. Tolkien and Anglo-Saxon literature. Students in the computing course put concepts to immediate use by analyzing large bodies of text. The syllabus is more like what one would find for a humanities course.
“In the class, we take on big problems,” Professor LeBlanc says. “The majority of the students are overwhelmed — ‘Where do we start?’ ” This provides opportunities to illustrate the concept of decomposition, which he describes as “breaking a large problem into small manageable problems.”
At many other campuses, computer science departments introduce computational thinking by sparing students from learning an industrial-strength programming language in order to try applying the general concepts. Instead, students learn visual scripting languages that produce interactive animation. Scratch, which was developed for elementary and middle-school students, is one such language
At Grinnell College in Iowa, students can take “The Digital Age,” which covers the “great ideas in the field of computer science, focusing on underlying algorithmic principles and social implications.” But it does not entail learning a programming language.
“ ’Literacy’ implies reading and writing, so ‘computer literacy’ suggests that writing programs is a required skill for activity under this name,” says Henry M. Walker, a computer science professor at Grinnell. “However, general citizens may or may not have to write programs to function effectively in this technological age.” He prefers to promote “computer fluency,” attainable without assignments in programming.
Someday, the understanding of computational processes may be indispensable for people in all occupations. But it’s not yet clear when we’ll cross that bridge from nice-to-know to must-know.
Read the entire article here.
Have an opinion about this article? Please leave a comment in the space below.
(Contributed by Erwin Gianchandani, CCC Director)