November 11, 2008

Science Education in Computational Thinking

Just like last year, Eugene Wallingford (CoaSL interview here) of the blog Knowing and Doing has written up some pretty detailed workshop session reports from the 2008 NSF Workshop on Science Education in Computational Thinking. Here's his Table of Contents post, which I'll be reproducing below along with some excerpts from each post.

Primary entries:

  • Workshop 1: A Course in Computational Thinking -- SECANT a year later
    Teaching CS principles to non-CS students required the CS faculty to take an approach unlike what they are used to. They took advantage of Python's strengths as a high-level, dynamic scripting language to use powerful primitives, plentiful libraries, and existing tools for visualizing results. (They also had to deal with its weaknesses, not the least of which for them was the delayed feedback about program correctness that students encounter in a dynamically-typed language.) They delayed teaching the sort of software engineering principles that we CS guys love to teach early. Instead, they tried to introduce abstractions only on a need-to-know basis.


  • Workshop 2: Computational Thinking in the Health Sciences -- big data is changing the research method of science
    In addition to technical skills and domain knowledge, scientists of the future need the elusive "problem-solving skills" we all talk about and hope to develop in our courses. Haixu Tang, from the Informatics program at Indiana contrasted the mentality of what he called information technology and scientific computing:
    • technique-driven versus problem-driven
    • general models versus specific, even novel, models
    • robust, scalable, and modular software versus accurate, efficient programs

    These distinctions reflect a cultural divide that makes integrating CS into science disciplines tough. In Tang's experience, domain knowledge is not the primary hurdle, but he has found it easier to teach computer scientists biology than to teach biologists computer science.


  • Workshop 3: Computational Thinking in Physics -- bringing computation to the undergrad physics curriculum
    ...Further, many students do not think that computational physics is "real" physics. To them, physics == equations.

    This is a cultural expectation across the sciences, a product of the few centuries of practice. Nor is it limited to students; people out in the world think of science as equations. Perhaps they pick this notion up in their high-school courses, or even in their college courses. I think that faculty in and out of the sciences share this misperception as well. The one exception is probably biology, which may account for part of its popularity as a major -- no math! no equations! I couldn't help but think of Bernard Chazelle's efforts to popularize the notion that the algorithm is the idiom of modern science.


  • Workshop 4: Computer Scientists on CS Education Issues -- bringing science awareness to computer science departments
    Next, Tom Cortina talked about Teaching Key Principles of Computer Science Without Programming. In many ways, Cortina was swimming against the tide of this workshop, as he argued that non-majors could (should?) learn CS minus the programming. There certainly is a lot of cool stuff that students can learn using canned tools, talking about history, and doing some light math and logic. Cortina's course in particular covers a lot of neat material about algorithms. But still I think students miss out on something useful -- even central to computing -- when they bypass programming altogether. However, if the choice is between this course and a majors-style course that leaves non-majors confused, frustrated, or hating CS, well, then, I'll take this!


  • Workshop 5: Curriculum Development -- some miscellaneous projects in the trenches
    Bruce Sherwood reported a physics student comment of his own: "I don't like computers." Sherwood responded, "That's okay. You're a physicist. I don't like them either." But physics students and professors need to realize that saying they don't like computers is like saying, "I don't like voltmeters." If you can't work with a voltmeter or a computer, you are in the wrong business. That's just the way the world is.

    My favorite line of Landau's is one that applies as well to computer science as to physics:

    We need a curriculum for doers, not monks.


  • Workshop 6: The Next Generation of Scientists in the Workforce -- computational thinking as competitive advantage
    How does computational thinking help the company do more better and faster? By...
    • ... letting scientists spend more time doing what they love.
    • ... eliminating low-value-add transactional activities in the business process.
    • ... boosting the speed and scalability of their systems.

    Notice that these advantages range from the scientific to business process to the technical. It's not only about techies sitting in front of monitors.



Ancillary entries:
  • This and That -- the inevitable miscellaneous thoughts
    The buzzword of this year's workshop: infiltration. Frontal curricular assaults often fail, so people here are looking for ways to sneak new ideas into courses and programs. An incremental approach creates problems of its own, but agile software proponents understand its value.


  • No One Programs Any More -- a timely conversation the week before the workshop
    In the time since I joined the faculty here, many departments have dropped the computer programming requirement from their majors. Part of the reason is probably that the intro programming courses were not meeting their students' needs, and our department needs to take responsibility for that. But a big part of the reason is that many faculty across campus believe as the Math faculty do, that their students don't need to learn computer programming anymore. Not too surprisingly, I disagree.

2 comments:

Eugene Wallingford said...

Thanks, John, for the cross-link. This workshop offered a lot of great discussion about the role of computer science in today's science. The trend toward computational methods is gaining speed.

computer programming said...

We hope this workshop attract new students into computer science and better prepare natural science students to employ the computational tools they will utilize in the future.