Many professors of computer science say college students should
be taught the general concepts that programming languages employ.
Reading, writing and -- refactoring code?
Many professors of computer science say college graduates in
every major should understand software fundamentals. They do not
proclaim 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 in Pittsburgh, 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
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,
to understand it.
Most important, the need for teaching computational thinking to
all students remains vague.
At the college level, computer science courses intended for
nonmajors 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, said that some students
perceived the programming as challenging, especially those who were
not majoring in a field of science, technology, engineering or
mathematics and were not accustomed to "the preciseness required."
At Wheaton College in Norton, Massachusetts, 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."
Mr. 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. …