Proposal: Computer Science (Non-Programming)
I don't know how Computer Science ended up under Professional, but it clearly belongs to the Science category.
Proposal: Computer Science (Non-Programming)
I don't know how Computer Science ended up under Professional, but it clearly belongs to the Science category.
I agree with Gilles.
From Wikipedia:
Rather than continue pulling quotes from Wikipedia, let me summarize from my own experience in CS. (Granted that was 10 years ago...)
+-------------++-------------+-------------+ | Theory || Computer | Physics | | (science) || Science | | +-------------++-------------+----------- -+ | Practice || Computer | Electrical | | || Programming | Engineering | +-------------++-------------+-------------+ | Design || Software | Electronic | | || Design | Engineering | +-------------++-------------+-------------+ | Development || Software | | | || Development | | | |+-------------+-------------+ | || Computer Engineering | | || | +-------------++---------------------------+
I'm sure I got the hardware side of things wrong, if someone more familiar with the hardware side wants to comment, I'll edit the table.
The table can be thought to be arranged roughly from Theoretical to Applied. The term Professional stems from Profession and is tied to the application of a discipline, hence further down the table.
Computer Science actually used to be a field in mathematics. In the stereotypical Math -> Physics -> Engineering spectrum, CS is closer to Math (theory, proofs, developing tools) than Engineering (application, using the tools to design/construct/accomplish things in the real world). CS is more about theorems, proofs, and designing programming languages than it is about writing software.
Some would classify computer science as engineering or technology. In academia, it is generally taught out of the engineering college. In contrast, math and sciences are taught out of the college of liberal arts and sciences. Not sure who owns electricity, but I think unless we look at physics, electrical engineering may be doing work in both applications and theory.
In a first day lecture for an Applied Cryptography class, one of my Computer Science professors started a relevant philosophical discussion. He observed that:
Sciences have names like:
Some areas of study called might not be:
Naturally, the subject of his class started with the word "applied", but there were still proofs in class and on the exams.
Some like D.L. Parnas, who did foundational work that led to object oriented methodology, said that the software part of computer science is actually engineering. Others claim computer science as a science, qualifying it as "mathematical science" or asserting that even though it studies man-made objects, it is still science. A reference and commentary to other references from computer science luminaries like Dijkstra and others by Peter Denning can be found in Is Computer Science Science? Denning's conclusion was:
Computer science meets every criterion for being a science, but it has a self-inflicted credibility problem.
Denning asserts that experiments were not previously a rigorous part of validating findings about computer science, but seven years ago he said things were and would continue to improve. I know the professor I mentioned earlier was methodical and published proofs. He created and analyzed a distributed operating systems to validate his research for articles published in IEEE Computer. He certainly seemed credible in expressing a concern about our community's approach to things.