Cleaving Computer Science: A Time for New Degrees
The former Dean of the College of Computing at Georgia Tech, Rich DeMillo, established three schools within the College. I’m not really sure how he came to decide these three groupings. I am finding them useful for understanding the tensions in defining computer science today (perhaps the “malaise” in Beki’s blog post).
- The School of Computer Science (SCS) is focused on the traditional definition of computer science. It looks inward, into improving the computer and how it functions. Systems, networking, programming languages, theory, and compilers go here. Software engineering goes here, though flavors of it could go elsewhere.
- The School of Interactive Computing (IC) looks at the boundary between the computer and everything else. It includes human-computer interaction, learning sciences & technologies, computational journalism, and computing education research (where humans are the “everything else”), and also includes robotics, computational photography, and vision (where “everything else” is literally the world). Intelligent systems and graphics go here, for using humans as the model for intelligence and form, but versios of each could go elsewhere.
- The Division (soon to be School) of Computational Science and Engineering (CSE) focuses on the application of computing for advancing science and engineering. This was the most innovative of the three. Rich once told me that he wanted this School to provide an academic home for an important field that wasn’t finding one elsewhere. Computer science departments often don’t tenure computational science researchers because their work may not necessarily invent new computer science, and science departments don’t tenure scientists just for being code monkeys. This area is too important to leave adrift.
I admit that I’m a man with a hammer. I see these three groupings at the various colleges and universities I visit, as the three competing images for what is computer science. SCS faculty have history on their side — their view of computing is roughly what was defined in the computing curricula reports from 1968 onward. (I do wonder if those early curricular reports may have defined CS for education too soon, before we really knew what would be important as computing evolved.) IC faculty have modern day relevance on their side — much of the exciting new computing work that gets picked up in the press from this group. Here in the College of Computing, these sides tussle over the shared ownership of our MS and PhD degrees in computer science. (We don’t argue so much about the BS in CS because Threads provides enough flexibility to cover a wide range of definitions.) Do graduate students have to take a course in Systems? In Theory? Aren’t these “core” to what is Computer Science? And what is “Computer Science” anyway? Does (or should) the School of “Computer Science” have a particularly strong say in the matter?
In the latest issue of Communications of the ACM, Dennis Groth and Jeffrey Mackie-Mason argue that we need “informatics” degrees as something separate than a computer science degree. When they list informatics academic units, they include my IC School. They define “informatics is a discipline that solves problems through the application of computing or computation, in he context of the domain of the problem.” That’s close enough to my “computing at the boundary with everything else.” They are arguing that we can make greater advances in informatics by splitting those degrees off from computer science.
As we tussle over the name and identity of “Computer Science,” I increasingly value Dennis and Jeffrey’s point. I can see that IC and CS may be different bodies of knowledge. Computer science students ought to know about RISC processors and assembly language. Students in IC must understand and be able to use empirical methods, especially social science methods like interviews and surveys (e.g., how to put them together well, how to avoid bias in creating them and evaluating the results). These methods are necessary to listen to someone else, figure out their problem, and then later, figure out how the technology solves (or at least, impacts) the problem. When I look at IC-related professionals and researchers, I see few that use knowledge of RISC processors and assembly language in their work. The empirical, social science methods don’t fit well into CS. I was on the committee that wrote the ACM/IEEE Computing Curriculum 2008 Update, and in particular, I was in charge of the HCI section. We had to gut much of what SIGCHI felt was absolutely critical for students to know about working with humans (and which I agreed with) because we simply couldn’t cram more into a CS student’s four years. IC and CS have a significant overlap, but there is a lot in each that is not in the intersection.
We tussle over these degrees and names because, in part, we fear creating a new name. We worry that students won’t be interested in a degree from computing that’s not named “computer science.” IC co-owns our BS in Computational Media (about 300 students, ~25% female, placing students at places like Electronic Arts and Pixar) and a PhD in Human-Centered Computing (one of the few PhD programs in a computing school that is over 50% female). Students are willing to take a gamble, and we’ll draw on a different demographic of students.
I’ve not said much here about CSE yet, but that’s because it’s not big enough to tussle yet. Recently, I got to interview students and teachers in interdisciplinary computational science classes. These classes don’t really work for CS (or IC) students. The computer science being used is too simple for them (so they’re bored while the science students come up to speed), but the science is way harder than they can just jump into. For CS students to succeed in CSE classes, they need to take a bunch of science classes to understand how real scientists are using scientific computing. We run into the same problem as squeezing the important parts of HCI into CS — we run out of room. As CSE grows in numbers and importance, we will eventually find that it doesn’t fit into IC or CS, either. By separating the fields, we encourage greater research advances through tighter focus, and we create better, clearer opportunities for student learning by removing the unnecessary and spending more time on the necessary.