What is the definition of Computer Science, and what is the Science within Computer Science?
-
I am pursuing a BS in Computer Science, but I am at an early point of it, and I am pretty sure I will be happy with my choice given that it seems like an academically and career flexible education to pursue. Having said that, there seems to be a variety of definitions about what Computer Science really is in respects to academia, the private-sector, and the actual "Science" in "Computer Science" I would love to have answers(Or shared pondering) as to the breadth of things an education in Computer Science can be applied to, and ultimately the variety of paths those within Computer Science have pursued.
-
Answer:
Computer science is a misnomer - there is actually no "science" in computer science, since computer science is not about observing nature. Rather, parts of computer science are engineering, and parts are mathematics. The more theoretical parts of computer science are purely mathematical. For example, what is a good algorithm for sorting? How do we define the semantics of programming languages? How can we be sure that a cryptographic system is secure? When computer science gets applied, it becomes more like engineering. For example, what is the best way to implement a matrix multiplication algorithm? How should we design a computer language to facilitate writing large programs? How can we design a cryptographic system to protect online banking? In contrast, science is about laws of nature, and more generally about natural phenomena. The phenomena involved in computer science are man-made. Some aspects of computer science can be viewed as experimental in this sense, for example the empirical study of social networks, the empirical study of computer networks, the empirical study of viruses and their spread, and computer education (both teaching computer science and using computers to teach other subjects). Most of these examples are border-line computer science, and are more properly multidisciplinary. The closest one gets to the scientific method in computer science is perhaps the study of networks and other hardware devices, which is mainstream in the subarea known unofficially as "systems". These examples notwithstanding, most of the core of computer science is not science at all. Computer science is just a name - it doesn't need to make sense. As for the scope of computer science, the best definitions is perhaps: that which computer scientists do. Computer science, like every other academic discipline, is a wide area, and it is difficult to chart completely. If you want a sampling of what people consider computer science, you can look at the research areas of your faculty.
user10744 at Computer Science Visit the source
Other answers
Let us start with a quote from one of the fathers of modern Computer Science: “Computer Science is no more about computers than astronomy is about telescopes” - Edsger Wybe DIJKSTRA So in reality if what you are interested in is computers and programming then you are not truly interested in computer science :-) I think Wikipedia has one of the best descriptions: "Computer Science (abbreviated CS or CompSci) is the scientific and practical approach to computation and its applications. It is the systematic study of the feasibility, structure, expression, and mechanization of the methodical processes (or algorithms) that underlie the acquisition, representation, processing, storage, communication of, and access to information, whether such information is encoded in bits and bytes in a computer memory or transcribed engines and protein structures in a human cell. A computer scientist specializes in the theory of computation and the design of computational systems" But in reality as Yuval has stated, most universities/colleges have moved away from the theoretical/pure computer science and computer science is now a mixture of science, mathematics, engineering. Teaching us not only the pure computer science, but also the practical skills to solve those and other problems using modern computers, programming languages, operating systems and software applications.
AquaAlex
It might be worth mentioning that the German term for "Computer Science" is Informatik, which melts Infomation and Mathematik. I think that's a nice and short description of what Computer Science is all about. (the Italian term is informatica, and I'm sure there are quite a few more languages that follow the same line).
john_leo
You might be interested in http://meta.cs.stackexchange.com/q/231/69 In particular, I stand by my answer, reproduced here: 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: It is science, that is: It is either (1) formal or (2) empirical: employs deductive reasoning from assumed truths employs inductive reasoning from observed phenomena It is either (1) pure or (2) applied seeks to advance the state of scientific understanding seeks to apply scientific understanding to harness natural forces It studies computation, that is: It studies either (1) transformations or (2) information processes which map information from one form to another entities subject to transformations
Patrick87
I want to add a perspective regarding the word "science" that is too long for a comment. People say that computer science is not a science in the traditional way since (simplifying here) we do either mathematics or engineering. That is not quite true. We can apply the scientific method -- arguably the corner stone of science -- that is systematic observation, measurement, and experiment, and the formulation, testing, and modification of hypotheses. (Oxford English Dictionary via https://en.wikipedia.org/wiki/Scientific_method) In fact, some of the earliest work in algorithms adheres to this principle. Some of the method has been "lost" for several reasons but we still can employ it. The basic process¹ would look like this: Note a problem that we want to solve with a computer. Come up with an algorithm. Analyse (a mathematical model of) the algorithm. Based on your analysis, predict the algorithm's (expected) runtime (on a given set of inputs and a given machine). Confirm or falsify your prediction by experiments. More generally speaking, we can evaluate how useful algorithmic models and analysis techniques are. And here we arrive at our problem: https://www.youtube.com/watch?v=-hz95qqOdx0 in this regard. Since most computer scientists not much else, we can't do much science, effectively and sadly. Never mind that most curricula don't seem to include any (rigorous) statistics education, even in more empirically oriented subfields. Don't take my word for it, by the way. Robert Sedgewick and Philippe Flajolet have been working on http://www.cs.princeton.edu/~rs/talks/ScienceCS10.pdf, mostly by developing the formal framework of http://en.wikipedia.org/wiki/Analytic_combinatorics that does allow for testable hypotheses. You can find videos and MOOCs by Sedgewick that will tell you as much. All hope is not lost. This is, of course, only formulated w.r.t. algorithmics. You can also study whether graph models fit reality (done e.g. in work around social networks, albeit often more empirically than scientifically) or network throughput turns out as predicted, or any number of other things.
Raphael
this is likely an old question long debated going back to the very origins of computer science. a natural way to study/answer this is via published literature on the subj. suspect there are many good refs on this buried in the literature which havent been cited yet. also, the answers/pov on this have likely changed over time aka http://en.wikipedia.org/wiki/Paradigm_shift that have been somewhat common in the field, possibly more so than other scientific fields. another angle to study this is how the subject has been taught in academia and how it has fit into the existing departmental structures which has also changed over time. here are some nice papers/essays by Denning, authority in the field, that address this question directly and are a good place to start for more refs. both published in the journal of the main academic society of the field, http://en.wikipedia.org/wiki/Communications_of_the_ACM. http://cs.gmu.edu/cne/pjd/PUBS/CACMcols/cacmJul07.pdf Denning, 2007 Information processes and computation continue to be found abundantly in the deep structures of many fields. Computing is not—in fact, never was—a science only of the artificial. http://cs.gmu.edu/cne/pjd/PUBS/CACMcols/cacmApr05.pdf Denning, 2005 Computer science meets every criterion for being a science, but it has a self-inflicted credibility problem.
vzn
working from the definition of http://dictionary.reference.com/browse/science a branch of knowledge or study dealing with a body of facts or truths systematically arranged and showing the operation of general laws: the mathematical sciences. systematic knowledge of the physical or material world gained through observation and experimentation. any of the branches of natural or physical science. systematized knowledge in general. knowledge, as of facts or principles; knowledge gained by systematic study. computer science is closely connected to mathematics and involves significant research (eg study). computer science is broad & closely connected to http://cstheory.stackexchange.com/questions/2074/physics-results-in-tcs in many ways. eg physics/thermodynamics of computation, http://en.wikipedia.org/wiki/Quantum_computer, http://cstheory.stackexchange.com/questions/16244/should-we-consider-mathsfp-neq-mathsfnp-a-law-of-nature, http://cstheory.stackexchange.com/questions/2676/examples-of-hardness-phase-transitions etc it is systematized knowledge. it undergoes systematic study ie research. the terminology "computer science" emphasizes the field is not merely about application of known principles eg as in engineering. there is quite a bit of http://cstheory.stackexchange.com/questions/174/major-unsolved-problems-in-theoretical-computer-science around computer science, many basic questions in the field are http://cstheory.stackexchange.com/questions/1015/open-problems-on-the-frontiers-of-tcs. the number of researchers worldwide is difficult to estimate but numbers beyond the thousands or tens of thousands. however, note that the more scientific aspects of computer science are not really taught/exposed so much at the undergraduate level, maybe leading to some perplexity. there also seem not to be very many high-profile embodiments/celebrations/proponents/advocates of it as a science eg in contrast to other fields such as the LHC & discovery of the Higgs boson etc [despite that CS had a major role in its discovery!], or a famous Carl Sagan or Hawking-like populizer figure. however eg see http://cstheory.stackexchange.com/questions/18968/what-are-the-popular-science-books-that-inspire-tcs
vzn
Related Q & A:
- What kind of jobs can i apply for with a associate degree in computer science?Best solution by Yahoo! Answers
- What university has the best computer science/ technology program?Best solution by Quora
- What are good colleges for computer science?Best solution by Stack Overflow
- What can I do to get a good job with my Bachelors of Science in Computer Science?Best solution by collegexpress.com
- What is the difference between computer science and computer programming?Best solution by wiki.answers.com
Just Added Q & A:
- How many active mobile subscribers are there in China?Best solution by Quora
- How to find the right vacation?Best solution by bookit.com
- How To Make Your Own Primer?Best solution by thekrazycouponlady.com
- How do you get the domain & range?Best solution by ChaCha
- How do you open pop up blockers?Best solution by Yahoo! Answers
For every problem there is a solution! Proved by Solucija.
-
Got an issue and looking for advice?
-
Ask Solucija to search every corner of the Web for help.
-
Get workable solutions and helpful tips in a moment.
Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.