“Computer Science for the Rest of Us”

April 1st, 2012 by Erwin Gianchandani Post a comment »

An article in today’s New York Times that’s making the rounds — written by Randall Stross, an author and professor of business at San Jose State University:

Colleges are taking widely different paths to teaching general concepts underlying computer programming language. Tom Cortina offers a course in "Principles of Computation" at Carnegie Mellon in Pittsburgh [image courtesy Jeff Swensen for The New York Times].READING, writing and — refactoring code?

 

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.”

 

Mark LeBlanc teaches "Computing for Poets" in conjunction with English courses at Wheaton College in Norton, Mass [image courtesy Keith Nordstrom via The New York Times].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)

  • Lazowska

    My view:

    Pretty much any press is good press.  (Well, except for the series about Amazon.com that begins in Sunday’s Seattle Times.)

    However, except for the photo of my friend Tom Cortina, it’s not a particularly good article; for example, it misses all of the thinking that has gone into the new AP and CS10K.

    The article clearly illuminates, though, the fact that we have failed to define “computational thinking,” and also to emphasize the continuum that runs from “computer use” through “computational thinking” to “being a computer scientist.”  Wow, we have a lot of work to do!  And we need to do it together.

  • Saddam Hossain


    Computer Science

    of higher discovering are however not in agreement of
    what is recommended by many technical levels, such as application technological
    innovation and pc technological innovation. These areas, along with it, Computer Science

    , and pc technological innovation technological
    innovation, are simply too newly. Thus, such one school or company thinks as a
    requirement pc technological innovation may be viewed by another as application
    technological innovation. In the beginning,   Computer Science

     constituted hard-wire to do a
    certain function. Theatre person did little more impact a button. Appropriating
    greater person management led to the progression of progression dialects and
    compilers to