This meta question is intended to be a place to direct people who ask what is Computer Science and answer misconceptions about it.
What is Computer Science?
This meta question is intended to be a place to direct people who ask what is Computer Science and answer misconceptions about it. What is Computer Science? |
|||||||||||
|
Misquoting Justice Potter Stewart:
|
||||
|
It seems to be the case that our biggest problem is separating CS from related disciplines to some extent. I think this can be best achieved by analogy to fields people have more intuition for. I have attempted to create such a table:
Of course, such a table would have to be decorated with appropriated disclaimers: "This is no attempt at defining either notion rigorously; it is only a rough analogy to relate to general knowledge. The same person can perform more than one role. Some tasks may be associated with more than one role." and so on. What do you think, can an analogy clarify what we have trouble defining clearly? Do you have other/better analogies? |
||||
Computer Science is the science that studies computation and related issues. It has strong connections with other disciplines, particularly with: mathematics, computer and electronic engineering. There are various lists of topics which are considered part of computer science: which among others include:
|
||||
|
Computer Science is the science of computation; that much seems clear. Less clear is how to define science and computation in a useful and meaningful way. Generally, we might divide science according to two classifications: formal versus empirical, and pure versus applied. Whereas formal science (such as mathematics and much of computer science) relies on deductive reasoning from assumed truths, empirical scienc (such as physics and chemistry) relies on inductive reasoning from observed phenomena. Whereas the goal of pure science is to advance the state of scientific understanding, the goal of applied science is to use such understanding to harness the forces of Nature (in the broadest possible sense of the word) to achieve other goals. We might define computation as a transformation applied to a piece of information. In the broadest possible sense, computation is, then, any process which causes a change to occur in the universe. There is no need to provide any more detailed definition than this. Computer Science, then, consists of that part of the human endeavor which satisfies the following criteria:
Topics which we might reasonably exclude from Computer Science include that part of the human endeavor which satisfies the following criteria:
Comments, edits, and suggestions are welcome. I realize that it is practically impossible to give a universally accepted definition of either science or computation, and as such, I have tried to remain at a high level, possibly to a fault. Also, some of these items must be interpreted broadly (e.g., "scientific understanding" is intended to include individual understanding, so that it doesn't require research-level academic questions), while it might be preferable to interpret some of the items more narrowly (for instance, many elementary physics questions can be construed as computation, according to my definition; in a very precise sense, aren't they computation, after all?). |
|||||||||||||||||||||||||||||||||||||||||||
|