Why compute?

I’ve been thinking a lot lately about why we need to teach scientists at least a little computational science. Most scientists and students of science have no desire to be programmers. Many of them are a little bit afraid of (or at least angry with) computers. All those blue screens of death. All that inexplicably lost work. All those documents that didn’t quite print the way they were supposed to, that were all but unfixable. All those networks that wouldn’t connect. All those rude and unintelligible error messages. All those times being ignominiously rescued by the techies. It’s an entirely logical response.

And yet computation is now inextricably linked with science. There is no longer a single discipline whose results will not at some point be computationally stored, analyzed, visualized, and/or simulated computationally.

That’s ok, right? Scientists can just hire competent programmers to go sort that icky stuff out for them, and hand them back the results, surely?

But here’s the thing: Even if you have funding for a programmer, how can you be sure your programmer got it right?

How do you even know how to hire a competent programmer?

I’ve seen too many “awesome techies” hired on the basis that they could spout unintelligible gibberish at a fantastic rate. Leading to the “I don’t understand them. They must be good!” school of hiring. This rarely ends well.

A competent programmer analyzing data effectively has to have some domain knowledge to be sure she is analyzing the right things and coming up with accurate results. This does not mean the scientist has to be the programmer, but it does mean the scientist has to be able to talk to the programmer. You have to know what you are asking, and what’s possible and what’s not. You have to be able to explain what you need. You have to know what your output should look like, so that you can verify your results. You have to be able to talk algorithms with your programmer, to ensure that the program she has written does what you want it to do. You have to have at least some understanding of why 0.1 + (0.2 +0.3) does not equal (0.1+0.2)+0.3, despite everything you thought you knew about maths.

Most scientists still can’t do this, and this is in part because Computational Science hasn’t always been shared in an intelligible fashion. When you add all those befuddling acronyms on top of that generalized antipathy towards computers, you wind up with scientists who would rather crawl naked through a horde of bull ants than do a course in computational science. “Never mind, thanks. We’ll do our research the slow way. We’ll use Excel. We’ll do the damned calculations by hand if we have to!”

Fortunately there are now organizations like Shodor and sites like Computer Science Unplugged that are making CS ever more accessible to people who don’t live, eat, sleep, and breathe computer science. There is even Software Carpentry running CS courses for scientists, and at the same time building teaching capacity so that the courses can spread.

What we are still missing, as far as I can see, is the spread of CS into science education itself. Science at university. Science at high schools. It’s still largely taught using traditional methods and traditional curricula. There are courses here and there that bridge the gap, but I think there is a conceptual leap we have to make before computer science will find itself properly embedded in the sciences. We have to shift Computer Science from “icky, confusing, and scary stuff that we’d rather leave to those freaky nerd people” to something that’s interesting, fun, and fundamental to science.

Advertisements

About lindamciver

Australian Freelance Writer, Teacher, & Computer Scientist
This entry was posted in Uncategorized and tagged , , , , . Bookmark the permalink.

2 Responses to Why compute?

  1. Simon says:

    Good article Linda!

    However, I’m not sure if its the “icky” factor that is the problem. I think it’s just the competition for classroom time and the inertia of tradition. A problem not unique to computation. This is a problem in both high school and undergrad, so computation often does not get a real treatment in either. So Software Carpentry now primarily focuses on early graduate students and early career researchers – they are the people with both the time and the need to learn the tools. See their article at http://f1000research.com/articles/3-62/v1

    It requires people who have used computation to push for it to be taught against the tradition that has not had (or recognised) a need for it. In the universities I’ve been in, it is normally only one or two profs who run the computational aspects of the courses – and their approach is particular to their experiences. However, as it becomes more common in research, I think it is feeding back into the teaching more…

    High school is different. The people in charge of creating and enacting curriculum at HS often are not researchers (in science) – there is less of a chance they’ve used computation in any significant way. So even if they acknowledge the importance of students knowing about it, they lack the knowledge or commitment to implement it.

    • lindamciver says:

      You’re definitely right about High School teachers not having the skills or background to teach the computational aspect of science. Any school that wants to go down that road is going to have to invest in training and ongoing support (I think this is a strong argument for having computer scientists on staff and giving them a time allowance for staff training, but perhaps I’m biased!).
      I think the ick factor does exist a little, in that it all gets put into the “too hard” basket. But the main problem is that the change in the way science is done at the laboratory coalface has not percolated in to schools, or indeed universities. And certainly time and curriculum crowdedness is a factor, but many things can be so effectively illustrated computationally, that there could be time gained as well as spent. We could wait for more computationally trained scientists to filter back into teaching, or we could push the envelope, as you and I are already doing in our individual courses.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s