Computer Science is dead (or should be).
I love reading Mark Guzdial’s blog. He so often talks about things I think are important, AND (perhaps not surprisingly) things about which I have strong opinions. Here’s another:
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.
This is the sort of question (What do people need to know about CS?) I’ve been pondering for some years but I’m not convinced that many CS profs really are motivated to teach CS to “outsiders”. Many consider courses taught to non-majors to be a waste of their ‘talents’, and it is, I think part of the reason that CS programs are having problems. The “service” courses are often taught by un-tenured, temporary faculty who get re-hired as long as their student ratings remain high enough. High ratings are achieved largely by keeping students happy, NOT by teaching them things.
While it is true that the CSEd conferences draw a fair number of people, the number of CS profs who NEVER go to anything like this is far higher. I also wonder how many people at CS conferences are trying to earn tenure? I realize this may sound cynical but I think if we want to talk about the CS faculty who really care about what and how they are teaching, we need to discount those who are doing things in the area primarily to pad their CVs – and this is not a tiny number, trust me. There are plenty who inexplicably loose interest in this sort of scholarship or become too busy once they have tenure.
Anyhow, just as math profs should NOT be allowed to teach math to non-majors (or decide on curriculum) CS profs should NOT be allowed to teach CS to non majors and they should ESPECIALLY not be allowed to determine the curriculum of courses designed for people who do not intend to major in CS. There are, of course exceptions, but like Mark says, CS professors are not great at teaching CS, so what makes us think they’d be any better at teaching people they care nothing about?
There is an interdisciplinary CS-Art graduate program at a university I know that is an excellent case in point. The CS part of this “team” insists on making fine art take regular programming classes. They teach the same old shit they have always taught in the same old ways they have always taught them. A program like this could be so much more, but rather than create something interdisciplinary, it is treated as a territorial war. I can think of LOTS of important things for students in a program like this to learn and I can think of LOTS of interesting ways to teach that, but the CS department seems to feel the need to put those pesky art students in their place. The art students learn that CS is boring, and that CS knows nothing about art.
Another example. The math department teaches the required discrete math course that is part of a CS degree at the U of Calgary. It is reviled by students, almost universally. Some members of the CS department as well as many in the math department see this course as a test of fitness for CS students. It is known as a weeder course. But what does it select for? I know senior math majors who could NOT pass this course. I know highly talented programming students who could NOT pass this course. When it was first created in the 80s, several members of the CS department (people who knew a lot about programming) built a curriculum, which the math department ignored.
I was at a curriculum meeting once where both math and CS faculty were talking about this course. The mathematicians were complaining about how hard it was to find a suitable text. I suggested that they should maybe create their OWN notes and exercises, seeing as how they’ve been teaching this course for years. They looked at me like I was from Mars and said, “You CAN’T teach a course without a textbook!”
There’s the problem. They didn’t view the course as a body of material important for future computer scientists to understand; they viewed it as a course to teach. The significance of what they were doing and how it fit into the larger picture that is the education of computer scientists was completely lost on them.
The same is true when you let a CS prof decide what a biologist, or physicist, or analyst, or educational technologist (…) needs to know. A CS prof has, by and large, NO CLUE what someone needs to know about CS in order to use information technology effectively.
Just like education profs often pay no attention to pedagogical content knowledge because they’ve never actually taught a subject other than education, most CS profs have never actually DONE any CS, only research. They don’t actually know how to use their discipline. They know ABOUT (maybe), but not HOW TO.