Where does computer science fit? At the university level I’ve seen it in Business departments/Schools of Business. I’ve seen it in various science schools – Schools of Engineering, schools of Applied Science to name two – or Schools of Mathematics. Often this depends on where computing as a discipline started many years ago. And there is some movement. A few places have a School of Computer Science as well. But as mixed and confusing as that it things are worse in high schools/secondary schools.
Again I have seen CS courses in business departments, math departments, rarely in science departments and also rarely in computer science departments. Where I teach it is in its own computer science department. Why so many places? A couple of reasons.
In some areas computer programming is seen as a vocational subject. Note I said computer programming not computer science. In many career/technical programs calling something a science moves it out of the area of vocational training that these schools or departments see as their mission. Though of course it is hard to teach programming without some of the basic CS science.
In some areas there is special money set aside for vocational programs and that makes having a CS (calling it computer programming) course means more money for the school while having an academic computer science program means not more money but additional costs.
In college prep schools, the few that have CS programs, computer science seems to usually fit into mathematics departments. In many of those schools administrators hires people who can teach math well and computer science as a secondary focus. CS is second class in some of those schools with all the baggage that entails. Even there computer science seldom counts as meeting a mathematics requirement for graduation. Some 17 states and the District of Columbia now allow the counting of CS (generally only the Advanced Placement coures0 to count as either a math or a science requirement.
Lately people have been suggesting that computer programming languages count as meeting a foreign language requirement. Amy Hirotaka at code.org explains why Computer Science is Not a Foreign Language. Although I am tempted at times to show the similarities between learning a natural language and a programming language (learning a different culture for one thing) I think she is right that this is not a good fit.
Is science or math a good fit? Yes and no. Given that we are probably not going to see a computer science requirement for graduation anytime soon (in my life time?) and we want to to really matter for students it probably has to meet some requirement and science and/or math are logical locations. But which one?
Different states have chosen different options with most seeming to side with mathematics. One big problem remains the certification issue. What is the right certification for someone who teaches computer science? Is it different for a math credit or a science credit? Should it be? These are questions that are largely unanswered or in some ways worse – answered ambiguously!
If only it were as easy as people not involved seem to think it is.
Ideally I would like to see real computer science courses (not just AP courses!) being taught by highly qualified computer science teachers (not just repurposed teachers from other disciplines using CS to fill out their workload) that count towards a high school students graduation requirements.
I would like to see universities asking guidance councilors “why did this student applying to our CS program not have any CS in high school?” In fact I would like admissions officers in all universities looking for CS courses on high school transcripts as a positive indicator of who should they accept. A man can dream right?
(BTW CSTA has released a report called Bugs in the System: Computer Science Teacher Certification in the U.S. that addresses many of the issues with CS teacher certification.)