Talk:Computer science

From formulasearchengine
Jump to navigation Jump to search

Template:Outline of knowledge coverage Template:Vital article Template:WikiProjectBannerShell Template:Todo

Comments from 3 pioneers

Given the above discssions on "what is computer science" here are some related comments:

...the harm was done: the topic became known as computer science ---which, actually, is like referring to surgery as knife science ---and it was firmly implanted in people's minds that computing science is about machines and their peripheral equipment. - Edsgar Dijkstra

Peter Naur dislikes the very term computer science and suggest it be called dataology.

NevilleDNZ 20:00, 24 October 2006 (UTC)

True, it isn't really a science, more like an engineering discipline. However its worth noting that Dijkstra's comment doesn't really apply any more since most computer science courses have a heavy emphasis on software engineering. Personally I like the term "software engineering" since that's a pretty accurate description of the real-life discipline. Gwernol 20:29, 24 October 2006 (UTC)
And yet good engineering is informed by science. So there should be some kind of computer/computing/software science there somewhere in the background of "software engineering". Otherwise it isn't engineering, it's tinkering. --Allan McInnes (talk) 03:33, 2 December 2006 (UTC)
There is a science behind software engineering, its math(s). Gwernol 14:38, 19 April 2007 (UTC)
You mean like type theory, the lambda calculus, or the pi calculus? All of those, although mathematical in nature, are far more active areas of research in CS. Some originated in CS. As a discipline, CS is motivated to examine different problems than mathematics. Of course, theoretical CS does use a lot of mathematics. But then so does theoretical physics.
Regardless of what most CS courses teach (which is largely driven by market demands, and the fact that corporations hire CS graduates to be software engineers) there is a difference in the focus and goals of CS (as a discipline, rather than a degree program) and SE. There is of course substantial overlap in the areas of knowledge. But they remain different disciplines. David Parnas has done a good job of articulating the differences. I'd also highly recommend Walter Vincenti's excellent book "What Engineers Know and How They Know It", which does a good job of explaining the essential differences between a science and an engineering discipline. --Allan McInnes (talk) 02:37, 20 April 2007 (UTC)
Saying that "Dijkstra's comment doesn't really apply any more since most computer science courses have a heavy emphasis on software engineering" is pretty much giving in to the fact that the industry won over the Computer Science department, and completely ignoring the fact that Computer Science as such still exists, just not in the major "courses". Computer Science as a discipline still contains a lot of science to be done, and we shouldn't blame the science for the sorry state of affairs of most major courses. ~ Gretgor -- (talk) 15:42, 7 June 2011 (UTC)
Maurice Wilkes is reputed to have disliked the term computer science and said "I have been a scientist and I have been an engineer -- I know the difference" Neil Dodgson 18:57, 23 February 2007 (UTC)
It just happens to be that Maurice Wilkes never worked with the more scientific side of Computer Science. He always worked too close to the machine, and too far away from the theoretical foundations of computational processes. Thus, he assumed his experience was all there was for Computer Science, disregarding the theoretical fields such as Computational Complexity, which (I believe nobody will disagree) is inherently mathematical. There's no denying that the fundamental works Maurice Wilkes created for automatic computing were of engineering nature, but Computer Science as such resides in a different spectrum, not the one Wilkes worked with. ~ Gretgor -- (talk) 15:42, 7 June 2011 (UTC)

I disagree with the idea that computer science isn't a science. In my department we do exactly the same kind of science as you find in biology, sociology, ecology, psychology, and physics. You can argue that maths and engineering aren't science, but they involve developing and evaluating models (of construction, for example) so, in every way that matters, computer science is a science. Having said that, I like "Informatics" better. Neuralwarp (talk) 10:58, 28 April 2008 (UTC)

One thing that gets left out from the view of computer science in regards to mathematics is the ability to perform those computations. Computer science does not ignore that ability; it tries to explain it with how it is possible in this physical world. A person that performs math is very much a computer, one that computes. One can see nerves and fingers as input and output devices and DNA as subroutines. People tend not to take that perspective because they remove the human body and mind from the equation, so to say. Anotherwords, they say that a desktop computer has nothing to do with the mathematics of computer science, yet that is just one of many viewpoints, architecturally. — Dzonatas 15:16, 28 April 2008 (UTC)

I think this topic should be mentioned in this article

Computational geometry - unsigned

Computational geometry should be listed under either Algorithms or Computer Graphics. Since Algorithms is usually understood to contain algorithms for the core, classic problems of CS, and not all algorithms in all fields of CS, my choice would be Computer Graphics.

Palaeovia 17:07, 23 April 2007 (UTC)

I really think a strong statement needs to be made of the division between Computer Science and Programming. They have almost nothing to do with each other.

Programming a computer is the process of enumarating exacting steps for the computer to perform, to solve a specific problem or a specific set of problems. Computer Science studies things like the complexity and computibility of problems and classes of problems.

Compare to Math or Physics vs Engineering. While it is quite helpful for the engineer to be familiar with the basics of Math and Physics, the actual work of engineering tends to be driven more by practical specific guidelines... The engineer does not analyze the physical properties of steel to determine how much stress it can withstand; the known value is obtained from prior art. When working on the "cutting edge", some testing of a new alloy's properties will be done, but those will likely be the pragmatic real world testing, such as building a prototype and seeing when it breaks, and then staying a safe margin below that point.

Likewise, while knowing Computer Science is helpful to the programmer, it's not what will be used to solve the problem assigned. It is so rare that an actual uncomputable problem would be assigned, that it is never considered if the problem can be solved, except in frustration if having difficulty in finding a solution (and generally the problem is a failure of imagination, or of finding many solutions which are not practical because of the time they take to process -- not really one of computability).

Normally, one looks to existing solutions (programs) to try to borrow as much of the existing solutions as possible. When multiple possible solutions are considered, then a basic analysis of the complexity of each can help the programmer to select the one which is likely to have better performance. But, similiar to engineering, a small scale version of each method may be used to prototype each method instead, to get specific "practical" results for comparison. When the complexity analysis indicates a clear winner, then knowing how to do it can save time and effort. But since complexity analysis may find that several of the solutions have the same general complexity, the programmer may still have to choose from some of the solutions, and so may still have to prototype them, or rely on experience and intuition.

Once the rough solution method is selected, writing the detailed code and then debugging it is tied to the very specific details of the problem involved, and really unrelated to any of the mathematics or science.

Cfteague2 17:39, 24 October 2007 (UTC)

I wholeheartedly agree! (talk) 07:49, 2 February 2011 (UTC)

Is "Soft Computing" a major branch of Computer Science?

According to Soft Computing (aka Computational Intelligence), and the various links it contains:

Soft computing differs from conventional (hard) computing in that, unlike hard computing, it is tolerant of imprecision, uncertainty, partial truth, and approximation. In effect, the role model for soft computing is the human mind. The guiding principle of soft computing is: Exploit the tolerance for imprecision, uncertainty, partial truth, and approximation to achieve tractability, robustness and low solution cost.
The principal constituents of Soft Computing (SC) are Fuzzy Logic (FL), Neural Computing (NC), Evolutionary Computation (EC) Machine Learning (ML) and Probabilistic Reasoning (PR), with the latter subsuming belief networks, chaos theory and parts of learning theory.(Y.Jin's Soft Computing portal)
Enclosed in the name computational intelligence is a `message', according to scientific folklore it is chosen to indicate the link to and the difference with artificial intelligence. While some techniques within computational intelligence are often counted as artificial intelligence techniques (e.g. genetic algorithms, or neural networks) there is a clear difference between these techniques and traditional, logic based artificial intelligence techniques. In general, typical artificial intelligence techniques are top-to-bottom where, i.e., the structure of models, solutions, etc. is imposed from above. Computational intelligence techniques are generally bottom-up, where order and structure emerges from an unstructured beginning. (Vrije Universiteit, Amsterdam)

Soft Computing, aka Computational Intelligence, essentially consists of a collection of approaches, such as fuzzy computing, neural computing, and genetic algorithms, whose strength lies in modelling the brain, the mind, or genetic evolution, and whose main domain of application is Artificial Intelligence (AI). It has not been widely accepted as a seperate field from AI, nor should it be. It is at most a subfield of Artificial Intelligence. In my experience, it is a very obscure term, even within AI. I therefore suggest that it be listed as a subfield of AI, and not as a branch of CS.

Palaeovia 16:54, 23 April 2007 (UTC)

I am proposing to delete Soft Computing from "Fields of computer science", considering its status as a collection of techniques within AI, and its low degree of acceptance as a name for that collection. Please register any protest. Palaeovia 00:19, 30 April 2007 (UTC)
I've deleted "Soft computing" from "Fields of computer science". --Palaeoviatalk 12:54, 16 May 2007 (UTC)

More visual Fields of section

How about using a more visual categorisation system in the Fields of computer science section, this might make the article more appealing to many people. I have made some examples below of how this could look (the Fields of mathematics section from the Mathematics article was used as inspiration). uackor 11:41, 5 May 2007 (UTC)

Mathematical foundations

Elliptic curve simple.png 6n-graf.svg int x Commutative diagram for morphism.svg SimplexRangeSearching.png
Mathematical logic Number theory Graph theory Type Theory Category Theory Computational geometry

Theory of computation

Afd exemple.png Wang tiles.png P = NP ? Blochsphere.svg
Automata theory Computability theory Computational complexity theory Quantum computing theory

Algorithms and data structures

File:Kruskal Algorithm 0.svg Singly linked list.png
Analysis of algorithms Algorithms Data structures

Programming languages and compilers

Ideal compiler.png Python add5 syntax.svg
Compilers Programming languages

Scientific computing

1u04-argonaute.png User-FastFission-brain.gif Naphthalene-3D-balls.png Neuron-no labels.png X-43A (Hyper - X) Mach 7 computational fluid dynamic (CFD).jpg Wind-particle.png
Bioinformatics Cognitive Science Computational chemistry Computational neuroscience Computational physics Numerical algorithms Symbolic mathematics
I am in favor of your proposal, which has generally excellent illustrations. Palaeovia 16:40, 5 May 2007 (UTC)
  • If you do, do it at the location of this template.

{{Fields of Computer Science}}

That way we can perhaps go a little more in depth into the fields and maybe make a more comprehensive and compact list, but I definitely love the pictures.--GlasGhost (talk) 02:42, 30 August 2008 (UTC)

Category:Computer Science

I recently created Category:Computer Science when I was suprised it did not exist. Is there any larger set that Category:Computer Science should be a subset of? Mathiastck 10:09, 24 May 2007 (UTC)

It's called Template:C, by convention categories are sentence cased. -- Prove It (talk) 12:44, 24 May 2007 (UTC)
There were several articles in the Computer Science cat. I changed them to Computer science cat and made cat Computer Science a redirect. --agr 01:05, 25 May 2007 (UTC)

Academic Computer Science versus The Real World

Professors at university have decomposed Computer Science into various mathematical topics. It is not like people who get paid to write programs, design databases, and architect web sites have need of mathematics, as practiced by mathematicians, in order to do their work. The big problem today, for people who are employed to put computers to profitable use, is keeping up with the fad du jour. You dare not try to enroll at university to learn about the fad du jour. FDJ is so laden with the stench of commerce that one is directed elsewhere -- an elsewhere where standards of the university are not upheld. To me, the term Computer Science refers to knowledge about the hows and whys of computing from the perspective of mathematicians, who would never stoop to write commercial software. Perhaps an overly broad indictment. Surely some good is accomplished teaching undergraduates about the FOR loop. But, there it is.-- 00:39, 9 September 2007 (UTC)

First of all, this is not a forum topic for discussion on Computer Science, it's about the Wikipedia article. Second, the so-called "fad du jour" of any competent high-technology practice needs a strong science behind it, and that science will need a lot of mathematics and formal systems to be done. People who write programs for companies usually apply principles (such as those of formal programming languages and algorithms) that were formulated by a computer scientist, someone who was interested in the mathematics of the thing, even if they don't notice it. For instance, the handy apps you use to find the shortest path from one point to another in your town make usage of refined shortest path algorithms, and the formulation and subsequent proof of said algorithms is made mathematically (with the possible addition of heuristics), even if the people who apply them to make the software systems don't notice. I know the above comment is four years old, but it disturbs me. If you want a whole academic discipline whose obligation is to exclusively tell you how to be successful in the "fad du jour", you'd better look elsewhere, because company business is not what intellectual disciplines are about. -- (talk) 02:49, 25 June 2011 (UTC)

ACM Classification

Why does the article mention the ACM classification only to ignore it? If you are ignoring a reliable source, isn't that original research? What especially bothers me is that sexy topics like "artificial life" get moved up in the hierarchy. This is an encyclopedia, not a Discovery (magazine) article. Just because something is interesting doesn't mean it's important. ---- CharlesGillingham 17:47, 12 October 2007 (UTC)

differences regarding Ada

I'm not quite sure Ada participated on the development or fabrication of the difference engine. Instead, she corresponded with Babbage regarding his second, larger invention, the analytical engine... —Preceding unsigned comment added by Nwerneck (talkcontribs) 16:10, 4 November 2007 (UTC)

Removing "Data structures" from topic list

IMHO, Research and study on "Data structures" is not a distinct field from Algorithms. Additionally, the article on Data structures does not look as an introduction to a field of Computer Science, it just describes what a data structure is (confirming my idea).

IMHO, even Algorithms and Analysis of Algorithms should be replaced by a single item, but I've not performed the operation, waiting for more input.

So I've removed Data structures from the listing, in this diff: [1] --Blaisorblade (talk) 16:12, 16 June 2008 (UTC)

Relevance of the sociology of the Internet

I wonder if Sociology of the Internet article should be categorized under computer sciences? --Piotr Konieczny aka Prokonsul Piotrus| talk 17:49, 8 July 2008 (UTC)

Where does security fit in?

I've been working on pages related to security, such as Intrusion detection, Intrusion detection systems, Misuse Detection, and Anomaly detection, and have been putting these into the Computer science category. However, someone has complained that this category is too broad and has suggested Data mining and Data security as categories. I'm not sure that I agree with his suggestion. I have looked at the fields of Computer science on this page and security seems to fit all of them and none of them. For example, security involves math, theory, algorithms, data structures, programming languages, compilers, and on down the list. Security professionals and researchers have to know something about all of these areas. However, security is not limited to math, theory, algorithms, etc. If I were to give a name to the field, I would probably call it Information security instead of Data security. Either that, or I would just keep calling it Computer science because security involves all of Computer science. I was wondering if anyone else had an opinion on this. --Clangin (talk) 22:53, 13 July 2008 (UTC)

Fields of computer science

Since someone converted our existing "fields of computer science" section into a navbox, I've taken this opportunity to put the more visual "fields" section suggested above by Quackor into the article. Following the style of the Mathematics article, I've added some introductory text to the section, but we could still use some more explanatory text in each subsection (as well as the addition of some more subsections to cover the areas not yet mentioned). --Allan McInnes (talk) 23:04, 31 August 2008 (UTC)

I should probably note here that the present nomenclature of the fields/areas follows the CSAB description cited in the article. An alternative would be to use the Computing Curricula 2001 topic breakdown, which has the advantage of providing much more detail (see page 177 of the CC2001 report). The broad areas identified by both are roughly the same, although there are some slight differences in the nomenclature and in how things might get grouped. --Allan McInnes (talk) 23:17, 31 August 2008 (UTC)

Lead sentence

An anon user keeps removing the word "theoretical" from the lead sentence. While I'm not particularly wed to that word myself, the lead took a looooong time to hash out (Don't believe me? Look back through the archives), and it'd be better to propose any changes to the lead here first so that they can be discussed by any interested parties. Normally I wouldn't worry so much about a single word, but...well...take a look through archives yourself.

As an aside, if you make an edit with the comment "revert, see talk page", it's helpful to actually say something on the talk page as well.

--Allan McInnes (talk) 05:45, 24 December 2008 (UTC)

It's not just theoretical though. Its concepts of the storage of information have been proven. While it does encomass the theoretical field, it is not bound to it. (talk) 19:15, 24 December 2008 (UTC)
Yes. That is why the lead sentence also includes the phrase "...and their implementation and application in computer systems". --Allan McInnes (talk) 10:53, 25 December 2008 (UTC)
It should just be left as is. The other way implies its only theoretical, even if you add that fragment at the end. I vote we remove 'theoretical.' (talk) 02:43, 26 December 2008 (UTC)
Leaving it "as is" would mean leaving the word "theoretical" in place, since that was the consensus version of the lead (which, as I've pointed out several times, took a long time to get to). I encourage you to look back through the archives of this talk page (in particular Archive 5) to see how we ended up with the current definition. I'd also ask you to please not remove the word "theoretical" from the lead sentence until other editors have had a chance to comment here. Thanks! --Allan McInnes (talk) 08:43, 26 December 2008 (UTC)
I think misinterprets the meaning of the current lead. If we add some extra parentheses for clarity it would read: " the study of (the theoretical foundations of information and computation) and (their implementation and application in computer systems)." So it would already include both theory and practice. Cheers, —Ruud 11:43, 26 December 2008 (UTC)
I would like it to be more obvious that it doesn't just study the theoretical foundations information, but their actual foundation, and not just in computers! —Preceding unsigned comment added by (talk) 07:29, 30 December 2008 (UTC)
I don't think I fully understand you, what is the difference between theoretical and actual foundations? —Ruud 22:05, 31 December 2008 (UTC)
There isn't one -- thus, remove theoretical. —Preceding unsigned comment added by (talk) 23:57, 31 December 2008 (UTC)
If, in your opinion, there is no difference between "theoretical" and "actual" foundations, then I'm afraid I can't see why you are insisting on removing the word "theoretical" from the lead. Given what you've said above, the phrases "the study of the foundations of information and computation" and "the study of the theoretical foundations of information and computation" mean the same thing. If you have looked back through the archives of previous debate over the lead, as I previously encouraged you to do, you will have seen that the word "theoretical" was included because several editors felt that it was important to make it clear that computer science includes theory as well as practice. Since inclusion of the word "theoretical" both satisfies those other editors and (based on your comments above) makes no difference to the meaning of the sentence, why remove it? --Allan McInnes (talk) 09:43, 1 January 2009 (UTC)
I want it clearer that it includes theoretical AND practical... how about this? (talk) 10:07, 1 January 2009 (UTC)
I fail to see how removing the word "theoretical" makes it clearer that computer science includes a theoretical component. As Ruud pointed out above, the existing sentence explicitly mentions both the theoretical and practical components of computer science (indeed, it was specifically constructed to do so). What about it (aside from the presence of the word "theoretical") are you not happy with? --Allan McInnes (talk) 11:03, 1 January 2009 (UTC)
Also, can you please stop modifying the article before we've managed to reach some kind of consensus here. If you have some alternative version of the lead sentence, it'd be helpful for you propose it here on the talk page first. Thanks. --Allan McInnes (talk) 11:03, 1 January 2009 (UTC)

Dear anonymous editor, as I've mentioned several times now, the current lead sentence was arrived at through a rather long process of consensus-building among a number of editors. Please understand that this makes us hesitant to alter the lead sentence without careful consideration. I think that Ruud and I have made it clear that simple deletion of the word "theoretical" is not going to fly, given the arguments you have advanced so far. Nor do I consider a parenthetical phrase, as you inserted into the article earlier, to be good style within a lead sentence. If you have other suggestions for how we might address your objections to the current lead sentence, I'd be happy to discuss them here. --Allan McInnes (talk) 11:53, 1 January 2009 (UTC)

I want the word theoretical removed. However you'd like to do this is fine. —Preceding unsigned comment added by (talk) 20:10, 2 January 2009 (UTC)
As I've already stated, I don't see removing the word "theoretical" as being acceptable. It was specifically included in the lead, for reasons that are made clear in the archived discussions about the lead sentence. Would you care to suggest some other options for revising the lead sentence? --Allan McInnes (talk) 04:15, 3 January 2009 (UTC)
I've proposed two suggestions, both denied by you. Please try one yourself, or allow my edits through. (talk) 07:23, 3 January 2009 (UTC)
Well, it's difficult to know what to suggest, since your stated desire is simply to remove the word "theoretical". Assuming that you're willing to move beyond that towards something that's more of a compromise, let's start with the current lead:
Computer science (or computing science) is the study of the theoretical foundations of information and computation and their implementation and application in computer systems.
I suppose there's a case to be made that the sentence isn't sufficiently clear, since you are apparently able to read it in a way that implies only the theoretical aspect of CS. Would the following be any more acceptable?
Computer science (or computing science) is the study of the theoretical foundations of information and computation, and of practical techniques for their implementation and application in computer systems.
Ruud, do you have any comments? --Allan McInnes (talk) 08:18, 3 January 2009 (UTC)
I like your second sentence. Although I also somewhat agree that talking about "theoretical foundations" and "practical techniques" would be like talking about "round circles". —Ruud 17:54, 3 January 2009 (UTC)
Also, I'd like to again reiterate my request for you to not modify the lead sentence until we've reached an agreement here on the talk page. What you are currently doing is a form of edit warring, which can eventually lead to the imposition of editing bans. --Allan McInnes (talk) 08:18, 3 January 2009 (UTC)
You are doing the same thing, are you not editing too? That point aside, you've yet to come up with any changes, while I have proposed some. Please show some iniative of your own. After all, this isn't a 1-person encyclopedia. :P (talk) 04:10, 4 January 2009 (UTC)
I have previously (as my edit comments have stated) reverted the article to the last consensus lead sentence in response to your continual attempts to modify the lead despite my repeated requests that you not do so until we'd reached some kind of agreement here on the talk page. Furthermore, had you bothered to look at the recent edit history of the article you'd find that I've even stopped making those reversions, because I have no desire to partake in a protracted edit war.
As for your other point, I have so far proposed two courses of action:
  1. Leave the lead sentence as is (I understand that you object to this course action, but then I object to your removal of the word "theoretical")
  2. Modify the sentence as proposed above to provide greater emphasis on the practical aspects of computer science (this proposal was made here on the talk page, rather than in the article itself, since that's usually a better place to hammer out issues like this)
I'd appreciate it if you could respond to the proposal I've made above, instead of continuing to modify the article before we've reached a consensus. --Allan McInnes (talk) 05:05, 4 January 2009 (UTC)
I have no objection to point #2, I would just like some help coming up with it from you. You've denied all my suggestions, so please try it yourself. (talk) 05:31, 4 January 2009 (UTC)
I'm sorry, perhaps you missed it. I have already (08:18, 3 January 2009 (UTC)) proposed a new lead sentence that attempts to place greater emphasis on the practical aspects of CS. You can find my proposal by looking a little higher up the talk page (just above this subthread). Ruud has already given it his ok. We are waiting to hear your take on it. --Allan McInnes (talk) 10:37, 4 January 2009 (UTC)
If you absolutely can't stand its current structure, I suppose option #2 would be better. (talk) 17:22, 4 January 2009 (UTC)
Thank you. I will modify the lead accordingly. --Allan McInnes (talk) 21:07, 4 January 2009 (UTC)
Thanks. (talk) 22:51, 4 January 2009 (UTC)

I believe that the words "and teaching" should be removed from the lead sentence, although obviously computer science is an academic subject I think that the lead sentence should concentrate on the actual objective/meaning of computer science itself. I believe that the taught aspect of computer science is not its primary meaning, rather more the study of, and hence the taught aspect should not be mentioned in the lead sentence. Any thoughts? (talk) 04:23, 12 April 2009 (UTC)

More applied subfields?

We've got a bunch of links to a variety of subfields of computer science, but we seem to be missing a lot of the more applied subfields. While I don't want to open up the question of "what exactly is computer science?", I believe that most research institutions with computer science departments have groups studying such things as networks, operating systems, databases and graphics. Does anyone object to me throwing up a bunch of links to such subfields?

mkehrt (talk) 01:45, 26 February 2009 (UTC)

I was bold and went ahead and did this. The images used are not necessarily the best, in my opinion, so if you find better ones, please do replace them.

mkehrt (talk) 02:28, 26 February 2009 (UTC)

Image copyright problem with File:IPhone EDGE and 3G.png

The image File:IPhone EDGE and 3G.png is used in this article under a claim of fair use, but it does not have an adequate explanation for why it meets the requirements for such images when used here. In particular, for each page the image is used on, it must have an explanation linking to that page which explains why it needs to be used on that page. Please check

  • That there is a non-free use rationale on the image's description page for the use in this article.
  • That this article is linked to from the image description page.

This is an automated notice by FairuseBot. For assistance on the image use policy, see Wikipedia:Media copyright questions. --20:15, 3 March 2009 (UTC)

Set theory

set theory is a major field, yet not mentioned! —Preceding unsigned comment added by (talk) 00:38, 27 April 2009 (UTC)

Does anyone agree with this user and the other anonymous user who is currently pushing mention of computer science into maths articles? Is there any evidence that computer science regards set theory as a subfield? --Hans Adler (talk) 11:12, 1 May 2009 (UTC)
Actually, they are probably the same user, and you can add to the list as well. All three IPs trace to the Sacramento area, and two of them have edited UCDavis-related content. --Trovatore (talk) 07:44, 2 May 2009 (UTC)
Computer scientists use the language of sets (as do all mathematicians, scientists and engineers), and know De Morgan's laws. However, with rare exceptions, they do not study Zorn's Lemma. Until they do so as a matter of course, Set Theory is certainly not part of Theoretical Computer Science.--Palaeoviatalk 11:41, 1 May 2009 (UTC)
well, actually set theorists are more likely to use the (equivalent) wellordering theorem than Zorn, but other than that the point is well taken. --Trovatore (talk) 07:31, 2 May 2009 (UTC)
Why graph theory was noted as field of computer sci., but the set theory was not noted? :-) Please, see the next section! --Tim32 (talk) 19:57, 6 May 2009 (UTC)
Actually, we could note that computer scientists, especially computational complexity theorists, make loads of mentions to Cantor's naive set theory, especially when proving statements about certain turing machines. ~ Gretgor -- (talk) 03:26, 8 June 2011 (UTC)
Set theory (and a few other topics) was removed from the AMS Classification Scheme for math quite some time ago and replaced with a new phrase including "Foundations". You can see that on the web site. (talk) 17:32, 30 November 2011 (UTC)

What about Mathematical chemistry?!

I was very surprised when I had found Computational chemistry in the section "Numerical and symbolic computation".What about Mathematical chemistry in this case? Note, please, "Mathematical chemistry has also sometimes been called computer chemistry, but should not be confused with computational chemistry." (Mathematical chemistry). Also Bioinformatics, Computational physics and many other scientific areas should not be noted specially as the Fields of computer science. The Computational chemistry, Mathematical chemistry and Computer chemistry are fields of modern chemistry, Computational physics is field of physics, the Graph theory is field of mathematics. Otherwise we have to add a lot of fields from different areas where computers and programming and algorithm's theory and practice are used today!

Also, very important, mathematics is pure theoretical science, but physics, chemistry, biology ets. are experimental sciences. Is Computer science pure theoretical science (like mathematics) or experimental science? --Tim32 (talk) 19:51, 6 May 2009 (UTC)

Visually pleasing initial image

It is visually pleasing to have an initial image when one enters the Computer science page (as can be seen when entering e.g., Mathematics and Biology). Bellow I give some examples which could be used, with comments:

ENIAC was the first general-purpose electronic computer. The completed machine was unveiled in 1946. (U.S. Army photo)
Roadrunner is a supercomputer built by IBM and currently the world's fastest computer. It is designed for a peak performance of 1.7 petaflops.
Visualization of a portion of the routes on the Internet.
May give the page an oldfashion feel Needs to be updated each time we get
a faster computer

Two images can also be used. What do you think? uackor 12:41, 14 November 2009 (UTC)

I agree that we need an image, but these are not really illustrations of computer science. For example, the first two might be more appropriate in Computing – I would prefer that the opening image emphasises that computer science is not the same thing as computing, instead of doing the opposite. What about having an illustration related to a computational problem? Perhaps an NP-hard game? — Miym (talk) 13:46, 14 November 2009 (UTC)
Roadrunner X-43A at Mach 7
Quicksort Visualisation of a portion of the routes on the Internet.
Computer science deals with the theoretical foundations of information and computation, and of practical techniques for their implementation and application. (clockwise from top-left) Roadrunner, Utah teapot, Quicksort, Internet
Please be constructive (suggest some pictures and text). I do not think it is possible to find a single picture which represents all of computer science. Another possibility is to do as Biology and present a selection of fields. An example is shown to the right. The selection chosen here can represent highly calculation-intensive tasks, computer graphics, algorithms, complexity, distributed computing etc. uackor 16:06, 16 November 2009 (UTC)
Obviously no picture can show a whole field... the internet one looks fine though. (talk) 00:42, 21 December 2009 (UTC)
Looks nice, but I don't quite understand how it illustrates computer science. In particular, there seems to be no connection between the lead paragraph and the illustration next to it. — Miym (talk) 00:53, 21 December 2009 (UTC)
Feel free to change the caption to something that you think fits. Maybe something like: "A graphical representation of the Internet, one of the well-known achievements of Computer Science." (talk) 03:41, 21 December 2009 (UTC)
I rather like the ENIAC picture, gives a nice link to the history of computing also. The internet and super computer photos will be outdated very quickly --NickThePhotographer (talk) 20:54, 23 May 2010 (UTC)

Utah teapot Quicksort
Lambda calculus Mouse (computing)
Computer science deals with the theoretical foundations of information and computation, and of practical techniques for their implementation and application. (clockwise from top-left) Graphics, Complexity theory, Language theory, HCI
Try, try and try again. Here is another selection of fields which captures some areas of CS and which are in the lead paragraph. Unfortunately the text may seem a bit long. Anyone who has any suggestions for a shorter text or objections to this? uackor 13:26, 10 January 2010 (UTC)
Computer graphics Computational complexity theory
Programming language theory Human–computer interaction
Computer science deals with the theoretical foundations of information and computation, and of practical techniques for their implementation and application.
You could make the text shorter like in this example: figures are links (with tooltips). — Miym (talk) 14:03, 10 January 2010 (UTC)
I have added the revised sugestion to the article. Subsequent changes can be discussed further here. uackor 15:15, 10 January 2010 (UTC)
For some reason, when we were last discussing these figures, the quicksort animation had a static thumbnail, showing only the first frame of it (at least on my computers). Now I realise that it wasn't a feature, but a bug which has been fixed; currently the quicksort thumbnail plays the full animation. Unfortunately, this makes the use of it as a lead figure questionable: animations are extremely eye-catching and distracting, while the lead figure should be unintrusive. Could we perhaps find another figure; simply taking one of the frames of the animation might be good enough as a temporary solution? — Miym (talk) 08:41, 19 January 2010 (UTC)

I had no idea what the top right picture represents. Looking at article it links to, I found Computational_complexity_theory#Best.2C_worst_and_average_case_complexity, which is a sorting algorithm, but that section has an animation. A still picture from that was totally meaningless to me. Tijfo098 (talk) 11:42, 4 October 2010 (UTC)

"Vocational areas"

Please note, the use of the terms "vocational areas" imply blue-collar careers only and does not fully represent this passage.—Preceding unsigned comment added by Pfuchs722 (talkcontribs)

Dead link for first source...

I need help to locate the first source that was cited for Computer Science. Can this be located without using Google's cache feature? Pfuchs722 (talk) 14:26, 4 May 2010 (UTC)

Try wayback. uackor 07:28, 7 May 2010 (UTC)


This intro is terrible, it could really use some serious editing... why are we quoting in the first paragraph like that? Why is that guy's quote any more relevant than the thousands of others? (talk) 19:30, 21 May 2010 (UTC)

Agreed it falls short. Computer Science is concerned with data structures and algorithms, natch. Use of the term "information" here is simply too broad and ambiguous to be helpful; moreover, it is (often) incorrect. Information is data in human-useful context, whereas computer science is concerned most directly with collection, storage, presentation of data and its processing. I dislike the term "computation" as well, as it sounds a whole bunch like what is being described, but I decided to live with it. It is simply not worth my time to get into a long debate or reversion war on either of these terms but using the term "information" here is a serious compromise on reality. Please check out the information entry to get an idea of what I mean. Thanks, - TO Tee Owe (talk) 19:48, 21 May 2010 (UTC)
"Data structure" seems too tight a definition to me. For example, cryptography or compression are clearly concerned with information, are both often considered part of computer science, and neither are directly concerned with data structures (except insofar as data structures may be used in their implementation). Furthermore, there is at least one reference in the lead that specifically says "Computer science is the study of information" (or something like that anyway). Perhaps the link to information is incorrect, but I think the general sentiment is about right.
As for algorithm vs. computation, it's again a case of the specific vs the general. There are -- at least according to some people -- non-algorithmic computations. Examples include quantum computing (no sequence of steps), and reactive or interactive programs (some researchers claim that intermediate inputs and interaction with environment fall outside the standard definitions of an "algorithm").
Finally, I'll just point out that the lead sentence as it exists right now is the end result of an extremely lengthy debate and consensus-building exercise a couple of years back (dig back through the talk page archives if you want to see the debate in its entirety), trying to reach a version that satisfied many people rather than any one individual. That said, if you want to reopen the debate, by all means do so.
--Allan McInnes (talk) 02:02, 22 May 2010 (UTC)
Cryptography and compression are algorithmic, not informational (yes I know cryptography is debatably both, but the act of encoding and decoding are algorithms). Do you have any more examples that would support the term using the term information instead? The big thing here is that computer science and information systems (IS) are distinct disciplines and the description for both should clearly delineate them as such. Differences include:
-IS is about information use (by people) and meaning, and is indifferent as to how data is stored and retrieved within machine boundaries.
-CS is does not require data to have human-usable context, therefore it is just data and not yet information until it is presented in context
-Computer Science is strictly scientific and objective, e.g. changes in data structures and algorithms can be measured and tested.
-Information Systems leverages applied science and engineering to solve problems, exploit opportunities and address directives in business and society. There is more, but I think this expresses my concern. Tee Owe (talk) 08:44, 22 May 2010 (UTC)
The implementation of cryptographic systems or compression schemes may be algorithmic in nature. The study and analysis of such systems is however quite firmly rooted in information theory. As for other examples, here are a few:
  • Several different universities from that characterize computer science as a study of (among other things) information:
  • Various articles and other discussions (dating from the early days of CS in the 1960s all the way through to 2010) on the nature of computer science that mention "information" as a key element of computer science:
  • A couple of ACM-endorsed definitions that specifically describe computer science as being concerned with information:
  • The IEEE/ACM Computer Science Accreditation Board's old "Computer Science as a Profession" description says "Computer science is a discipline that involves the understanding and design of computers and computational processes. In its most general form it is concerned with the understanding of information transfer and transformation."
  • The ACM Education Board Task Force on the Core of Computer Science, "Computing as a Discipline" (1989), defines computer science as "the systematic study of algorithmic processes that describe and transform information: their theory, analysis, design, efficiency, implementation, and application."
If you're looking for specific examples of sub-fields that are concerned with information then you might start with all of the work on databases and information retrieval, the fields of cryptography and compression, the study of information flow in program security, the study of information representations (entity-relationship and object models, AI research on knowledge representation, low-level design of number representations like IEEE floating point, etc.), or work on the semantic web. There're probably others, but those are what I can think of off the top of my head.
I'm not going to bother addressing your points regarding the distinction between CS and IS since I don't see them as relevant to this discussion: I never said anything about IS, and I never claimed it was the same as CS.
--Allan McInnes (talk) 12:51, 22 May 2010 (UTC)
Thank you Allan McInnes for your well-thought and detailed answer. Unfortunately it does not really address the concern. It occurs to me the problem is semantic. In everyday English language, we often use words like "information" and "data" interchangeably as synonyms. In each of your examples, one can typically substitute "data" for the term "information". Yes "information" can mean just primarily "data", but we have an opportunity for its meaning to take on more precision. I suggest it is this difference in meaning that better defines the distinction between the two disciplines (IS/CS). So left like it is, the interested reader will miss the opportunity to see the distinction between the two disciplines as well as the important distinction between the two concepts. I have no problem with CS practitioners wishing to cross the boundary and practice IS, but we all need to agree on where that boundary is. The existing description only further muddies the waters. If I am alone in thinking the distinction is important, I guess I will continue doing my own mental substitution. Tee Owe (talk) 17:59, 23 May 2010 (UTC)
While you may be correct that there is an opportunity for the meaning of "information" to take on more precision, the fact remains that standard usage of the word "information" is -- as you freely admit -- not the meaning you are trying to ascribe to it. Nor is Wikipedia the venue to attempt to redefine (or more tightly define) the meaning of the word. As I think the references I've provided above show, the word "information" (in its standard usage) is quite widely used in descriptions of computer science. You may disagree with that usage, feel that sharper distinctions should be drawn, or feel that boundaries need to be better defined, but Wikipedia is not the place to try to draw those boundaries or make those distinctions. Certainly not in the lead of an article. It might be reasonable to address the distinction further down the article, if that view is significant and verifiable (in other words, if there has been a lot of stuff written about the fact that computer science isn't really about studying information because "information" means something other than "data"). --Allan McInnes (talk) 00:07, 24 May 2010 (UTC)
I'm about to relent and concede, but one question. (When you get a moment, please look at the information article; I would suggest there is no single standard usage, and acceptable usage does not necessarily mean correct usage.) Where in the encyclopedia might one see the distinction between computer science and information systems if they are both about "information"? Thanks Tee Owe (talk) 02:33, 24 May 2010 (UTC)
Presumably the difference would be seen in which interpretation of "information" the different disciplines opt to use in explaining themselves, and also in what they claim to do with "information". Auto racing and automotive repair are both "about" cars, but it's pretty clear that they are different things. --Allan McInnes (talk) 06:58, 24 May 2010 (UTC)
As you have said, this may not be the place to "fix" it, but I think there is a mostly unconscious effort to expand the meaning of CS beyond its essential concern for data structures and algorithms. For example information theory is not really in the domain of CS but in that of applied math and arguably engineering. For every topic beyond data structure and algorithms that one might argue also belongs with CS, I suspect we can find a better "home" discipline. To make use of your analogy on "cars" we could acceptably say both topics involve maintaining a car. But to use the phrase "maintaining a car" in its first sentence might give readers a skewed perspective on auto racing. This is the sort of thing that I suggest is happening here. Thanks for the discussion. Tee Owe (talk) 18:54, 24 May 2010 (UTC)
I agree that the Denning quote is bit out of place in the lead paragraph. It should probably be moved further down the article. --Allan McInnes (talk) 02:02, 22 May 2010 (UTC)

Artificial Intelligence Section

The section on artificial intelligence Computer Science #Artificial Intelligence carries some really unrelated images. for Machine Learning is shown with a brain. Knowledge Representation with a picture of what happens to be neurons (with chinese labels!). I am removing this. The section generally can also be vastly improved in terms of quality. GreenEdu (talk) 11:39, 25 January 2011 (UTC)

This entire article needs better structure and Software Engineering

I find that this article has some serious structural issues, we need to eliminate redundant sections, and have a better top down hierarchy.

Also, just for those who don't know, Software Engineering is a direct subfield of Computer Science. It has undergraduate, graduate and post-graduate specialization degrees with associated research and development arms in both industry and academia. Also, most people who are qualified to work as software engineers are in fact computer scientists or computer engineers (software). I will admit however most computer scientists don't necessarily choose to specialize in software engineering. Computer engineers who choose to specialize in software are also taking mostly computer science courses, with some core engineering, electrical and circuit design courses added. Anyone who honesty disputes this point better have some serious evidence of the contrary. — Preceding unsigned comment added by Dimoes (talkcontribs) 05:02, 31 January 2011 (UTC)

Quoting the telescope comparison. Who said it first? This Edsger Dijkstra guy is very notable in this field, and was quoted as saying a lot of things. He also is surely covered in books. Some reliable sources state he made the quote. [2] and well, Google news search shows hits for the quote, and attributes it to him. [3] Various books accredit the quote to him as well. [4] I think he is the one that said it. Dream Focus 18:26, 29 August 2011 (UTC)

  • I checked to see who had the most hits with Google news and book search. Everyone of those points to Dijkstra except one. [5] Wikipedia is about variability not what we think is true. Almost all sources claim that Dijkstra made that quote first. Dream Focus 18:35, 29 August 2011 (UTC)
  • I added in a reference to a reliable source. Research Methods for Science By Michael P. Marder, page 14, published by Cambridge University Press. Dream Focus 10:19, 30 August 2011 (UTC)
List of thinkers influenced by deconstruction list Michael Marder. His book on psychics is also used as a reference in two articles. [6] Dream Focus 10:21, 30 August 2011 (UTC)
    • Playing devil's advocate here: I have found the quote in at least two papers that would count as reliable sources by Wikipedia's standard (writen by computer scientists, published in peer-reviewed journals). One of them clearly took the quote from this Wikipedia article however, so there it is possible the other did as well. What we really need is a number of reliable sources, preferably dating from before when this quote was introduced in this article (2001?), so we can factually state the quote is often attributed to Dijkstra. —Ruud 10:35, 30 August 2011 (UTC)
      • I searched Google Scholar for all places it appeared before 2001. [7] One result is from 1993. Dream Focus 10:40, 30 August 2011 (UTC)

Last Friday, I received a response from Ian Parberry:

I'm embarrassed to admit that I inadvertently plagiarized Dijkstra. Several people have pointed that out over the course of the last 18 years. I had heard his quote but forgot that it was a quote. The end of the statement, after the telescopes bit, is probably mine. It was unconscious on my part.

Ruud 10:24, 6 September 2011 (UTC)

The link has Ian Parberry suggesting that Michael Fellows is responsible for the quote. - (talk) 00:38, 30 April 2012 (UTC)

I have a problem with this line

The general public sometimes confuses computer science with careers that deal with computers (such as information technology)

this line simply doesn’t make sense in reality studying Computer science prepares you for career in information technology so if none opposed it i will remove it --Andri12 (talk) 23:49, 6 October 2011 (UTC)

Then you're one of the people who confuses the two. Many people who study physics or mathematics end up working in IT, but then you're not really a physicist, mathematician nor computer scientist (except perhaps for a few of the people that end up in the research & development department). You're probably an engineer, computer programmer or project manager. —Ruud 10:40, 7 October 2011 (UTC)
"Many people who study physics or mathematics end up working in IT" yes this was true in the past but nowadays at least in my country it has become a requirement to have bachelor's degree in Computer Science or Software Engineering for career in information technology for me it seems that you are confused on the scope of Computer Science Andri12 (talk) 11:45, 7 October 2011 (UTC)
Sure, as does becoming an actuarian often require a degree in mathematics. There's a distinction between the degree of computer science, the careers people with such a degree pursue and the academic/scientific discipline of computer science. Someone with a degree in mathematics working at a bakery or for an insurance company might properly call himself a a "mathematician" in the sense that he has a degree in mathematics, but not in the sense that it is his current profession. The distinction between computer scientists a web developer or computer technician is often much less clear to the general public. There is a big distinction as the latter two often do not employ the methods of formal of empirical science. What this sententence is trying to make clear is that not every computer professional is a computer scientist (although a good number of them are.) —Ruud 12:00, 7 October 2011 (UTC)
I rephrased the sentence, is this more acceptable to you? —Ruud 12:31, 7 October 2011 (UTC)
now the sentence is acceptable Andri12 (talk) 13:55, 7 October 2011 (UTC)

Feb 2011 re-org

In Feb, starting in this diff by Ruud Koot, we had a big re-organization of the field into "theoretical" and "applied". I think the old scheme made more sense, unless there's a reliable source for this partitioning. Is there? Dicklyon (talk) 04:35, 30 November 2011 (UTC)

I've yet to find a good source giving a comprehensive listing of what the subfields of computer science are. To some extends this is always is always going to be a synthesis of various sources. Neither the current, nor the previous organization where properly supported by sources. The current organization does follow the SIGACT definition of theoretical computer science (see Theoretical computer science#Scope) except that they do not include Databases, data mining and information retrieval (but then again, they do co-organize the Symposium on Principles of Database Systems).
In my opinion this organization is more useful the old one, there is an endless debate over whether fields such as software engineering are or are not parts of computer science proper and the previous terminology "Related fields" seems to take the position that they where not.
A good counter-argument against this organization is that most subfields range from theoretical to applied. E.g in programming language theory there is a lot of purely mathematical work on semantics to much more applied work involving language design and compiler construction.
Ruud 11:15, 30 November 2011 (UTC)
It does seem very odd to have DB and IR as theoretical. And you're right that most fields are mixed, theoretical and applied. I think it would make more sense to get rid of the binary partition and just list the areas. And just because a theory group claims certain areas as part of their scope (e.g. VLSI), that doesn't mean that area isn't also applied, or even mostly applied. Dicklyon (talk) 15:33, 30 November 2011 (UTC)
Perhaps, yes. I think the currently listed subfields (i.e. the 3rd-level headers) are an accurate reflection of the various kinds of research groups you'll find at computer science departments. My motivation for further subdividing those mainly arose from the fact that 1) the number of subfields seemed a bit too large not to be further subdivided and 2) it seemed odd not to mention the ubiquitous term "theoretical computer science" here. I'm not quite satisfied with the current presentation, but I think the articles has bigger issues that need to be dealt with. —Ruud 21:32, 30 November 2011 (UTC)
Theoretical computer science was mentioned before your re-org, as one area with a few subareas, but not as a major division parallel to applied. That wasn't so bad. We can go back to something like that if you want, but not put so many things in it as we have now. Dicklyon (talk) 01:06, 1 December 2011 (UTC)

Sidestepping the science issue

Redacted the lede so that Wikipedia is not staking out a position on this eternal and contentious issue, mainly in the Lead Sentence about which there's a thread above. The subsequent changes were for prosodic consistency with it. (talk) 20:59, 26 January 2012 (UTC)


Computer scientists invent algorithmic processes that create, describe, and transform information and formulate suitable abstractions to design and model complex systems.

For the obvious reason, viz. that it is an incomplete, inaccurate, and misleading statement. (talk) 21:10, 26 January 2012 (UTC)
Finally, the 1st and second paragraphs could be merged on their boundary sentences. Saw a recent piece in CACM where somebody was saying that CS couldn't be an S because it was about an artefact. That might be added as a reference to the Name of the Field § (talk) 21:27, 26 January 2012 (UTC)
In my opinion your rewrite of the lead section, which was largely the result of long discussions on this talk page, is not an improvement. See Matti Tedre: Computing as a Science: A Survey of Competing Viewpoints. Minds and Machines 21(3): 361-387 (2011) for an excelent overview of many notable definitions of computer science. The old lead summarized these viewpoints more accurately. —Ruud 01:31, 27 January 2012 (UTC)
It's not a free source, but the abstract is in agreement with the basic point in the title of this thread. Revert to the old one if you like but at least correct the grammar and composition, what was there looked like a committee hatchet job so don't doubt your statement. Also performed merge mentioned above. Lycurgus (talk) 04:14, 27 January 2012 (UTC)

Possible misquote

According to Wikiquotes, the following is misattributed to Edsger Dijkstra .

Renowned computer scientist Edsger Dijkstra once stated: "Computer science is no more about computers than astronomy is about telescopes."[1]

Here is a copy of the text from wikiquote:

  • Computer Science is no more about computers than astronomy is about telescopes.
    • This quote is actually from Hal Abelson, who in the opening to his 1986 lecture series on his famous book SICP said:
      • "[Computer science] is not really about computers -- and it's not about computers in the same sense that physics is not really about particle accelerators, and biology is not about microscopes and Petri dishes...and geometry isn't really about using surveying instruments. Now the reason that we think computer science is about computers is pretty much the same reason that the Egyptians thought geometry was about surveying instruments: when some field is just getting started and you don't really understand it very well, it's very easy to confuse the essence of what you're doing with the tools that you use.", YouTube

Perhaps we should update the attribution? Kushal (talk) 20:22, 1 June 2012 (UTC)

This has been discussed before. I have since found an even earlier reference (Hebenstreit 1974) stating "We have attempted to show that while the processing of information is a science it is not one which can be apprehended by merely studying the basic tools, i.e. the computer and programming languages, any more than astronomy can be reduced to the detailed study and operation of telescopes." I left some further background on this quote at wikiquote:Computer science. —Ruud 16:07, 8 August 2012 (UTC)

The design of computers or computational systems

Is the first paragraph it says: "A computer scientist specialises in the theory of computation and the design of computers or computational systems." Later in the article, it says: "The design and deployment of computers and computer systems is generally considered the province of disciplines other than computer science." Funny, no? - (talk) 21:17, 27 September 2012 (UTC)

Computer Science branches: Human-Computer Interaction (HCI)

¿Why isn't this field mentioned? Although it does overlap with other disciplines, it is consider a staple of most departments. - User:Hookandloop 16:43, 5 July 2013 (UTC)

— Preceding unsigned comment added by (talk) 05:52, 9 October 2013 (UTC)


As you can see computics is a redirect of informatics, the primary source compared it with CompSci, along with the words, computicist, computicism ala ala.. no nothing about informatics. -- (talk) 05:20, 20 December 2013 (UTC)

  1. Research Methods for Science By Michael P. Marder page 14. Published by Cambridge University Press