TITLE: No One Programs Any More AUTHOR: Eugene Wallingford DATE: October 23, 2008 9:58 PM DESC: ----- BODY: One of my colleagues in the Math department sent me some e-mail today:
I am a constant advocate for our (math) majors receiving some sort of 'computer-programming experience' before they graduate. Of course not all of my colleagues are as enthusiastic about this... In fact, at a recent meeting, someone stated: "No one programs anyone." This is was the basis of their argument against requiring a programming course... and it turns out that several people believe this statement.
He asked for my reaction to their stance. This request comes as I prepare to attend the second SECANT workshop at Purdue next week. Last fall I wrote several articles about the inaugural workshop for this NSF-funded project. The NSF must think that programming and, more generally, computer science are important beyond the walls of the CS building, because it has funded projects like SECANT, the goal of which is to:
... bring together computer scientists and natural scientists who recognize that computing has become indispensable to scientific inquiry and is set to permeate science in a transformative manner.
Most of the attendees last year, and many on the roster for this year, are scientists: physicists, biologists, chemists, and astronomers. They all program in some form, because CS has redefined how they do science. Some of them are developing curriculum in their disciplines that are programming-based so that future grads are better prepared for their careers. 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. We have started to see some movement in the other direction. The Physics department now requires an introductory programming course because so many physicists need to know how to write and modify simulation programs that serve as their experiments. One result has been a steady stream of students in our intro C course, which focuses on scientific applications. Another is an ongoing research relationship among a member of the Physics faculty, a member of the CS faculty, and undergraduates from both departments that has produced several papers (with undergrad co-authors) and occasional award recognition. None of this research is possible without physics students being able to program complex molecular system simulations. Scientists are not the only non-CS people who need to program -- or want to. People working in finance and other areas of business program, even if only in the form of complex spreadsheets, which are constraint propagation programs. Even further afield, artists are beginning to use computational media to create art and to explore concepts of form and color in a new way. Saying all this, I can understand how mathematicians who work at a distance from computational applications might think that programming is passe. They have little experience with code themselves, and then they read vague articles in the newspapers about off-shoring and the demise of programming. Even among computer scientists who work with scientists know "surprisingly little about how scientists develop and use software in their research", which is why some of them are conducting sponsored research to to survey scientists on how they use computers. But surely mathematicians are aware computational work on number theory that requires a nearly global network of computers to perform massive calculations, for instance, to find large prime numbers. One might dismiss such work as "merely" applications, not real math, but these applications are testing mathematical theorems about numbers in ways we could only have dreamed of in past times. Math profs at mid-sized universities are not the only ones with the impression that programming is disappearing or less important than it used to be. Mark Guzdial recently wrote that some think programming isn't essential even for computer scientists:
I was at a meeting a couple weeks ago where an anecdote was related that speaks to this concern. A high-ranking NSF official made the argument that programming is not a critical skill for computer scientists. "Google doesn't want smart programmers! They want smart people!" A Google executive was in the audience and responded, "No, we want people who program."
I'm glad that Google knows better what Google needs than this particular high-ranking NSF official, and I realize that said official may only have meant that the smart people Google hires can become good programmers. But I do think that this story indicates the breadth of the misunderstanding people have about the role programming plays in the world today. Perhaps the math profs here who said that "no one programs any more" were speaking only of math graduates from this university. But even that very limited claim is false. I suggested to my friend that they should probably survey their own alumni. I know several of them who program for a living. And some of them came back after graduation to learn how. -----