Talk:Computer science/Archive 2

From Wikipedia, the free encyclopedia
Jump to: navigation, search

"Debate over name" incoherent para

I replaced this paragraph from the section entitled "Debate over name", and renamed that section. It is not clear from the (uncited) paragraph what this "debate" is, who debates it, or its importance. Surely if this is a real "debate" then there would be some papers or letters or something in which practitioners take sides:

There is some debate over whether the name of the field should be computer science, computational engineering, or software engineering. The first name is the original, traditional name, however it implies that CS studies computers. The second name is more recent, and it implies that CS studies what we do with computers. The third name recognizes that mostly the field studies software.

What's more, this para treats "software engineering" as an alternate name for computer science. This is not a usage I'm familiar with. As described in the software engineering article, software engineering is an attempt to apply engineering methodology to software production -- the managing and work of programming. It is not the same as computer science.

I've replaced this para with one that does not pretend to describe a "debate" but rather simply the perceived inaccuracy of the name "computer science". If anyone has any sources for particular positions people have taken on names for the discipline, feel free to reintroduce the "debate" meme. --FOo 05:15, 7 Mar 2005 (UTC)

Coding Theory

In the Data and information systems section there is a reference to Coding Theory and Information Theory. However, someone linked Coding Theory to the Computer Programming page, which has nothing whatsoever to do with Coding Theory. This should probably be fixed...


hey, guys: New template: comp-sci-stub . thank you ABCD Use appropriately. I was horrified with the use of computer-stub. Thanks.

Computer Science for lyfe! :D

Project2501a 19:37, 8 May 2005 (UTC)


a picture of TAOCP is not an adequate symbol for computer science; you wouldn't show a picture of a biology book when describing biology

Somebody get me a pic of a coke bottle and a pic of a young geek reading slashdot and looking at porn ^_^

or we need a pic of um a long-bearded, long-hair older man screaming his windows box :D

in all seriousness, i'd like to point that i created [[Category:Wikipedian computer scientists]] go register ^_^

Project2501a 22:05, 13 Jun 2005 (UTC)

What's really a "computer scientist", strictly speaking?

I want to raise this question in the context of WKP categories such as Category:German computer scientists. Someone just added Konrad Zuse to that category. However, Zuse was educated as a civil engineer, but later went on to construct several pioneering electro-mechanical computers, of which his Z3 is arguably the first actual computer in the modern sense (no holy wars, please---this is a controversial subject, to say the least...).

In light of the above, my question is this: should categories of computer scientists also include self-taught pioneers like Zuse and others of his generation, or should we include only people educated as computer scientists as such? I acknowledge, of course, the groundbreaking efforts many of those engineers and scientists did for computer science and, perhaps even more to the point, c. engineering. --Wernher 19:43, 6 August 2005 (UTC)

A scientist is simply someone how uses the scientific method to invent new theories. This means that most people educated as computer scientists, are not, because they usually work as (software) engineers. [In contrast someone without any formal education, can be a computer scientist. For example one of the full professors in computer science at Utrecht University was educated as a physicist.] About Konrad Zuse... he shows many parallels with Alan Turing, in my opinion the greatest computer scientist that has walked this earth. But as far as I know, and I must admit that I don't know much more about Zuse that he invented the first computer and programming language, he worked more as an engineer than as a scientist. However, not having him under Category:German computer scientists, would be further from the truth than having him in here. --R.Koot 20:04, 6 August 2005 (UTC)
Self-taught or even amateur scientists in an area should always be able to qualify if they did something significant. In addition to building machines, Zuse thought about how to program them, which is where his CS credentials come from. Stan 20:21, 6 August 2005 (UTC)
Like all fields it's not the schooling but the knowledge. I agree with Stan that having a Degree in CS doesn't make you a Computer Scientist any more than a degree in spoken Italian makes me a Italian speaker(I doubt you can get a degree in just Italian, but understand the point behind it). Formal education should just be taken as a guideline. Every great person in a field was self-educated to some extent, or else they would just be repeating predefined facts and formulas, and thats what people at McDonalds, not great minds, do. At least that is my definition, the ability to manipulate the knowledge to bring better clarity or perfection to ideas. According to that it doesn't matter where the information came from, but how it is used. 2cents.--Capi crimm 06:17, 3 September 2005 (UTC)

A computer scientist is a scientist that computes. Okay, that is blunt. However, I've seen two realms of computer scientists, and that is the academic follower and those that make computer science a religion (to say the extreme). Those that follow academia are just after the degree and only just study the field to achieve such degree. Those that go beyond study alone apply and live by the bounds of computer science. Anotherwords, evolution and creationism have been analogous to opposite forces of science and religion, but computer science can work with either if it logically computes. My opinion is the with the recent growth of intelligent design and the hype that there is nothing that competes is wrong hype -- as there is computer science. Computer scientist would claim God is a hacker and the human body is a machine, while intelligent design would claim that somebody intelligent like God must have designed the human body. Anyways, those are just some poinst of extreme to compare (or compute) the differences. --- Mr. Ballard 18:14, 3 September 2005 (UTC)

Computer scientist would claim God is a hacker
*AHEM* Lisp hacker on a UNIX shell ;) Project2501a 19:59, 12 October 2005 (UTC)

Computing as a Discipline?????

This paragraph defines "computing" rather than "computer science". Unless there is a really good reason, this definition should be moved to the computing page.


I think that N. Chomsky should also be included in the list of pioneers in Computer Science. Almost in every introduction book to CS theory, you can see his "Chomsky Hierarchy"...

I agree. My second class of Discrete structures focused solely on the Chomsky Hierarchy and the related models of computation for each level of the hierarchy. Fascinating stuff btw, Chomsky is an Einstein of our generation. -WilyCoder
Dr. Chomsky's Hierarchy describes a formal way for describing any complete grammar. Since computer languages tend to be complete grammars, they most certainly take from the Chomsky Hierarchy. In fact, Dr. Knuth once suggested in an ACM conference that there should be a C somewhere in the BNF acronym, in honor of Dr. Chomsky.
But, CS is a multi-disciple science and in this case it takes loan from linguistics, which is the area Dr. Chomsky applied his theory in, to assist humans to communicate with computers. I don't think that Dr. Chomsky has done any work with or on computer science, and that is why I don't think we should mention him as one of the pioneers of CS. what we CAN describe him as is a pioneer in the area of context-free grammars, which compiler theory could not do without.
If i had to give out a metaphore, i'd say it's like saying that Kurt Gödel should be mentioned as a pioneer of the field because Automata theory comes out his work on logic and set theory. Project2501a 19:52, 12 October 2005 (UTC)

Proposition to improve the "field of computer science" section

The page list of academic disciplines has a nice list, which is the following:

Computer science

   * Algorithms
   * Artificial intelligence
   * Computer security
   * Computing
   * Complexity theory
   * Cryptography
   * Distributed systems
   * Hardware
   * Programming (see List of programming languages)
   * Formal methods
   * Information systems
   * Robotics
   * Software engineering

See also: ACM Computing Classification System

I think we could build upon this list to improve the "field of computer science", adding (many) details. IMHO, the current list is scruffy, mixing High-level fields with minor fields, without any hierarchy... --Powo 20:57, 23 November 2005 (UTC)

I agree 100%. The section should I think be converted to prose form (paragraphs), and it would be better to use categories to form the lists. The section should be a discussion of the fields in a more encyclopedic format (explaining them and how they interrelate). Also, I assume each of these have their own articles, so we don't necessarily need to cover them in much detail here - just in what way they relate to computer science as a discipline and to each other.
That'll help. — Dzonatas 15:01, 25 November 2005 (UTC)
agree. Sbwoodside 06:10, 1 December 2005 (UTC)

Definition of computer science

I've made a new article for this subject -- Definition of computer science -- enjoy Sbwoodside 08:58, 15 November 2005 (UTC)

Scientific use of computers

A posteriori, it seems to me that a central point of the discussion herunder is to question if a scientific use of a computer is to be considered as part of CS. C.f. hereunder for details. --Powo 22:31, 30 November 2005 (UTC)

Scientific use of computers is not computer science

Dear all,

in the first paragraph, the following sentence can be found:

"By definition, computer science is the accumulated knowledge through scientific methodology by computation or by the use of the computer."

I strongly disagree with this sentence, so I removed it but it was reintroduced later by another user. I will remove it once more, but this time please let me explain why I disagree.

"accumulated knowledge through scientific methodology by computation" is not sufficient for being computer science. Accumulated knowledge through scientific computation is an empirical approach amongst others. There are basically three ways of doing such accumulation of knowledge:

- Experiment "in vivo", - Experiment "in vitro", and a (new) type of experiments - Experiment "in computers" (simulations), or "in silicone" as I have heard it named...

Therefore if accumulated "knowledge through scientific methodology by computation" is obtained on say: some physical phenomenon, biological phenomenon, chemical phenomenon, etc..., Then this is physics, biology, or chemistry respectively, but NOT computer science.

Please remember the citing of Dijkstra: Computer science is no more about computers than astronomy is about telescopes.

To illustrate what I mean, and poorly copying Dijkstra, I would say: Computer science is no more about "Accumulated knowledge through scientific computation" than biology is about test tubes...

The use of a computer to gather scientific results those not mean you are doing computer science!!! If you "accumulate knowledge through scientific computation" AND if this knowledge is related to computer science (e.g. experimentally testing the complexity of an algorithm), then THIS is computer science. Note that computer science doese not necessarily imply the use of a computer (e.g. theoretical computer science usually favors a mathematico-deductive approach to an "in silicone" empirical approach to computer science).

I agree entirely and I think most people will. Wouter Lievens 08:16, 13 October 2005 (UTC)
I disagree. Very simply, the verbial form of "to accumlate" is confused with its adjective form by the above argument. That is obvious by how the argument focuses on the scientific accumlation in point (if "related to computer science"), rather than the focus on "to compute" and the knowledge related to that computation. Also, a computer is not limited to a siliconic existance.
"The use of a computer to gather scientific results those not mean you are doing computer science!!!" Right. It means you did regular science through computer science.
"If you "accumulate knowledge through scientific computation" AND if this knowledge is related to computer science (e.g. experimentally testing the complexity of an algorithm), then THIS is computer science." --- Such statement here is recursive and thus lacks any definition. It doesn't improve the definition on the page.
Oh well, if you dont understand this sentence, you did not understand me at all. Is it better like that?
If you "accumulate knowledge through computation" AND if this knowledge is related to procedural epistemology (e.g. experimentally testing the complexity of an algorithm), then THIS is computer science.
If you "accumulate knowledge through computation" AND if this knowledge is NOT related to procedural epistemology (e.g. numerically solving differential equations), then THIS is NOT computer science.
"Note that computer science doese not necessarily imply the use of a computer (e.g. theoretical computer science usually favors a mathmatico-deductive approach to an "in silicone" empirical approach to computer science)." --- A computer is not limited to a siliconic existance. ---- Mr. Ballard 14:17, 14 October 2005 (UTC)

I found this definition for computer science on the web:
"...The systematic study of computing systems and computation. The body of knowledge resulting from this discipline contains theories for understanding computing systems and methods; design methodology, algorithms, and tools; methods for the testing of concepts; methods of analysis and verification; and knowledge representation and implementation...." (
There is a discussion on the article page of wether the *name* "Computer Science" is a good name to describe what the science called "computer science" is. Most computer scientists agree the name is bad, so in perticular the etymology of "computer science" reflects badly what computer science is, so I really wish the sentence "by definition, computer science is..." would be removed (but I will let somebody else do it this time...). What do you think of the above definition I found on the web?
To answer both... There seems to be a veil about what computer science is for some. Inside the veil there is the hardware, the software, and the math that all exists because of the computers and computation. Outside the veil one sees that the computer science is more of that. If there is a way to simply explain it, we could say it is the realm of science that computes, as not everything in science computes. With the definition above, it states "theories for understanding," but that would be theoritical computer science and not based on any factual foundation. Computer science is what computes and that means the use of facts to compare facts and get a result, and that result becomes accumlated knowledge. I also consider that definition found on the web as poorly written English, so I wouldn't trust it to be from computer scientist. ---- Mr. Ballard 23:13, 15 October 2005 (UTC)
OK! I think we are close to agree on what we disagree! For me, computer science is not at all the realm of science that computes, since many scientists (perhaps one day every scientist) use computations/simulations (I have friends which are biologist, physicians (and to a lesser extend mathematicians) and who spent there whole time doing computer simulations, but I dont consider themcomputer scientists, and I dont think they do either)... On the other hand, it seems (do I get you right) that you consider theoretical computer science not to be part of computer science (or even not science at all??? (I suppose certain science philosophers, e.g Karl Popper would probably agree, but most computer scientists would not)), whereas from my points of view, theoretical computer science is part of computer science.
So.. We agree that people who just use a computer are not computer scientists. The knowledge that is gained by compters is part of computer science. If you can run a simulation of a what heat does to a sample cellular lifeform, the simulation is done through computer science.
You say: The knowledge gained is part of computer science. I strongly disagree on that: The knowledge gained is clearly part of biology. This seems very obvious to me, and this is precisely why I want to remove the sentence! Doese anybody else disagree on that??? The simulation is indeed done through the use of a computer, (and probably but not surely computer science will be an important tool, posibly amongst other tools, like mathematics...).
Whoa! You didn't include a logic phrase that I typed: by computers. I questioned if it was intentional or a misperception, yet you further agrued with your ideas that it "is clearly part of biology," and more so below. Either way, you pointed out it is obvious, and that doesn't seem so obvious. If we use a bit from biotechnology, we find cellular forms that perform based on its DNA/RNA. I, thus, have argued in this life that such cellular-based body has similar actions like a computer such that it follows instructions (DNA) like a program to perform a variety of tasks, like move a finger or grow muscle to move that finger. I further have argued that such cellular body is programmed to listen to a life, like you within your body. Computer science has the knowledge of how the cellular body works as a machine, and the field of biology looks at the expressions of the cellular-body to study the lifeform the life renders with such body. Anotherwords, somehow you have written words here to express yourself and your arguement about what is computer science, and that is your life that has manipulated your body to further write across the Internet where others can preceive such communication. Given that biotechnology is real, it unintentionally defines a line between your life and your body that is not your life but just Earth. Given that Earth is a resource to make a PC as well as your body, they have much in common. With such commonality between the elements of a PC and body, it is just not so, as you said, "clear" and "obvious" that your body is really more defined by biology or by computer science. Unfortunately, whatever "life" is made of, it is not obvious enough to become a fact of science. Because of that fact of life, I have argued that everything about you except your life is a part of computer science, and wonder what silly hacker reprogrammed your body to argue that you are something more than a biologic robot. Seriously, by what means would you prove it that your really alive? Show me your proof. Some say discrete math is for massochists. I say "good luck" on your Turing test. ---- Mr. Ballard 18:19, 17 October 2005 (UTC)
In a weird way, twist it and warp it until you see computer science as the looking glass.
I like this Mr. Ballard! Thats exactly what I meant by comparing computers to test tubes (experiments in vitro), and I proposed to call this experiments "in computers", although some call it experiments "in silicone" (although I am plainly aware all computing devices do not contain silicon, and maybe one day no computing device will contain silicon...)
Those that can manipulate the glass are computer scientists -- just like optometrists. You don't, consequently, become an optometrist when you wear glasses.
Telescopes, testubes, computers, can all be seen as as way of "looking at" (like glass in your example). The main question is not who knows how to manipulate the tool, but the question is what do you look at using the tool! Let me play the following game.
* Lets define micro-scopes and tele-scopes as being simply scopes.
* Lets add to the class scopes computers (Dijskra's citing allows me to do this with no too much arguing), and I call them computer-scopes.
Now tele-scopes are mainly used in astronomy (am I right?), but surely, micro-scopes are used in many sciences (biology, chemistry, physics, etc..). Computer-scopes, like micro-scopes are used in many sciences: computer science, biology (you gave an example), physics (I gave one), mathematics, social sciences, etc...
I propose you try to see computer scientists not as people who have the knowledge of manipulating a computer-scope, just like atrophysicists are not people who know how to manipulate or build a tele-scope.
*** About theoretical computer science, this is where alot of discrete math is used to predict what can compute or what there will be to compute. To me, theoretical computer science is a part of discrete math as theoretical computation. It must depend on one's perspective -- from a strong math background or from a strong computer science background.
Ok, lets not argue about this too (because yes, I disagree!). It is perfectly ok that you have your own opininion about this, and I suppose that you could find good arguments to defend your point of view, but please be aware the the community of theoretical computer scientists, from what I know of, consider themselves to be computer scientists before being mathematicians (a discussion abit like this not so long ago on Lance Fortnow's (a top theoretical computer scientist) weblog:, also official ACM classification includes theoretical computer science (TCS) as part of computer science, etc... So if your definition of computer science excludes TCS, although it may be interesting, it is a marginal definition.
*** Do realize that there is a big difference between computer scientist and software engineers. I've seen many times that software engineers think they are computer scientist because they know how to program or build logic devices. In reality, the computer scientist build the tools, objects, and knowledge that the software engineer uses to perform. The computer scientist is at a much lower level than a software engineer, and that is the point I see missed many times. At one time, the computer was a name for a person. Personal Computer must have had some kind of pun intended. ---- Mr. Ballard 21:30, 16 October 2005 (UTC)
Well, dear Mr. Ballard. I would like to remove the sentence which I think is erroneous, and you would like to keep it because you think it is accurate. We have both brought in some arguments. Can we compromise? How?
Best regards.
--Powo 10:16, 17 October 2005 (UTC)
Perhaps, it was just coincidence that you left out "by computers" when you tried to quote me, but it is enough that I suggest you reconsider it as not erroneous. Also consider that the answer to the Turing test is simple when you realize that you can't proove the existence of life without computers. The answer falls in an area that isn't science, but it is computer science. It isn't science because by scientific principles one cannot demonstrate any proof of life's constitution. We can, however, use a scientific methodology to form a logic difference. That difference, whatever it is really, is only found when we program a computer that has no life to attempt to act like it did have life and pass the Turing test. Without computers, like similar to how you left it out of the quote, you would not realize that the one who took the test is a computer or of real life. Without computers, we don't have computer science. Have you studied what the Turing test is all about? ---- Mr. Ballard 18:19, 17 October 2005 (UTC)

I lost track of all the handwaving here, but suffice it to say that the "by definition" definition is totally bogus. The etymology is irrelevant to current meaning (as are most etymologies), and a formal definition more elaborate than "scientific study of computation" is almost certainly going to run afoul of real-life exceptions. If anyone just can't stand not having more detail than the simple phrase, then add some quotes from famous introductory CS textbooks. Stan 03:11, 16 October 2005 (UTC)

Maybe this is sufficient indeed! Also, this discussion in itself shows that defining computer science, a young science, is not trivial. So the "by definition..." is indeed to easy...
I've seen many attempts that have used a recursive defintion or a "study of" type definition that really doesn't define computer science at all. This might not say much, but computer science is knowledge. More specifically, computer science is a fraction of total knowledge. We still can't identify what patrs of knowledge is computer science and what parts is not, unless we show what is accumulated knowledge through scientifc methodology by computation or by the use of the computer, or at least for what one can compute themselves. In figure of speech, we can say the computer science puts a nail in science. ---- Mr. Ballard 21:30, 16 October 2005 (UTC)
I've seen many such definitions which I agree with. These definitions come from recognised experts from the field. Can you give us a reference pointing to a definition similar to yours? --Powo 14:43, 30 October 2005 (UTC)
Below are the roots of the words as found in major dictionaries. Most definitions of "computer science" I found are more of a definition for "computing" or limited to an academic field rather than one that defines "computer science" down to earth. Most state that they involve computers in the study, but they still really don't define it. Some use the define it as part of a engineering science with study into its theory, systems, tools, etc, but that is only the engineering part of it. Limited by exclusion of original research, I used a consensus of what computer science is from major dictionaries and encyclopedias. From what you want to do is add the aspects of what computer science engineers do into the definition. I don't say that your wrong, Powo. The version you want is a much higher level definition and is limited as such. The version below is much lower level and includes your version. What I suggest you do is to include your version as another paragraph or somehow combine the entire paragraph together without deletion of the lower level definition. ---- Mr. Ballard 15:14, 4 November 2005 (UTC)
I throw in my two cents. Computer Science is the study of computation. Simple as that. All the other noise -- software engineering, computer engineering, discrete mathematics, etc. are related but separate fields. I think Dijskra said it best: "Computer Science is as much the study of computers as astronomy is the study of telescopes." The point is that the computers facilitate investigations into computability. I would also point out the the concepts of algorithms date to the first millennium.--Mpeisenbr 18:05, 5 November 2005 (UTC)
I agree with this definition, although it doese not say much more than 'computer science' is really 'computation science'. Even though not very informative, this definition has the advantage of being accurate, in contradiction to the current definition: '"By definition, computer science is the accumulated knowledge through scientific methodology by computation or by the use of the computer"' which is twice erroneous since:
  • It implicitely means that this is the etymologycal definition of computer science (i.e. the science that studies computers)
  • It implicitely implies that it is the defintion as it is widely accepted (i.e. the science that studies computation, as you have said).
We should: (a) remove the erroneous definition (b) put "your" definition instead (c) apply the plan proposed by stan hereabove.
Timewise, a can be done before b which can be done before c. I will try to contribute to point c shortly, and I'll apply b and c right now...
Dijskra has a good point. On his point, there is much knowledge that can be gained when one uses a telescope. You don't have to have a telescope to have the same knowledge. Those with a spaceship could fly to the moon and learn the same thing as one who uses to a telescope to look at the same crater. Both methods are still fall into astronomy since from the perspective of here on earth it is astronomical. Computer Science doesn't only mean the study of computation but the science involves much more than computation. Like the telescope is the tool, computation and computers are the tools. Academically, it could be said it is the study of the body of knowledge justified by computation, but computer science is more than just an academic field. The definition that includes the scientific methodology is the one about its practical everyday use. One doesn't have to study computers or computation to work in computer science. ---- Mr. Ballard 00:16, 7 November 2005 (UTC)

It is true that there is merely two uses of the words 'computer science'.
* Computer science as a scientific discipline
* Computer science used in everyday language, which just roughly means "anything related to computers"
The question is, (a) what is this page trying to define (b) do you have any reference to this definition or some similar definition?
The thing is "your" definition seems to define what computer science is, but I dont think computer scientists agree with it.
I do think one needs to study computations to be a computer scientist. Many people who work in the comnputer related area are more computer engineers, a sister discipline. Actually the union of them two is called the 'disipline of computing' by the ACM task force who was asked to think about that. Dear sir, I realy think you should agree your definition to be removed, unless you can give evidence that there is some more widely recognition of your point of view. If this were so, it would be interesting and we could include it in the "plan of stan" we where talking about.--Powo 07:39, 7 November 2005 (UTC)

Earlier revision of definition

Here is the text cut from an earlier revision. It helps explain the roots of the definition. The sentence below as it existed in the article was split appart in attempt to put the details further in the article. ---- Mr. Ballard 14:17, 14 October 2005 (UTC)

A computer is one that computes, where com- (with, together) joins putare (Latin root, to reckon, to think, or section as in to compare pieces), so by definition, computer science (Latin: scientia, knowledge) is the accumulated knowledge through scientific methodology by computation or by the use of the computer.

The Study of Computation, alone, does not define Computer Science

This is where we are at: Powo and Mpeisenbr state Computer Science is defined as "the study of computation." I provided sources, and I even further provided root terminology of the words. I haven't seen any source that defines computer science as such. I google'd it and actually the closest I've seen is a included study of the limits of computation, but not that alone. Lets put this another way, if one studies computation, one actually studies a process where input on a set of instructions produce an output, or at least that is one way to describe a way to study computation among many. That just kind-of included everything and nothing is particular. With that "study of computation," the argument emphasizes on what constitutes the instructor. The question arises of what kind of instructions are given and in what form are they. Further questions arise if the instructions where heuristic, genetic, algorithmic, natural, or phenomenal. Even if the input is known and well understood, the question arises of what is to be done with the output. If one studies computation just to see if a given input produces an output, that doesn't define computer science especially when all these other questions arise. A computer scientist does study the limits of computation. Anotherwords, a computer scientist wants to produce a well-formed computation. Yes, one must study computations in order to "compute" computations. Usually, an algorithm is written to express the computation. That would mean a computer scientist must also learn how to produce algorithms and not just study them. The means to produce such algorithms involves a practice. That practice goes well beyond experimentation and study. When one plays a musical instrument at a live concert, they aren't only there to just study musical talent, as they got to perform.

Powo, that kind of performance issue is what lacks in your points, or you haven't acknowledged it or even experienced it. I'm surprised you listed one reference above with a citation from the web about computer science, and you want to also agree to an incongruent definition like "the study of computation."

When you emphasized computer science with the focus on science, that is were I finally saw you take a step in the right direction about what computer science is about. Computer science is knowledge, yet what constitutes that knowledge can be governed by a computation. This computation simply tells us if the knowledge is in the realm of "computer science" or not. This computation is a proposition. If we say the proposition is "the study of computation," then what knowledge would hold true under that is was by a study of computation. Does that computation include any system of facts or does it base its output on theories? If the computation is based only on facts we could justify it as a pure solid science. If the computation includes any theory, it wouldn't be pure and be just a study of theory. There is nothing to the phrase "the study of computation" that justifies what makes the computation and thus what would be computer science. Do you follow this kind of propositional process? Anotherwords, does the involvement of a genetic instruction concern the computer scientists? Does the involvement of heuristic instructions concern the computer scientists? Does the involvement of phenomenal instructions concern the computer scientists? Actually, that last one would probably concern more than just the computer scientists! The computer scientists doesn't live by algorithmic instruction sets alone. To get back to a the knowledge governed by a computation, we could express such an algorithmic instruction in english. We want to define computer science, right? That definition of computer science qualifies as an algorithm. What set of instructions do you propose would define computer science, Powo? ---- Mr. Ballard 18:44, 7 November 2005 (UTC)

I am not sure I can follow you, and I have no answer to give to the question you address to me, which I do not understand. Sorry about that (maybe you can re-explain it, sorry if I am slow...). It seems to me you are trying to define something (which you call computer science, but I would not call it like that). From what I see, this something you are trying to define is more like some kind of a metaphysical theory (in the philosophical sense, not the pejorative sense) which has computer science as some kind of a foundational argument or corner stone.
However, and as you aknowledge hereabove, you could not find any reference to such a metaphysical definition of computer science. The reason, in my opinion, is that this is absolutely not what computer science is usually denominating: a scientific discipline, different yet similar to mathematics, physics, biology, etc... (Lets not argue wether computer science is a science or not, this depends on the definition of science...)
What has possibly led you to choose the denomination computer science to denominate your philosophical point of view, is that computer science is also used (sadly fom my point of view) in common language to refer to any discipline (or technology, or whatsoever...) related somehow to computers.
IMHO, you should find another group of words to define your point of view on what you call computer science.
Of course, you could argue that I could do the same... But then, may I ask: what is the denomination you suggest for the scientific discipline which is done in academic circles and which I (as well as researchers from these "academic circles") call computer science?
You have argued that defining computer science as the science that studies computations is restricted to the academic aspects of computer science. You are correct: computer science is an academic discipline, and what falls outside (the part you claim "my" definition forgets), is simply not computer science from my point of view. (Dont get me wrong: I put ABSOLUTELY no judgement of values in this last statement: what I call "not computer science" is just as good, as important, as intersting (at leats in some cases) as computer science!).
--Powo 15:02, 8 November 2005 (UTC)
Metaphysical? Where did you get that? I used the words from the dictionaries that tried to explain computer science, and I didn't just make them up.
Oddly, you seem to have rested that computer science is only an academic discipline. That would mean those that are in a computer science job aren't really in computer science, by your theory, because they aren't in academia.
I think a computer scientist is a scientist, a researcher, and therefore by definition he works in academia. At least under the definition of academia I was thinking about. --Powo 23:50, 9 November 2005 (UTC)
Perhaps, you have wanted to use the scientific approach that academia uses to further computer science. That is valid, but realize not only academia does such.
Above, of what you didn't follow, was a question to write a program to define computer science. It appears you are more mathematically biased than otherwise. Computer science is a body of knowledge. ---- Mr. Ballard 05:48, 9 November 2005 (UTC)
I am surprise you can contest you have metaphysical views and ask me at the same time what set of instructions defines computer science! Of course, I have no clue what set of instructions defines computer science. Also, I am not sure there is any meaning to this question, outside of some metaphysical ontology that the "world" runs on a computer, or something like that, which you have expressed earlier. --Powo 23:38, 9 November 2005 (UTC)

Computer science, as the term is used in English, is the study of computation and the surrounding subjects -- things like data organization and retrieval; algorithms; programming language and operating system design; and so forth. But the term usually isn't used to include (say) electronic engineering, or computer applications training (how to use Word), or how to manage programmers.

Computer science includes work done in both academia and industry. Academic CS would imperil itself if it ignored the work of industrial researchers -- like IBM's Ted Codd, who invented relational database theory. Luckily, academics don't neglect industry, and today many of the problems worked on in academia and industry are very similar: such as large parallel systems (clusters; grids; whatever you like to call them).

(I agree with what you mean, but on I dont think academia restricts to universities. At least I was thinking of the acception of the word which includes researchers working at universities AND similar institutions, e.g. the famous IBM research labs!!! --Powo 23:38, 9 November 2005 (UTC))

Nonetheless, it is an error to say or to imply that any "body of knowledge" having to do with computers is thereby computer science. The field has its limits. I for one would place modern HCI outside of computer science -- industrial HCI these days is no longer limited by the computer side of the equation, but rather by the human side -- that is, by programmers' and engineers' (lack of) knowledge of human factors. --FOo 06:58, 9 November 2005 (UTC)

I do not disagree that the study of computation is excluded. The study of computation, however, exists as a higher-level area within computer science. The study of computation doesn't define computer science, alone.

I've noticed you stated, "limited by the computer side of the equation, but rather by the human side." Does this mean you believe computers and humans are different like a thing and a person? Do realize that "computer" was the formal name given to a person that computed as a job, as a computer is simply "one that computes." It wasn't even a thing until more recent era. In this high-tech era, a computer more is more found as an electronic device in common sense. Consider these facts, and you'll notice that "computer science" changed by high-tech influences, but that doesn't mean its knowledge has to exclude the everything at the time it was founded before high-tech electronic devices were involved. Is it a science, yes. In fact, some colleges and universities have computer science under the department of Science (or "Letters & Science"). Others have it under Mathematics, Information Technology, or Engineering. Some have it under two or more. It is a science made by a computer. I'm sure we don't want to be consider a machine, so the difference between computers and humans is stronger today. If you look at the expression "computer science" and think of that computer as a person instead of a machine, it'll help understand the roots of the "body of knowledge." Today's computer scientists luckily do not have to tediously act like a computer as those did in the past. ---- Mr. Ballard 15:27, 9 November 2005 (UTC)

Ah, now you're making a historical claim, and that's one for which we can ask for evidence. Can you give any evidence that the term "computer science" was ever used with the archaic sense of "computer" you describe? I disbelieve this claim; please prove it. --FOo

Here are a few as requested. - Mr. B

  • computer - "Originally, a "computer" (sometimes spelled "computor") was a person who performed numerical calculations under the direction of a mathematician"
  • history of computing - "People were computers, as a job title, and used calculators to evaluate expressions."
  • Computer History - "The first computers were people!"; "Computer was originally a job title"

Do you need more?

I've noticed a lot of sources use a timeline of computing of late BC. Those timelines generally follow those that used numerical methods. It is of interest to me why those timelines don't show other non-numerical devices, like the great pyramids which had devices to compare (compute) locations of stars and planets. ---- Mr. Ballard 23:54, 9 November 2005 (UTC)

Oh, I fully agree that the term "computer" archaically referred to people whose job was arithmetic. But that isn't what I asked you for sources on. I asked you for sources on your claim that the expression "computer science" was ever used to refer to what human computers did. --FOo 17:12, 10 November 2005 (UTC)
Good question. You don't point out exactly in what terms the referenence is used (of what you request), but I assume you don't mean you want something that specifically states "Mr. Blah did computer science in 1910 by hand." It won't be that easy to find. Oh, I can cite sources if needed, and I'll only give a summary for now.
  • Only after 1940s what used to be "computing machines" before became to be known as "computers."
  • The suffix "er" describes a person, like "teach" and "-er." (Well, it used to until machines.)
  • Physicist was the preferred titled until the scientific calculations were performed by computers.
  • In the transition where computing machines became the computers, physicists became computer scientists, and what were human computers were replaced by artificial intelligence (which became a big part of computer science besides computation).
  • With deduction applied to your question for sources on did human computers do "computer science," it is a tricky question since humans aren't considered artificially intelligent.
  • However, the word "finger" is more of a modern invention then "digit." Next time you try to pass a tricky question on me, I'll remind you to be sure to count your "dig it"s when you run out of toilet paper. ---- Mr. Ballard 00:22, 11 November 2005 (UTC)
OK, I see you don't actually have any sources for the idea that the term "computer science" was ever used with reference to human "computers". So I'll disregard that claim until you do, and will consider any further attempt to insert it into the article to be unacceptable. Thanks for your clarification. --FOo 03:15, 11 November 2005 (UTC)
OK, I see you like to jump to conclusions quickly without any serious debate. I stated I do have sources, but why didn't you even acknowledge what I gave so far. I could tell by your tricky question that you wanted to jump to conclusions, and knew I better state a summary (even the humorous part). I haven't seen you try to give any sources in contrast. ---- Mr. Ballard 14:00, 11 November 2005 (UTC)

Why non-standard definition does not not belong in Wikipedia

A posteriori remark: The term "non-standard" definition hereabove refers to the following definition: The accumulated knowledge through scientific methodology by computation or by the use of the computer

Dear Mr. Ballard, Your definition is a minority definition (yours only, since you still have no reference of anybody using computer science with your meaning), I think you agree with that. Summarizing your point of view, you say computer science is science done through the use of a computer, where a computer has to be understood in its archaic sense, and that it is a very old science (archaic computers existed long before electronics). In this sense, your definition of computer science is an etymological definition. (Although the standard etymological definition is the science of computers). I understand your definition. However, I think your definition does not belong in Wikipedia, let me tell you why:

  • Your point of view is innovative and unrecognised as legitimate in the community. Therefore, it has no place in an encyclopedia before it gains its legitimacy, e.g. by defending your point of view through publication in appropriate journals or conference proceedings.
I didn't invent it. I just compiled it from sources. - Mr. B
  • Those who have expressed themselves here have all said they disagree with you.
This is anot true. Only you, powo, have made such alienated claim. - Mr. B
  • Your definition is in contradiction with claims of world famous scientists like Dijkstra (Turing award) and Feynman (Nobel price). Let me remind you that Dijskra says that computer science is not (much) related to computers, whereas your definition puts computers as a central element. Feynman says that computer science is a YOUNG science, whereas you understand computer science as the body of knowledge accumulated over hundreds of years through the use of (archaic) computers. (Full citations of Dijskra and Feynman from which I deduce these two facts are on the main article page).
You have stated that definition is a contradiction. I have found otherwise. - Mr. B

Because of what I have just said, your definition doese not belong (yet) to an Encyclopedia. From what I understand of Wikipedia, my previous statement implies your definition does not belong (yet) in Wikipedia. Btw, gentlemen, let's stay cool about all this: no toilet paper, fingers and black holes ;) --Powo 09:13, 11 November 2005 (UTC)

I understand you want some solid background on it before you accept it. That is fine. Given the nature of computer science, I don't think you'll find exactly what you want. As many have claimed it to be a young science, there is no doubt much yet to concur.
Do try to find other sources to make claim to what computer science is and how it became a fully recognized standard. This is one area that I believe when the consensus on wikipedia says "one should cite sources" that the "should" isn't a "must," and the scientific point of view comes into serious use. ---- Mr. Ballard 14:17, 11 November 2005 (UTC)

You are not a serious party, Mr. Balhard.
I am trying to be of good faith, and I feel like you dont.
You say:
I didn't invent it. I just compiled it from sources. - Mr. B
You are back into metaphysics, it seems.
You say:
This is anot true. Only you, powo, have made such alienated claim. - Mr. B
Either you lie, or you are amnesiac! Other users who have expressed themselves are either agains your definition or in favour of the one I (we) propose, they are:
* Wouter Lievens
* Stan
* Mpeisenbr
* FOo
You say:
You have stated that definition is a contradiction. I have found otherwise. - Mr. B
Your definition implies: computer science is [(STRONGLY RELATED TO COMPUTERS) and (A SCIENCE WHICH IS CENTURIES OLD)]
Dijksra's citations says (STRONGLY RELATED TO COMPUTERS) is not true.
Feynman's implies (A SCIENCE WHICH IS CENTURIES OLD) is not true.
Since when does the conjunction of two false becomes true???
I am new to Wikipedia. I have made a few contributions from place to place, but the most time I have spent arguing with you, and I am starting to be tired of it. I feel like it's a waist of time. Your attitude is like a demonstration of the limitations of Wikipedia... I am criticizing your attitude because your last remarks lack good faith, which is a shift from your previous posts. --Powo 16:47, 11 November 2005 (UTC)

About the contradiction thing, I agreed with Dijkstra that it wasn't about computers as in his quote. Instead, computers still are significant to determine the constitution of the science.

You've noticed the humor and questioned my seriousness. I knew one wouldn't take it too seriously, but this is real. Without the need to remorse on questionable seriousness, let this discussion lighten a bit.

Physics, Computers, and Cybernetic Biotechnology

I read some articles to try to grasp your point of view more. I read the ones which express computer science isn't a science. Perhaps, it'll help to relate our arguments easier. One thing I've noticed in such "not science" arguments is that they only limit their subjects to high-level practices instead of lower-level tangents to physics. It is those lower-level pieces that allow the higher-level to exist. When people walk up to a computer, they see the higher-level machine. They have no clue what happens at the low-level. Much hard work has been done to automate the computations and the physics. We don't use big clanky steam powered machinery, anymore, for our day to day web browser! It's like something magical to non computer users.

Non computer users tend to seperate realty between what a computer is and not. A non computer user would never allow themselves to be considered a computer. The computer today, however, was very much intended to replace the computer, which was human, of yesterday.

The whole process to replace the (human) computer (or to automate computations) into machinery started computer science. It's not about the computer. It's about what can be done to replace the computer. Although mathematics was used heavily, artificial intelligence was more significant in computer science. Those that argue computation (mathematically) is what computer science is about also tend to argue that the science started well before physics. Since computers performed many physics based calculations, I doubt that is true. We could argue that artificial intelligence started way before computer science, but it couldn't be scientifically prooven until the tangents between physics and computer science existed, which they do now. Those tangents are the foundations of computer science.

One earlier psuedo artificial intelligence shown was the abacus. It wasn't a computer. It was a state machine, memory. People had to physically move the beads into their positional states. It served as a memory device to allow one perform other calculations. Pencils and pens are much more abundant now, we don't need the abacus anymore. It wasn't much of artificial intelligence because the abacus didn't think for itself. The abacus had a computer to think, and the abacus was the the computer's memory. It was a physical device which science can proove works.

My fascination is with cybernetic biotechnology. Computer science really doesn't exist yet until we have fully proven computers (the non human kind) can think for themselves. Until then, we have cybernetic biotechnology. Until then, we still have human computers because to compute means to think, and yesterday's machinery still hasn't thought by itself. We do have solid foundations of computer science, fortunately. ---- Mr. Ballard 00:34, 14 November 2005 (UTC)


I just did a bit of a cleanup edit, mainly affecting the summary which was really terrible (sorry...). Some quick notes:

  • If you want to argue about the definition of computer science you can now do so here: Definition of computer science .. have fun. I created it, moved content over, and linked it in very prominently.
  • The history section needs work. The material here should be moved to History of computing and then that article should be re-summarized here.
  • There's a LOT of duplication between "Fields of computer science" and "Major fields of importance for computer science"... (and the second one, is just a list, which should probably be done with a category or something)
  • Etc....

Sbwoodside 08:56, 15 November 2005 (UTC)

Not really an improvement. This article should be a substantive summary of the field, not an index of links. The definition is exactly appropriate for this article, not a separate article; if you delete the unsourced and unsupported opinions of amateurs, it's really not that complicated. But I'm tired of people mangling this article, so I think I'm going to take it off my watchlist - have at it. Stan 14:17, 15 November 2005 (UTC)
The argument about the definition should not be carried out in the summary of the article. Sbwoodside 00:32, 16 November 2005 (UTC)

Sbwoodside, I'm glad you tried to do this layout. We should merge the defintions back into the article.

I thought about how we could smoothly gather the different view points without worry. I remember that I read computer science was originally based on principles rather than a discipline. The discipline began later within academia. Perhaps to point out the principles and the transition to the discipline is easier than a definition in opener. One of the easiest principles to pick out is to automate computation. ---- Mr. Ballard 15:19, 15 November 2005 (UTC)

Not really an improvement in my opinion either. You say CS is mainly concerned in the development of software, I am of the opinion that software development is neither computer science, nor science at all. Gee, development of software is (computer) science? Like developing a... word processor??? No way! You say computer data structure is one of the two main areas of CS? In the university I am in, I can only think of one course on data strcture. (Whereas I agree there are at least...hum 1,2,3,4...5 course on algorithmics I can think of straight away...). What do you mean, is it one of the areas where the biggset achievements have been made, one of the most active research areas? Maybe you are right, but I did not have this impression...--Powo 19:47, 15 November 2005 (UTC)

There are two sides to software that would fit science and non-science. Most of the higher-level software hides all the tangible physics of what software accomplishes in its operations. Beyond that it becomes math, database theory, cognitive theory, art, protocols, etc. ---- Mr. Ballard 23:09, 15 November 2005 (UTC)

Another view: I am involved with the Wikipedia 1.0 project, and this article is one of about 160 we have listed as a core topic (a "must have") for the print/CD version of Wikipedia. I am not an expert in this field, but I agree with the assessment from a few weeks back by a colleague on the project, "Usable, much of it is a list, no refs." I wonder if it would be possible to (a) distil some of the content of textbooks in the field to describe the main aspects (this would provide some references too) and (b) rewrite some of the long lists in another more encyclopedic format? I suspect a lot of this could be done without controversy and disagreement. Thanks, Walkerma 06:18, 22 November 2005 (UTC)

Can we all agree on anything?

OK, so let's see if we can agree on any of the following (some third party, some mine) statements at all. I'll break them down into small bits that we can individually analyse.

1. Computer science is "the branch of engineering science that studies (with the aid of computers) computable processes and structures" (WordNet)

  • (a) a "branch of engineering science" agree or not?
No. CS has roots in physics. Engineering doesn't cover the lower-level of computer science. There is a CS that is a branch of E. - Mr. B
CS roots are in physics? I thought mainly math Sbwoodside 02:27, 17 November 2005 (UTC)
  • (b) "studies with the aid of computers" agree or not?
No. The aid is a related benifit. - Mr. B
  • (c) "studies computable processes and structures" agree or not?
No, but I agreed that is a subject within computer science. - Mr. B

2. Computer science is "the study of computers, including their design (architecture) and their uses for computations, data processing, and systems control. The field of computer science includes engineering activities such as the design of computers and of the hardware and software that make up computer systems. It also encompasses theoretical, mathematical activities, such as the…" (britannica)

  • (a) "the study of computers" ?
No. Another subject of CS. - Mr. B
I tend to agree with you... unless it means "the study of theoretical computers" (e.g. Von Neumann machines, Turing machines, etc.) and even then, it's just a "branch" Sbwoodside 02:27, 17 November 2005 (UTC)
  • (b) most important aspects are "design (architecture), computations, data processing, and systems control" ?
No. Importance of those issues depends on interests or requirements. QA isn't interested in any of those. - Mr. B
  • (c) includes "design of computers and hardware" ?
Yes it includes it. - Mr. B
Wouldn't that be computer engineering or electrical engineering?
  • (d) includes "design of software" ?
Yes it includes it. - Mr. B
  • (e) includes "engineering activities" ?
Yes it includes it. - Mr. B
  • (f) includes "theoretical activities" ?
Yes it includes it. - Mr. B
  • (g) includes "mathematical activities" ?
Yes it includes it. - Mr. B

3. General issues:

  • (a) computer science is a branch of science ?
No. It is a science on a different foundation. I'll explain more later. - Mr. B
Well, I would say CS definitely does NOT use the scientific method therefore it's not a branch of science. The name computer science is basically a misnomer. But what is it a branch of then? Mathematics? Or is it just what it is, a new discipline that doesn't fit into an already present niche? Sbwoodside 02:27, 17 November 2005 (UTC)
  • (b) computer science is a branch of mathematics ?
No. Math has been a major tool of computer science. - Mr. B
  • (c) computer science includes the act of creating software ?
No on principle but yes on discipline. - Mr. B
  • (d) computer science includes the theories of computing ?
Yes on discipline. - Mr. B
  • (e) computer science is the study of computing or computation ?
Yes on discipline no on principle. - Mr. B
What do you mean? Sbwoodside 02:27, 17 November 2005 (UTC)

If can at least come to a consensus on the talk page then perhaps we can stymie the endless edit wars in the article itself and get a real article written. Sbwoodside 00:30, 16 November 2005 (UTC)

used "transpired" to avoid definition in opener, remerged examples why?

User:Jhballard why did you want to avoid a definition in the summary? Have a look at WP:LEAD - "the perfect article: Begins with a definition or clear description of the subject at hand. This is made as absolutely clear to the nonspecialist as the subject matter itself will allow." Sbwoodside 00:43, 16 November 2005 (UTC)

The computer science definition is obviously much argued. I believe the scientific point of view is of use besides WP:NOR to determine the best definition, as there seems to be no majority consent to any specific definition. Based on the scientific points, we know the computer science has principles as well as it became a discipline. I'm sure the difficult part is that we are pretty familiar with the slang associated with computer science and computers. We can make it a clear description of computer science and avoid a definition of endless edit wars. ---- Mr. Ballard 15:16, 16 November 2005 (UTC)
The first sentence should be a definition. If we can't come up with a specific definition, we should provide a broad definition and state its limitations. Hence my proposed "Computer science is broadly the study of computers and computation" -- what's wrong with it?. Fredrik | tc 20:32, 16 November 2005 (UTC)
One would argue that computer science is a body of knowledge and to study it is optional -- especially since we have computers with a limited application of artificial intelligence that can study computation for the user. Anothewords, one doesn't have to principally study computers or computation to be involved with computer science. The debate on these talk pages have brought up many different definitions that proven it's not so simple to define or at least argee on a definition. Let's try a clear description for awhile and see if we can determine a good definition later. ---- Mr. Ballard 21:27, 16 November 2005 (UTC)
You're interpreting the word "study" way too narrowly. It also means, per, "a branch of knowledge". Fredrik | tc 21:35, 16 November 2005 (UTC)
This article used to have as clear a definition as is possible for this field, and since then it's been mangled by hamhanded and amateurish attempts to invent new definitions. Mr. Ballard's hairsplitting is completely unhelpful, and as far as I can tell he is the only one for whom "it's not so simple to define". Actual computer scientists have a pretty good idea of what their day job is, and don't actually argue about the definition of the field. Stan 23:00, 16 November 2005 (UTC)
How about "Computer science the discipline involved with computers and computation." I agree that studying isn't broad enough since it doesn't include the practice of computer science. Stan : can you point to a previous version that you thought was good? Do you mean this one: "Computer science (informally: CS or compsci) is, in its most general sense, the study of computation and information processing, both in hardware and in software. " ([1] Sbwoodside 02:21, 17 November 2005 (UTC)

History_of_science#Emerging_disciplines has a definition of computer science as well. Sbwoodside 06:33, 17 November 2005 (UTC)

Looks like somebody needs to look up what the word "transpire" means. It means "breathe", with the metaphorical meaning of "to whisper a secret" or "to let the true story come out". It doesn't mean to begin or to be founded upon somethng, and it wasn't even minimally appropriate in the way that it was being used in the intro. Reverted. --FOo 06:44, 17 November 2005 (UTC)

YA new summary then. I've tried to merge the positive points of the long-standing old summary [2] with the summary that was just reverted by Fubar Obfusco because of the incorrect (I agree) use of the word transpire, and with my own previous addition of the word "theoretical"... to distinguish between hardware and software, which are arguably (and I think) practical concerns, and the theoretical part of CS, which is huge of course, which may not actually get into implementation as a major concern. Sbwoodside 07:25, 17 November 2005 (UTC)

It seems to me the current definition is too much of the type: there is "software, hardware, the rest is theory". Software engineering is not part of computer science, but part of computer engineering. The big bag called "theory" in the current definition is in fact CS. Algorithmics, for example, is not theory: its the heart of CS. Computer Scientists have a very precise definition of what theoretical Computer Science is, probably its kernel is algorithmic complexity. Broadly speaking, Computer Science is the science that studies computation. "Computation" is a word which had fallen out of use, and it was revivified to describe the new discipline that emerged since mid XX century, a new discipline that did not exist before. Please forget any definition ment to include archaic definition of computers. BTW numerical analysis is not part of CS, its part of maths. Please do realise that CS and computer engineering are not the same, although they are siamese-sisters, sometimes called CS&E. When people talk of CS as an engineering science, they are talking of CS&E, which is allright, but we should know what we do... Also, some huge confusion comes from the fact that Computer Science (a concept, thus the capital letters) can not be understood by looking at the definition of both words, and that people abusively use "computer science" to talk of anything related to (modern,digital) computers. Computer Science is a science, thus computer scientists are scientist: they do research, publish papers, contribute to science, etc... The rest is not computer science. Most people who where trained as computer scientists do not work as computer scientists, because as in every science, a drastic selection is made at each step. The confusion comes from the fact that CS is so closely related to computer technology, abusively called computer science. CS is what is being tought in CS departements of universities. Since there is all this confusion, we could include it in a NPOV spirit, but the fundamental definition should be clear, simple, and broad: CS is the science that studies computation.--Powo 22:18, 17 November 2005 (UTC)

Powo, what the first sentence says now: "Computer science is a discipline that deals with all areas of computation" seems like it's effectively the same statement. As far as the rest of it goes, it's clear that we can't please everyone. As you say, in the spirit of NPOV, we have to include the operational summary even if it's not the definition a purist might choose. I think that it's worth covering that there's a disagreement over the definition - especially in Definition of computer science. The problem that arises is when that discussion becomes a barrier to having a useful summary for newcomers to the topic. Sbwoodside 04:24, 18 November 2005 (UTC)
Yes, sure I agree to your sensible point of view. I have looked at the CS page in french. It is broad too... In french, CS translates to "informatics". The term "Informatics" is not not as implicitely related to the scientific aspects of CS as the term "Computer Science" is. So... maybe it could be explained that in different context, CS englobes more or less. The two extremes being academic and popular language contexts. However, my non NPOV is that emphasis should be more on the academic side than on the popular language side.--Powo 08:32, 18 November 2005 (UTC)

To end this section about "transpired," yes it doesn't have a single definition. It does have a definition that works very well, but as we see that is disagreement about it's use. I could have replaced "transpired" with "became known," and leave out the ambiguosity. It is a good example show a kind-of logic antonym to use against the word "study" or "discipline." Anotherwords, Computer science doesn't have a single definition, like to study computation. A body of knowledge is knowledge, not a discipline. The discipline is a tool. The expression "Computer Science" has become the formal title of the academic discipline since it represents the body of knowledge as its principle to exist. That is simple. Others here make it seem so hard to understand the difference between a title of a discipline and the meaning of the expression to be a body of knowledge.

I'm gald there is progress here to understand what we all want. There is almost no revert war (like the ones that happen more then once a day). At least we try to improve others work instead of complete revert. Do recognize this as progress. However, to call each other amatuers is or other names is immature. It's only intention is obviously the same as pychopathic bullies. Settle down I say to those that know what that meant.

As proven there computer science translates to information technology or such in other languages, we will continue to see arguements from all sides of what computer science really is about. I'll still stand that the definition I added is works well, but it is obviously to simple for other to understand. It is obviously a definition that I mistakenly added that only logical computer scientists can agree to its point. It's in the same position when I or other really good programmers run into when they write code, the code is easily understood by other really good programmers, but others want a translation, like code comments. Like I said many times, I compiled it from diverse sources. I found none that purely agreed with one another.

Powo, I'm glad that you pointed out you think there are only two extremes to only explain computer science, academics and popular contexts. There are more. The discipline isn't all in academia, as there are the technocratic institutions. That isn't to imply technocracy doesn't involve academics in function, but there are systems to use the body of knowledge of computer science without the help of academic institutions or outside of what would be the academic realm. Becuase of that, I'm against to make the article not include anything that isn't specifically of academia. ---- Mr. Ballard 15:14, 18 November 2005 (UTC)

I can't figure out what you're trying to say now - "against to make"? "specifically of academia"? That's not even coherent English anymore. Stan 14:34, 22 November 2005 (UTC)
Your style is different, Stan. Some say "to make" while others say "making." — Dzonatas 05:50, 23 November 2005 (UTC)
Actually not - my "style" is to use correct English. English does have grammar rules. Stan 00:53, 24 November 2005 (UTC)
If you are so knowledgeable, you should offer help, instead. How would you like it if someone publicly accused you of grammar usage? Just like there are better ways to write in the English language, don't you think there are better ways to make your point? Perhaps, there is an e-mail link on the user page to communicate things that are really unrelated to the article, or that are personal and can be avoided in public forum. Thank you. — Dzonatas 01:40, 24 November 2005 (UTC)
If I use bad grammar, I expect to be called on it - happens all the time in fact. The goal is to write with the best possible language, not to make excuses for badness. Stan 20:20, 25 November 2005 (UTC)

Sure, CS is so closely related to technology and engineering, the boundary often so blurry, it is sensible to let this be refelected in the article. Still we need a mainline to follow, and I vote for the academic/scientific line.--Powo 18:06, 18 November 2005 (UTC)

I'm comfortable with saying that CS is an academic discipline. I think that most practising "computer scientists" would be engaged in academic work or in serious commercial research (like with "scientist" in the title). Sbwoodside 02:47, 24 November 2005 (UTC)

History of computer science

My bad, it appears that History of computing isn't about computer science at all, but more like the history of bean counting and calculating the values of functions. There is not in fact any History of computer science article at all that I can find. History of computer science could either be covered here or in a new article. Sbwoodside 06:31, 17 November 2005 (UTC)

Physical phenomena or mathematical introspection?

A posteriori, it seems to me the discussion has taken a new turn from this point. A definition was introduced which could be summarized as implying that a computation is a physical phenomena, and that CS therefore is a study of the physical world. C.f. herunder for details. --Powo 22:31, 30 November 2005 (UTC)

Complete definition or description of Computer Science

I've consulted more sources beyond dictionary (or encyclopedic) entries to find a more complete definition of computer science. Currently a few wikipedians agree to a definition:

Computer science (abbreviated CS or compsci) is an academic discipline that deals with all areas of computation, both in theoretical terms, and in hardware and software.

That only seems to cover a popular subset of computer science, and I hate to see the definition fall short. I don't intend to remove the popular course, but I want to nail this down more. I know that "deals with all areas of computation" doesn't quite cover it since a computation, its mechanical structure, is the result of the research. I know what its intention is meant to cover, but we can improve it. Computer Science is science that also ecompasses the popularity of the engineers work. That popularity is the obvious confusion and is not a means to make the article emphasize only those aspects. The article should point out the difference between computer scientist and computer science engineers. We can still do this with an academic emphasis.

I like to point out some things to consider. Computation is commonly performed by algorithmic tasks, and definition of algorithm has heavily influenced the definition of computation, unfortunately. Also, computation is very similar to the word computer since they both start with "comput-". These are obscurities. Some have used the word automaton instead of the word computation. The word automaton isn't definined like computation but follows the same principles. The word is useful to avoid obscurities.

Here is one proposal for the opener:

Computer science is an academic discipline based on the mechanization of computability. CS involves the design of computer systems and their application to science, industry and management. The CS discipline includes the fundamentals of computer languages, operating systems, and the formal mathematical tools required to use the computer in solving complex tasks. CS has a popular engineering aspect that emphasizes more on computer hardware and software interaction and includes knowledge of electronics, also known as Computer Science & Engineering. The core academic program in CS covers theory, hardware and software.

I like to add a little more, but that expands the opener a bit. — Dzonatas 15:41, 25 November 2005 (UTC)


Not bad! But what do you mean by based on the mechanization of computation? This is obscure to me...--Powo 16:18, 25 November 2005 (UTC)

Although you didn't give a reason why you thought it is obscure, we should expand on it since mechanization has an unintended influence on the word. — Dzonatas 20:33, 25 November 2005 (UTC)

This is an awful paragraph. "mechanization of computation" doesn't make any sense (what is a "nonmechanical computation"? is binary search not O(log n) if you do it by hand?). What is "popular engineering"? Singling out languages and OS is misleading, those are just a couple specialties, and the "solving complex tasks" bit is meaningless filler. The "science, industry, and management" sounds like it came out of a recruiting brochure, and the repeated references to hardware put too much emphasis on what is better characterized as computer engineering. There's a reason why I originally defined as just "study of computation" - more elaborate definitions will invariably exclude a well-known part of the field. Stan 20:36, 25 November 2005 (UTC)
It stated "mechanization of computability" and not "computation." Another source indicated "The mechanization of abstraction" which seemed like mathematics or artificial intelligence. Again, the "study of computation" is not a consensual definition among verifiable and reputable publications. I used the program descriptions of a few universities in different areas (not some hyperbolic recruiting brochure). "Hardware" was mentioned as much as "software." I like to use the definition from the thesis but the words then meant a specific idea. Maybe we can agree to accept a modern version that is modified slightly from the thesis to make it simply clear. "Computer Science is an academic discipline based on the science of purely mechanical processes and computability." I would use "Turing machine" but we know over time that "consciousness" and its obscurity from physical reality is still not a proven part of any universal machine, and Turing emphasized that a human that performs effective methods is a form of a universal machine and not the human itself. The "consciousness" part is, therefore, left out of Computer Science. Since mathematics is based on learning and learning is a part of consciousness, that differentiates mathematics from computer science. This is why we also can not use the phrase "that deals with all areas of computation" because it's not cleary delimited from consciousness. — Dzonatas 23:13, 25 November 2005 (UTC)

It seems to me the word computation already implicitely refers to CS. The reason (this should be checked) is that the word computation had fallen in desuetude, and was revified with the emergence of CS. I like the definition of stan: the study of computation, it is broad yet specific to CS. Perfect fo the intro... I think there is a concensus in the comunitiy about this type of definition. E.g. "procedural epistemology" was proposed. Is this not (although more esotheric) very close to "the study of computation"? It seems to me "computation", "procedural", "mechanical" or "causal", etc... are all almost synonyms in the constext of CS. However, "mechanical" is clearly not standard terminology, so I would porefer a definition based on procedure or, even better, computations: a word which was invented (more precisely, taken out of desuetude) just for CS!--Powo 09:09, 26 November 2005 (UTC)

You seem to imply it isn't so easy. Alas. "Epistemology" is philosophical, and so is the phrase "study of computation." They work great for those that already know or follow the philosophy, but they fail to explain anything to someone unfamiliar with the discipline. Simple catchy phrases always have that problem. Another problem is that it influences science as if it was philosophical instead of some solid organization, and I'm sure we don't want to make that mistake.

"Computation", "mechanical", and "effective" have stated synonym attributes only if one reads about CS in depth, but we still have to aim for the audience that never has read about CS. We can't assume that the readers know that the words in use are only for the context of CS or any particular article. We can, however, use such words in such a way if they are stated in the article to be used in such a way. I want to expand "purely mechanical process" a bit to make it less ambiguous on "mechanical." There seems to be heavy debate in past published papers on just what the universal machine can do, and it all relates as if to question the domain of the physical world or beyond. Certainly, the description of the universal machine allowed an assumption of metaphysics, but the debate (e.g. Church and Gandy) clearly states it works only by "effectively calculable" means. Therefore, if we add something like "based on the science of computability (i.e. "what can be computed," "how can it be computed," or "that which is computed") by purely physical forces and bodies" would make it more clear. — Dzonatas 14:28, 26 November 2005 (UTC)

All very amusing, but not suitable in the lead, which is for, as you say, the general reader. "Study of computation" does sound like a slogan, but for instance you can't add "scientific study" because many of the subfields work more like engineering or math, and "mechanical computation" has some very misleading connotations. Following paragraphs do have to expand on the concept, describing what kinds of things fall under "study" and what falls under "computation", distinguishing it from computer engineering. But there is a rule of thumb that readers fall away with each additional line of text, so the first line needs to be succinct. Stan 14:43, 26 November 2005 (UTC)

Only the lead paragraphs need to be brief, but the first line doesn't need to be so succinct. The first line needs to be clear description. For example, look at peer review:

Peer review (known as refereeing in some academic fields) is a scholarly process used in the publication of manuscripts and in the awarding of money for research.

That is even more than:

Computer science (abbreviated CS or compsci) is an academic discipline based on computability by physical forces and bodies.

There is already a page for computation. If one wants to study computation, then read about computation. There are several books about computation that are not related to Computer Science. — Dzonatas 18:13, 26 November 2005 (UTC)

"physical forces and bodies"? That's just bizarre. I defy you to find one single definition published by an expert that mentions that. CS is the study of computing in the same way that entomology is the study of insects - one article is about the thing itself, the other article is about the human activity of thinking about the thing. (Oh, and the "peer review" definition is a loser too - it does nothing to explain either the "peer" part or the "review" part, just says what is for, like saying "a car is an object used to go to the mall or to the beach".) Stan 20:58, 26 November 2005 (UTC)
You spoke (or typed) to soon. I already described above where "physical forces and bodies" came from. It is part of the definition of "mechanical" and "effective." Of course, those words have more definitions added to them since the time that Turing's thesis was written, so its best to just explain the simple definition of what was meant then, so we can avoid the continuously debated historical aspect of the words. Do read the thesis and the various peer reviews of it to gain more insight.

"One article is about the thing itself, the other article is about the human activity of thinking about the thing." -- Oh, so computing is about thinking and you think that CS is about thinking about "thinking?" That's bizarre. Try the cognitive sciences for that.

Stan, you may be able to program, but I believe you don't really understand what you program at the very low-level. There is that point where all operations done by a computer require some sort of physical activity and interaction with the real world, and that activity and the ability to make the physical world compute what we want is what Computer Science is all about. You, however, think it is only about computing or computation, and you've shown it is nothing about the physical world. Do realize that "computing without the physical world" is not Computer Science. — Dzonatas 00:05, 27 November 2005 (UTC)

Heh, you did look closely at my user page, right? I was lecturing undergrads twenty years ago about the definition of CS, I know all the ins and outs of the issue. A reference to physicality can be a convenient way to explicate the notion of effective computability, otherwise novices will handwave and assume infinite time or space is available when talking about algorithms. However, for the everyday work of languages or AI or databases, it's an uninteresting boundary, sort of like a person in Kansas not knowing or caring exactly how far north Alaska extends. We already have an article on computability, so we just need to refer interested persons to it, not attempt to repeat it in an oversimplified way. On the distinction between computing and CS, you brought it up, so I don't know why you're finding X and meta-X confusing; as my example pointed out, many other areas in WP make the distinction between topic and the study of that topic, so apparently a lot of other editors have no problem with the concept. Stan 07:16, 28 November 2005 (UTC)
Software engineers are not suppose to worry about space and time limitations when they design their programs, and the assumption is infinite space and a reasonable time. That assumption is not true, however, for any type of lower-level design. Perhaps, the signifigance of such boundary hasn't occurred to you yet.

It is written about several times through the Church-Turing thesis, its peer reviews, and its derived works. It's clear the intention was to bind the limits of computability to just the physical domain. The thesis states the universal machine can compute anything, and it further limits its computations to purely mechanical descriptions. I find this very simple, and I have known it for more than 20 years, also. Their was already a system to compute anything that existed before any notion of Computer Science. If you remove the physical limits of Computer Science, you remove the science, and you have then the point you have tried to make.

One thing you'll find of interest is a point made by the Turing test, and recent articles have not emphasized the point as when I learned about the Turing test 20+ years ago. It had a different perspective then. The point was not if the computer could emulate human like conversation, but the point was, given the technology then, could someone tell the difference between the electronic computer and a human being under a viel. The viel, given the technology then, was simply what was available -- three terminals where the "judge," the "computer," and the "human" could not see or hear each other and were limited to just the screen conversation. That was very possible scenerio centuries ago. Turing didn't seem to state some future possibility of a "holodeck," like in Star Trek, and the "judge" could personally see, hear, touch, talk, or smell and the "human" and the "computer," a solid holographic personage. Recent articles don't seem to emphasis the consciousness part. The conscious part of human is generally an exception to physics. Because of that exception, the limits of the universal machine were stricly set to the physical world. Turing reiterated the thesis in a way that subtracts consciousness: human clerks that only had pen and paper to follow instructions of effective methods. Anotherwords, the human clerks had to think in order to follow the instructions but they didn't have to be conscious of any decision being made by the instructons. The Turing test pinpoints where the consciousness is, or is not, in the physical world when the test can be really challenged and a result given. If the computer can execute a program that can pass the test, we can assume the the computer has real intelligence or consciousness or both. The computer, if fails otherwise, neither has consciousness nor real intelligence. Obviously, Turing went on in his life to try to create a better machine that could go beyond his universal machine, yet his work was incomplete with his "life" program. These are the reasons why he has been noted as the Father of Computer Science rather then any other significant work done by those who mastered computation before and after him. He tried to create, or program, "life." Is it a pun to call him a "father" for "life" program he did make? No, it just makes it that much more simple to understand Computer Science and what it is about. His work may be completed someday, "given enough time to program" it. For now by science, the consciousness is not part of Computer Science. Computation may generally require conscious decisions to be made, but those parts of compuation, hence, are not Computer Science. Do we need to write examples here about example instructions of computation that would require conscious decisions? If we do, ask yourself are these instructions computable by today's technology? Will they be computable by some future technology?

That is what computability conquers. And, that is why Computer Science limits itself to the physical domain -- to conquer it. There is computation, and there is reality. Seriously, tell me everything that we can't compute if and only if by purely physical forces and bodies, and I'll tell you what is not Computer Science. — Dzonatas 15:31, 28 November 2005 (UTC)

You've kind of drifted off into the weeds here with your personal theories; Church-Turing thesis has a better description. And I can assure you that real software engineers have to think about space and time; a beautiful design is useless if it depends on having more resource than is actually available. Stan 16:13, 28 November 2005 (UTC)
These aren't personal theories. I've read that wikipedia article of the Church-Turing thesis, and it only covers a select amount of information from the paper. Software engineers personally can worry about space and time, but in terms of the software they engineer the assumption is still infinite space and reasonable time. Other devices exist to worry about the space and time factors. The proper way to build a string append method is to not even have to worry about space, as software engineer should assume their is always enough space. Other devices, like the kernel or hypervisors, can worry about the space factors and alert the program if it wants to receive such alert. It's improper to build a string append method that checks for space usage at every instruction. They used to check extraordinarily like that, but "given enough time to program" we have other devices now that do the job. I was originally taught to program without the aid of a computer. There were no resource limits known. I just had a book, a pencil and paper. And, it was very effective. — Dzonatas 20:29, 28 November 2005 (UTC)
Do you actually work on software for a living? If we're even the tiniest bit sloppy about memory usage in GDB, the symbols in a real-life program like Final Cut Pro completely blow out the symbol table and bring the whole machine to its knees, just to mention one of my current problems.
Yes. Virtual Machines as a dynamic compiler in a run-time environment are my technical fascination. I've implemented one, with a static core, to help automate loan documents. It was part of a system that generated $5B dollars worth of loans in 3 months. Anyways, something like Final Cut Pro is bounded to a finite machine, the hardware layer. That would mean the Software Engineer must go above and beyond expectations and use hardware skills -- memory device mangement. A pure software engineer should think in terms of the universal machine, an "infinite tape." An engineer is about "human needs," and the software engineer are to design software to those human needs. We still have many of these so called software engineers that hit the hardware when they program, and they put the hardware needs before the priority of human needs, so they essentially aren't pure software engineers. With Final Cut Pro, this is the typical dilemma you also face. — Dzonatas 22:56, 29 November 2005 (UTC)

Just to remind people - the summary is not a good place to put your personal view of what Computer Science is. It needs to be clear, readable, comprehensible by a wide ranging audience (including non-technical people), and holistic on the topic. I think that the proposed change fails in a number of those areas. Dzonatas - if you think that there's something wrong with the Church-Turing thesis page, then make changes there. Since the summary of this article is so controversial, changes to it are likely to be hotly contested. The summary should reflect at this point be deliberately written to reflect a consensus view - things that we can all agree on. Which I think it currently does. Sbwoodside 01:12, 29 November 2005 (UTC)

The lead, or summary, as it stands on the page is original research. There is no source to it. Even a vote by wikipedians to a specific summary is still original research. The summary does not reflect the limits of Computer Science. It makes Compute Science appear more like mathematics, which it is not. I understand there are those that came from a strong engineering or mathematics standpoint for Computer Science, but those views are personal and not a primary source. — Dzonatas 05:46, 29 November 2005 (UTC)
While quoting from sources is commendable, you're using ones from the very dawn of computing to describe the present-day understanding of CS, sort of like using Galen as a source for anatomy. Note that "no original research" does not preclude original content, in fact we prefer people to use their own words. Stan 18:11, 29 November 2005 (UTC)
An example of a more modern and authoritative definition is simply the one from the ACM: "the systematic study of algorithmic processes that describe and transform information: their theory, analysis, design, efficiency, implementation, and application." No mention of mechanics or physics to be seen. Stan 19:01, 29 November 2005 (UTC)

Besides the "cut tape" delimma above (pun intended), if the words expresses the same intentions of the original source then I agree an editors own words may subsitute discussion. If the reworded phrases fail to bound the same means, I would not agree to such original content. The one from the ACM emphasizes information technology more than computer science, as IT is the pillar of their foundation. Perhaps, that definition belongs on the Information Technology article. — Dzonatas 01:03, 30 November 2005 (UTC)

However, the ACM is an authority, and you're not. Sounds like you're putting your personal opinion above that of a leading organization of computer scientists... Stan 04:04, 30 November 2005 (UTC)
Oh wow. I've talked to several people yesterday that claimed that acted appropriately within the law code, but when I started to read the specifics of the law code, I found they used buzzwords of the code and not the logical flow of the code. The group was suppossedly an authority on the code. Sometimes, an organization tries to use just enough of the context for its own right and wrong, but ignores the rest. This by no means concludes anything as if the ACM ignored anything in this context, the ACM isn't the subject I refered about here. — Dzonatas 15:36, 30 November 2005 (UTC)

Dzonatas, what makes you think this definition is refering to information technology, besides the word information in it? From what I understood when reading the article in which the acm gives this definition, they are trying to define what CS academic cursus should include, and they come to the conclusion that CS and CE are different yet so closely related that no CS training can exclude a CE training an vice-versa. They finally define the union of CS and CE as "the discipline of computing", for which they propose the above defintion.--Powo 09:53, 30 November 2005 (UTC)

Powo, the document states beforehand another definition of the body of knowledge of computer science, and then it later states the discipline of computing an a definition for that. It's pretty clear to use "computer science" and "computing" in different contexts, but the article doesn't specifically point them out. It does state a difference as to "what can be automated" as opposed to the computability aspect as "what can be computed." The article further explains that it hints and highlights divisions of the science, and it doesn't seem to specifically set any bounds on computer science, but it does on computing. It also considered the physical sciences a newer addition to CS than other foundations, but past papers have shown the physics and physical sciences are in strong relation. — Dzonatas 15:36, 30 November 2005 (UTC)

Dzonatas, your statements are mutually contradictory - first you say NOR, then you dispute using the ACM's definition (the association for computer science if there is one). Sbwoodside 21:29, 30 November 2005 (UTC)
They're inclusive. I just went back and made sure I wasn't too tired when I typed it and unintentionally left out constrastive phrases. IT applies to ACM (...computing machinery). They pillar their association on information and how it can be applied back into the sciences and other organizations. At least, that is what the outside-in view is upon ACM. The NOR part is about this content here on dicussion and not articles from the ACM directory. — Dzonatas 23:47, 30 November 2005 (UTC)
Dzonatas, I had a feeling (from what I recall) that the article was quite clear in explaining what the authors mean by CS, CE, and the discipline of computing. However, I guess you read it not so long ago so I believe you, but what is the point of your remark? Do you disagree with what I said, or is it to maintain your previous statement (i.e. that the definition is about information technology). Anyway... not really important...--Powo 21:47, 30 November 2005 (UTC)
It wasn't a strong statement I made to apply that definition to the wiki's IT article, since I used the word "perhaps" as a guesture to consider. The point is that the definition emphasized computer science principles less and more on principles of information technology. It's true that IT is now the start point before one proceeds into CS, academically. IT can be used as an interdisciplinary path for other fields. The audience of the article seems to fit those for interdisciplinary IT. (onword...) — Dzonatas 23:47, 30 November 2005 (UTC)

Here is a bunch of remarks, in hope it will help going forward. These are my personal POV's, and I have no claim that they are universally accepted!

- It seems to me that it is more usual to compare CS to mathematics than to physics. In this sens, the point of view of Dzonatas is minoritary, because it seems to emphasize strongly on the fact that a computation is a physical phenomena.

- Clearly, a computation is a mathematical object. A typical prototype is what follows from a TM, though there are other models, more or less equivalent (c.f. history of RAM for differences between RAM and other models). Plenty mathematical models of computations, extensive litterature, etc... abound in this direction.

- In my opinion, the point of view of Dzonatas is no nonsens: a computation can be a physical phenomenon. However, this is a far less common way of thinking of a computation. What exactly is a physical computation is fuzzy. However a core of physical phenomenon, I believe, would make immediate concensus. E.g. what happens inside a digital computer is clearly a physical computation. But there is more than that to be putted into the bag of physical computations. I have no knowledge of work defining what a computation is from the physical point of view. The more interesting and exotic example I can think of was an article I read in an EATCS bulletin, where comutation where done by a chemical reaction in test tubes... Ultimately, and without much meaning in my opinion, it has been previously claimed on this talk page that every physical phenomenon is a computation, because the world itself is a computer. (I disagree with tgoing in that direction, its metaphysics, not science in my opinion).

It seems to me CS is a particular science: very much like mathematics, however with a strong link to a physical world. In the point of view (my interpretation) of instrumentalism, one difference between CS and physics is that, contrary to physics, CS started by being a purely T-term science, with no real O-terms and statements. Another difference is that the O-terms studied by CS are not natural, but constructed by humans. On the other hand CS studies computation and computations are T-terms , but also O-terms. On the contrary, probably mathematics has no O-terms, which makes CS different from mathematics. In fact, under some definitions of science, it could be argued this makes CS a science while mathematics are not a science.

Sumarizing, I think CS is well defined as the study of computation, computation being both a mathematical object and a physical object. However, the current definition(s) put(s) a strong emphasis on the physical part (mostly because of the word mechanical), in accordance with the point of view of those who defended this definition. This is a non NPOV and should be tempered. Further in the article, the existence of physical computations and computations as mathematical objects could be explained, and instrumentalism may be a good inspiration. BTW, if I was quizzed about what the extent of mechanistic explanation is, I dont think I would find out it is refereing to CS! --Powo 21:47, 30 November 2005 (UTC)

It wasn't point to state computation as a physical phenomenon. Computation, however, involves a greater deal then just the physical domain, and that is my point. Whereas, computer science is bounded by the physical domain; therefore, a subset of computation is a phenomena in computer science. (I'll respond more, later...) — Dzonatas 23:47, 30 November 2005 (UTC)

"extent and limitations of mechanistic explanation"?????!!!!!

Is this ridiculous or what? Here we have an article about a core topic that other people in Wikipedia are saying is one of the most important articles in the wikipedia, and every day there's a crazy new summary? I have a degree in CS and I have to read pages and pages of arguments to find out what the heck "mechanistic" means and here it is in the first sentence of the whole article.

Dzonatas and others, please read WP:LEAD.

The lead should briefly summarize the most important points covered in an article in such a way that it could stand on its own as a concise version of the article.

Does this article explain what "mechanistic explanation" is? No, it does not! So if you're going to stick that in the lead, write a section on it, explaining what it means -- first!

Please -- the summary of this article should follow the guidelines in WP:LEAD -- and if it isn't, I consider that good grounds for reversion. Which I am now going to do with the "mechanistic" bit. Sbwoodside 05:36, 1 December 2005 (UTC)

The article doesn't define "mechanistic explanation" redundantly as a dictionary, no. It does touch basis to relate where the expression starts. Computation isn't defined, as you say, in the article, so I wonder why you reverted to "all areas of computation." However your right, it does need improvement, and to revert to a definition that is propositionally false about computer science doesn't improve the article. I'll take some time to recollect some sources I have come across. In the mean time, various dictionary entries:

mech·a·nis·tic adj. 1. Mechanically determined. 2. Philosophy. Of or relating to the philosophy of mechanism, especially tending to explain phenomena only by reference to physical or biological causes. 3. Automatic and impersonal; mechanical.

mecha·nisti·cal·ly adv.

Source: The American Heritage® Dictionary of the English Language, Fourth Edition


adj 1: explained in terms of physical forces; "a mechanistic universe" 2: of or relating to the philosophical theory of mechanism 3: lacking thought or feeling [syn: mechanical]

Source: WordNet ® 2.0, © 2003 Princeton University

Main Entry: mech·a·nis·tic Pronunciation: "me-k&-'nis-tik Function: adjective 1 : mechanically determined <mechanistic universe> 2 : of or relating to a mechanism or the doctrine of mechanism 3 : MECHANICAL - mech·a·nis·ti·cal·ly /-ti-k(&-)lE/ adverb

Source: Merriam-Webster OnLine

mechanistic • adjective Philosophy relating to the idea that all natural processes can be explained in purely physical or deterministic terms.

Source: Compact Oxford English Dictionary

These popular dictionaries all have a similar means for the word "mechanistic." It is Turing that stated "purely mechanical, " and it was von Newman that stated "extent and limitations of mechanistic explanation." It is obvious that the physical aspect is significant to computer science. "Computation" can mean procedural calculation or logical method. Turing made such computation more finite as phrased "effectively calculable." Another section that covers these points as well as computation included in general would help. — Dzonatas 15:34, 1 December 2005 (UTC)

You know you're losing on clarity when you need to quote dictionary definitions. Now think of a way to define CS such that a 15-year-old (for instance, one wondering about college majors) will understand without having to parse von Neumann's philosophical musings. Stan 17:41, 1 December 2005 (UTC)
Guess that is why I wrote "in the mean time" so I can go focus on something else for awhile and not deeply explain how to look it up. — Dzonatas 12:39, 2 December 2005 (UTC)

If it helps, I wrote a computation stub.--Powo 19:01, 1 December 2005 (UTC)
Yes it will! — Dzonatas 12:39, 2 December 2005 (UTC)

Brand new uncontroversial(?) definition

Hi folks. I just added a definition which I tried to make the less controversial. I failed, for sure, however I reacon it is less controversial than the previous one. Here is my proposition:

Computer Science is a young academic discipline with roots in mathematical logic, linguistics and electrical engineering. Its very fast development is closely related to the emergence of digital computers, however it is widely recognised that it does not restrict to the study of computers. Computer scientists generally agree that the concept of computation is central to computer science, and the proposition to define computer science as the study of computations is not uncommon. The status of computer science as a science is often challenged, typically arguing that it is more like mathematics and that it would not follow the scientific method, however these facts are not unanimously accepted. Computer Engineering (CE) is very closely related to Computer Science, and their frontier is often blurry. In popular language, the term computer science is often confusingly used to denominate anything related to computers.

I had it on the main page, and if you dont think it is too bad, maybe we can discuss changes to it on the discussion page and change it slowly after debating it. So, how do you like the definition? What does it miss? How is it erroneous? Best, --Powo 20:49, 2 December 2005 (UTC)

Good information. The entire article doesn't cover most of that, and as sbwoodside suggested we're close to an agreement. — Dzonatas

I think at this point it's not a good idea to rewrite the summary completely since we seem to be (maybe) converging on a consensus. So, I reverted it... I did use the second half of what you wrote though to rewrite my disclaimer on the definition of CS. Sbwoodside 21:13, 2 December 2005 (UTC)

Hmmm... Folks, from a logical point of view, your arguments are fully sensible. But I question the premisses: I think we are very far from an agreement. Sorry.

  • What the heck does the first sentence mean? ...a body of knowledge of computer hardware.. (Besides the poor english, but that's a detail)
  • I find the first sentence to be completely confused, and fairly inacaurate: it mixes at the same level the concepts of hardware and software, computation and theory, which have little in common.It seems like a bag of words lined up in the same sentence with no meaning (body of knwoledge about x,y,z...)
  • Second sentence is just as bad: encompasses a wide variety of topics... (how could a sentence be more trivial?), followed by a random list: e.g. formal grammars (a very specific topic) and algorithms (a very unspecific topic) are the two first examples!
  • I feel my proposition is much better than the version you reverted to: if the current version would be uncontroversial, it could only follow from its voidness in contempt, probably as a result of the too numerous twists and shifts it had to endure. At this point, there most be no other way than restarting from scratch. Any scratching attempt, in the current controversary climate, should be driven by a strict NPOV spirit. This is what I tried to do. Please crtiticise my proposition and improve it, it needs to be! But IMHO we need to remove the current weak, amorphous and unscholary definition ASAP (this I'll do!).

Is this not far from an agreement hey?! Kind regards, --Powo 21:56, 2 December 2005 (UTC)

Ok, so you want to keep going with the previous (bad IMHO) definition. So let me please challenge you:

  • What is this: ...formal mathematical tools in use by the computer...
How do you want to state how the computer uses computer languages, operating systems, and mathematics. - D
I dont know. Let me please be intentionally critical: There are no mathematical tools in use by the computer! If you disagree, tell me what are these tools. In the current opening, mathematical is used in the most vague sens. This is ambiguous and bad.
  • The formulation ...These fundamentals lead to... looks like a word is missing...
Not really. We could add something to make it more clear. "The study of these fundamentals lead to..." - D
The study of these fundamental what? Subfields? Central fields? Essential disciplines?
  • By what random selection process were specific fields like formal grammars and artificial intelligence chosen in favour to, e.g. computational models and data mining... (Basically, I think we should removed specific examples, they are arbitrary. We should be able to come to a more abstract definition, examples can be left for later).
These were the examples already present in the opener. Some editors have stated that want to see specific examples. - D
  • Since when is computer engineering part of CS? This HAS to be avoided, because it it typically VERY controversial.
I'm surprised you questioned that one. That is why the sentences starts out as "leads to" because not everybody studies all those topics when they study CS. - D
I prefered a lot the much more NPOV sentence closely related to CE. This can not be argued: it is a fact!

We are not finished yet! Hopefully we'll make it in the end. Best regards: --Powo 01:08, 3 December 2005 (UTC)

Your opener doesn't give me a definition or clear description, but it does give me historic information. — Dzonatas 11:46, 3 December 2005 (UTC)

Basically, my opening saiz:

  • CS has to do with academia, maths, linguistic, electronical engineering, computers, computations, science and computer engineering.

These are uncontroversial facts. This is an abstract high level definition. Maybe have I missed some important points.

  • Additional information about the above uncontraversial facts comes from the structure and semantic of the sentence, which tries to shed some light on how it is related to these facts.
  • Furthermore, I have tried to have an NPOV by including both sides of the coin to any additional information.

Whereas my proposition is structured, it seems like the current definition is clumsy, adding parasital information. E.g. "is an academic discipline, a body of knowledge". The fact that it is a body of knowledge is trivial! It lacks structure: it enumerates random disciplines, says they are fundamental, and that it leads to (the development? The construction? Again a word missing...) of other disciplines, e.g. algorithmics. In its current form it imlicitely states or at least hints, that operating systems is a fundamental discipline that lead to formal languages. Although I admit this is not explicit, and probably not intended, it shows the clumsiness and unscholarliness of the current definition. It also introduces non NPOVness, since it states some subfields are fundamentals. For example, I dont think OS is a central part of CS at all. First of all, I dont think it is really related to CS, but rather to CE.

We need to structure what we want to put in the opening. I propose the following program:

  • Define a list of essential components of CS
  • A list of important disciplines closely related to CS
  • Then we can rewrite an opening from scratch (or modify the current one, but it is so poor in its current state...). This last part will be articulated around on what we agree as being the essence of CS. Since it needs to be uncontroversial and NPOV, and from what we have agreed so far, I propose "academic discipline". Since this is not completely uncontroversial, it will be balanced by including other acceptions in the text, e.g. popular acception of the word ("anything related to CS?").

--Powo 12:50, 3 December 2005 (UTC)

Why not try to write what you have wanted to explain as part of the body of the article. There is no concrete NPOV definition. We have a lengthly discussion above that screams that fact. What we can do is describe the discipline, its programs, and how it relates to the body of knowledge. Personally, I rather see a more technical definition, but the argument to write for an audience of teenagers wins out. Read the CS programs at universities, and you'll notice that "hardward", "software", "theory" (computation), and "electronics" are the most general terms used to describe what paths to follow. Someone who wants to know hardware and electronics probably wants to be a computer engineer. Someone who wants to know software and theory probably wants to be a software engineer. Someone who wants to know software and hardward probably wants to know about information technology. Add business to that last one and you have a TechnoMBA. These aren't the only examples and by no means are they concrete.

We have a list of specifics in the body -- too many lists. Unfortunately, the article is too much bones and not enough meat. We've discussed many issues above that make great pieces for the body or other articles. — Dzonatas 14:27, 3 December 2005 (UTC)

Ok. All very good. So if this page is to become a description of what non-computer scientists think CS is with a teenage targeted audience, I am out of the game. I am fed-up of seing this page mungled by amateurs, like Stan said. At the time I thought he was extreme... --Powo 18:41, 3 December 2005 (UTC)

Powo, its not what they think it is, but it is not unheard of to write technical articles at a 12th grade level. The audience here isn't just computer scientists. I've been very patient to answer your questions. Most of these question make great topic/header starters. — Dzonatas 19:11, 3 December 2005 (UTC)

Sure the audience is not only computer scientists (they know what CS is...) but at least the writers should be.--Powo 19:27, 3 December 2005 (UTC)

Editors of the Article

Powo has stated above that the writers of the article should only be computer scientists. Unfortunately, it does not work that way. If there was such a rule, most of the content in wikipedia would never get written because of the tedious job to find someone that would be so consensually deemed qualified to write. That is what non open content encyclopedias do because they get paid for it to hold a certain reputation. That is also their downfall as those encyclopedias lack information from a larger resourceful population.

Technically punny: if we let this article only be written by computer scientist, then they aren't doing their job. Computer scientist are theorists, researchers, and inventors. They aren't editors, so why are they here? I'm sure the computer scientist that have so professed that their wisdom is so great here that they have judged all others as to be excluded in any attempt to write on the article surely would not let any technical detail such as the benefits of open content to be so unfamiliar to them. Perhaps, those computer scientist that profess such great wisdom should write their own version of wikipedia that prohibits anybody except doctors of philosophy to edit content. They can further provide a website for their content. They could even run their own server for their website. If the information is truly worthwhile, they can put up hit-counters and advertisements and get paid for it. Nevertheless, they have come here but only to tout themselves and taunt others.

Fortunately, wikipedia is much more open than that. — Dzonatas 12:06, 9 December 2005 (UTC)

I don't agree with Powo that only subject-matter experts should contribute to articles, but the ability to write good expository English is imperative. I don't really like to make blanket criticisms, but Dzonatas, your style is consistently impenetrable, both linguistically, and in the lines of argument. In addition, you come across as sure that you're always right about all this. These make a bad mix, because the net effect is that you replace clear text with unclear text, and then aggressively insist that it's an improvement, even if nobody else thinks so. Yes, WP is open enough to let the less-capable undo the work of the more-capable, but this is not considered a feature. WP's official mission is to produce a free encyclopedia, and the wiki process is simply an implementation technique; as with the recent move to disable page creation by anonymous editors, if openness interferes with the official mission, it will be pinched down. I think it's quite likely that at some point, article edits will have to go through a review process, just as is done for patches to GNU, Linux, etc. Stan 13:58, 9 December 2005 (UTC)
I'll admit that I commonly write in a "technical" style. That is still by no means to say that it is bad English. I just use words more based on what they mean rather than how they sound in spoken English. I'm not alone with this trait, as it is common with 45% of people that are not primarily auditory. What seems clearly written to an auditory person is not always as clear to a kinetic or visual person. Just because there are more auditory people doesn't mean auditory types don't have to improve to also write for kinetic and visual people, and auditory types should recognize this and understand who they call less-capable or more-capable, or even just to go to the point to even suggest that a some degree of a determination be made. A computer scientist that works with artificial intelligence would not ignore these three major differences on how people learn and express themselves. Also, I've have even suggested a version certification process that would help point out article versions that can be accredited or tagged in various ways. It isn't proven, but we could prevent revert wars and encourage more discussion with such process. I agree with you that expository English is imperative, but the existence of two viewpoints doesn't mean only one is right by default. I'm not always right, and I don't try to be perfect, and I don't expect perfection. I expect effort, and I hope you do also. — Dzonatas 15:42, 9 December 2005 (UTC)
What does this mean??? Am I the only one not understanding?--Powo 16:28, 9 December 2005 (UTC)
This is what I mean by poor English skill - has nothing to do with auditory/visual or any of that. The paragraph above is sorely lacking commas (frequently critical to correct parsing, as in the classic phrase about the panda who "eats, shoots, and leaves"). The garbled "go to the point to even suggest" was probably supposed to be "go to the point of even suggesting" (even my short time in academia involved a certain amount of semantic reconstruction). There are also a number of sidetracks and nonsequiturs (what does AI have to do with anything?). Writing skill is something that has to be cultivated independently of technical ability; a large number of techies just assume that they're doing OK since they never get critiqued by better writers (tech writers know better than to complain, they just quietly fix what they can). Stan 00:30, 10 December 2005 (UTC)
Okay. Let me overview your paragraph above and see what I can point out, likewise. In " commas" is a passive construction. Many colleges do not accept passive voice. Frankly, there is no subject in that sentence. I know professors that would instantly fail an essay based on a single instance of passive voice found in the essay. One way to reword it: "the paragraph lacks commas." On the point of your reworded "suggesting" is a typical inappropriate use of a gerund. If you meant to use it as a noun, it would have been tolerable. The parenthesized phrases have no direct relation to the sentence or phrase for which they are found, so they should be reworded into seperate sentences to state the intended idea clearly. On the point about AI, it was one of many examples I could quickly jot down that demonstrates a relationship to CS knowledge. I've found more to point out, but that is enough. Anyways, lets focus on progress with the article. Please. — Dzonatas 02:01, 10 December 2005 (UTC)
... and I rest my case. Stan 02:25, 10 December 2005 (UTC)
I agree entirely that non experts can contribute (and non computer scientist in this case) can surely add valuable contributions to this page. My claim was extreme, sorry about that. However, some people should question themselves about what they are so sure of, perticularly when many users with some clear expertise in CS and CS related fields disagree with them. Why refuse to learn from others, specially with more expertise in the field? Why refuse to change point of view? --Powo 16:55, 9 December 2005 (UTC)