Computational Science needs CS Education
At the BPC Alliance PI’s meeting last week, there was discussion of a recent meeting in DC where the attendees were talking about the importance of computational science and engineering. The problems of CS education were presented (e.g., low enrollment, high failure rates), the response was, “But what does that have to do with computational science?” Does computational science need computer science education, or can they just go it alone?
To start with, this is a big question. Scaffidi, Shaw, and Myers did a detailed analysis of the size of the end-user programming community. They estimate that by 2012, there will be about 3 million professional software developers in the United States, and about 13 million people who program as part of their jobs but not as software developers. One way to think about it as a CS educator: For every one person in our classes, there are at least four more who will be using computer science — but may not have had any formal computing education. Not all of those 13 million will be computational scientists and engineers, but a great many will be.
“Okay, so maybe scientists and engineers need some CS at the undergraduate level,” you might be thinking. ”But why us? Let the physicists teach their own!” My experiences this last year suggest that that doesn’t work well.
- Matter and Interactions is a new Physics textbook series by Ruth Chabay and Bruce Sherwood, where students program in VPython as part of their labs. A three-body problem can’t be solved mathematically, but you can create a pretty good simulation that works well. We’re using M&I here at Georgia Tech, and one of the challenges of using it is finding teachers. I’ve talked to the folks involved in using it here. Physics professors want to teach Physics, not variables or for loops. There’s some talk around here about requiring GT students to take CS before Physics, so that the physicists can assume the CS knowledge already.
- I’ve visited a lot of schools this last year. At one college, I got to visit with non-CS faculty who teach in a computational science program and then with some of the students in that program. The non-CS faculty told me that they hated teaching CS — they recognized that they weren’t good at it, and it wasn’t of any interest or value for them to get better at it. The students agreed that the non-CS faculty were bad at it. ”They just throw a program at us, and say, ‘Here, read this. Figure out how loops work.’”
Computer science professors may not be great at teaching CS (consider our failure rates in CS1), but we have much greater incentive to get better at it than a Physics or Biology professor. The SIGCSE Symposium draws around 1200 faculty each year. That’s a lot of people working at becoming better CS teachers. On average, a CS professor is going to be better at teaching computer science to future computational scientists and engineers than will the professors in science and engineering.
Computational science and engineering needs CS education to be healthy and growing. Decreasing interest in CS and rising failure rates in introductory CS classes is a problem for all of STEM, not just CS. All of STEM is going to rely on computing, and their students need some CS classes, not just learning on their own. Computer science professors are the best bet that they have for teaching CS well to STEM students.