Talk:Computer science/Archive 6

Definition resolution
Dear all -- there was a long and extended debate on the exact nature of the sentence beginning the article. I was brought in as part of medcabal; see:. After a lot of work by everyone, we have arrived at a consensus solution (we took a brief poll and there were no objections, though there were definitely a few "weak supports"); the consensus is:


 * Computer science is the study of the theoretical foundations of information and computation and their implementation and application in computer systems.

The long discussion which produced this consensus is here. There is some important material there; please consider reading it if you're considering updating the discussion of definitional issues. I've also added some "final thoughts" on the question there; please if you've been involved in the debate, scroll to the end. Sdedeo (tips) 06:02, 30 January 2006 (UTC)

Often hotly

 * Because of its relative newness, there are some alternative definitions of computer science and its strict definition is often hotly debated

...on Wikipedia. (I'm tempted to insert that :-) While I don't disagree with the statement, I wonder if the modifier "often hotly" is necessary. Also I'm not sure if "Because of its relative newness" is accurate. There are many fields of study far newer than computer science, whose definitions aren't debated. Fredrik Johansson - talk - contribs 07:54, 30 January 2006 (UTC)

I agree completely, that sentences and the one following it are in need of some rephrasing. Here's my suggestion:


 * Because Computer science is a rapidly evolving field, it is difficult to define precisely. Research into the area often crosses into other disciplines, including, among many others, cognitive science, physics (see Quantum Computing), and psychology (see Human Computer Interaction)

--Jonovision 19:13, 30 January 2006 (UTC)

Sounds good to me, though the link to alternative definitions of computer science may need to be preserved (I'd be fine removing that entire article, but others may disagree). --bmills 19:47, 30 January 2006 (UTC)

The new phrasing sounds good to me too. Also, I agree with bmills that the link to alternative definitions of computer science should be maintained, at least until the material from that article can be merged into the computer science article in a coherent way. --Allan McInnes 20:47, 30 January 2006 (UTC)

Added --Jonovision 23:37, 30 January 2006 (UTC)

Evolution and divergence
On the same paragraph:
 * "Because computer science is a rapidly evolving field, it is difficult to define precisely."

I wanted to find a source for this. However, the sources found stated historical claims for different perspectives. We can point out individual areas that have evolved rapidly, but, unless a source can be found, the statement needs to reflect the references:
 * Computer science research has branched off and into other disciplines: computer engineering, artificial intelligence, cognitive science, physics (see quantum computing), linguistics, software engineering, and others. Because computer science has evolved like this, there are divergent perspectives on its definition. The methods involved to train individuals and the diversity in computer science has led to its likely debatable definition.

I changed "computer science grads" to "individuals" and touched-up on the rest. "Diversity in computer science" is more impartial than "alternative definitions." &mdash;  Dz on at as  13:28, 31 January 2006 (UTC)

I like the tone of your proposal, but the language doesn't seem to flow well to me. How about the following revision for the paragraph:


 * Research into computer science often crosses into other disciplines, including, among many others, computer engineering, artificial intelligence, cognitive science, physics (see quantum computing), linguistics, and software engineering. Because of the diversity of computer science and the variety of careers pursued by computer scientists, perspectives on its precise definition may vary.

It's a fairly minimal change, but I think it works better than the current rev. What do you think? --bmills 16:30, 31 January 2006 (UTC)


 * I prefer this version. As you say, it flows better. --Allan McInnes 16:53, 31 January 2006 (UTC)

Okay, but small source-able change to add: "variety of careers pursued by computer scientists" -> "methods involved to train individuals" &mdash;  Dz on at as  17:12, 31 January 2006 (UTC)


 * I'm afraid I don't understand what "methods involved to train individuals" is supposed to mean. Nor do I see it as a replacement "variety of careers...", since one talks about training while the other talks about what happens after training. Can you please elaborate on what you are trying to say with the "methods" phrase, and perhaps we can find a phrasing that more clearly expresses your intent. --Allan McInnes 18:30, 31 January 2006 (UTC)

Where did "variety of careers" come from? Here is the source for my shorted exerpt: "it is argued that the diversity of research paradigms in computer science may be responsible both for our difficulties in deciding how computer scientists should be trained and for divergences of opinion concerning the nature of computer science research."


 * Because of this diversity of computer science and the difficult decisions made on how computer scientist should be trained, perspectives on its precise definition may vary. &mdash;  Dz on at as  19:07, 31 January 2006 (UTC)


 * The sentence you quote states that the diversity of computer science is responsible for difficulties in deciding in training, and also that the diversity of CS makes defining the nature of CS difficult. It does not claim that the difficulties deciding on training are responsible for the difficulties in defining CS.
 * This from the Computing Sciences Accreditation Board, which is composed of representatives from the ACM, IEEE-Computer, and AIS: Computer science is a young discipline that is evolving rapidly from its beginnings in the 1940's. ... Because of the rapid evolution it is difficult to provide a complete list of computer science areas.
 * From the same website: A professional computer scientist must have a firm foundation in the crucial areas of the field and will most likely have an in-depth knowledge in one or more of the other areas of the discipline, depending upon the person's particular area of practice. - which implies that computer scientists have a variety of "areas of practice" (i.e. careers). From the previous quote, we can infer that these various careers are hard to list. As a result, defining CS by listing the areas in which computer scientists work will also be hard.
 * --Allan McInnes 23:29, 31 January 2006 (UTC)


 * In reply to 1, it does imply that -- recursively. The article states the different dominant roles of how individuals were trained as CS evolved. &mdash;  Dz on at as  15:21, 1 February 2006 (UTC)

I stand by my original phrasing:


 * "Because computer science is a rapidly evolving field, it is difficult to define precisely."

The word evolution in and of itself implies that there is a diversity of different incarnations, some of which have been succesful, and others which have not been. My phrasing is quite general, as I think is appropriate for the introductory paragraph. A quick google search for "computer science rapidly evolving" shows that university CS departments describe their discipline in that exact way. --Jonovision 21:08, 31 January 2006 (UTC)


 * I am 100% happy with this phrasing. However, if it has to change, I would support bmills' proposal (although I see little value in making such a change). --Allan McInnes 23:29, 31 January 2006 (UTC)

Ok. It still has to be reflective. I know some here hate to write in the past, but that is how the words should be used. Here is another suggestion with cause-n-effect type expression, to use "computer-science research" as a group, and to combine everybody's ideas with an added Dijkstra perspective:
 * Computer-science research has branched itself into many disciplines, which includes, among many others, computer engineering, artificial intelligence, cognitive science, physics (see quantum computing), linguistics, and software engineering. Because computer science has evolved like this, there are divergent perspectives, and, in the management of this on how computer scientist should be trained, it is difficult to define precisely. &mdash;  Dz on at as  23:46, 31 January 2006 (UTC)


 * It's good that you're trying to be as precise as possible, but this seems to suggest that computer science started as a single endeavour, and subsequently branched out into different areas. The reality is that there have been many different starting points in the evolution of computer science, and since the beginning computer scientists have both taken and contributed ideas to and from other disciplines. --Jonovision 00:05, 1 February 2006 (UTC)


 * Consider that "computer-science research" is seen either strictly as an explicit group or an implied group metaphorically, it is not precise to a single endeavour. Such usage helps to stay impartial. There are areas that include computer-science research, and there are areas that spun-off from computer-science research. &mdash;  Dz on at as  15:21, 1 February 2006 (UTC)


 * It is hardly the case that physics, linguistics, or cognitive science "spun off" from CS. But the way your statement is phrased implies that they did. It is for this reason, as well as the awkward nature of the last sentence (e.g. the meaning of "in the management of this on how computer scientist should be trained" is less than clear, nor does the phrase seem grammatically correct to me), that I have proposed the alternate wording below. --Allan McInnes 17:07, 1 February 2006 (UTC)


 * It didn't state everything spun off. It is reworded to clarify: "Computer-science research has branched itself into many of their own disciplines or into disciplines that already exist." &mdash;  Dz on at as  18:55, 2 February 2006 (UTC)


 * I'm sorry, I find the proposed phrasing somewhat awkward. Here is an alternative that is consistent with, and retains the flavor of your proposed wording as well as the original phrasing:
 * Proposal - Computer science is a young discipline, and has evolved rapidly from its beginnings in the 1940's. Research into computer science has often crossed into other disciplines, including, among many others, computer engineering, artificial intelligence, cognitive science, physics (see quantum computing), linguistics, and software engineering. As a result, computer science is a difficult field to define precisely.
 * --Allan McInnes 00:13, 1 February 2006 (UTC)


 * Sounds good to me. --Jonovision 00:17, 1 February 2006 (UTC)


 * I think that works well. Dz, does Allan's suggestion work for you?  --bmills 02:30, 1 February 2006 (UTC)


 * I find it awkward. I'll reply more later... &mdash;  Dz on at as  15:21, 1 February 2006 (UTC)


 * Well, by all means feel free to propose (another) alternative phrasing. --Allan McInnes 17:21, 1 February 2006 (UTC)

Since we now have a source which provides support for the phrase "Because computer science is a rapidly evolving field, it is difficult to define precisely.", the lack of which was the cause of this argument in the first place, why don't we just leave the paragraph as is? --Allan McInnes 17:28, 1 February 2006 (UTC)


 * I think the main problem is that the second paragraph (the one in which we incessantly second-guess our consensus definition) is far too large for the purpose it serves. Why don't we just delete it?  People will probably be able to tell from the rest of the article that CS means many different things to many different people.  --bmills 21:02, 1 February 2006 (UTC)


 * Good point. I'd support deletion, although I think that it would be worth appending the sentence
 * ''Research in computer science has also often crossed into other disciplines, including, among many others, computer engineering, artificial intelligence, cognitive science, physics (see quantum computing), linguistics, and software engineering.
 * to the first paragraph, if only because it further underscores the diversity of the field mentioned in the first para. --Allan McInnes 21:31, 1 February 2006 (UTC)


 * I agree with bmills. Can we put the research line that Allan wants into a another section besides the opener since they aren't detailed in this article. &mdash;  Dz on at as  18:37, 2 February 2006 (UTC)


 * I'm fine with that. Perhaps in the section on "Relationship with other fields"? --Allan McInnes 19:46, 2 February 2006 (UTC)


 * Sounds good to me. Any objections, or do we have a consensus?  --bmills 20:40, 2 February 2006 (UTC)

Change to first paragraph
I've removed the following line from the first paragraph:


 * Still others, like computer programming, study the process of formally describing computations (using programming languages) for use in computer systems.

First of all, let me apologize if this change comes too soon after the mediation. However, I feel it is necessary. Computer programming is "the craft of implementing one or more interrelated abstract algorithms using a particular programming language to produce a concrete computer program." It is not the "study of processes of describing computations", as suggested in that sentence. Can anyone think of a better way to phrase? --Jonovision 23:48, 30 January 2006 (UTC)


 * How about
 * Still others focus on the problems involved in implementing computations. For example, programming language theory studies approaches to describing a computation, while computer programming applies specific programming languages to craft a solution to some concrete computational problem.
 * or something along those lines? --Allan McInnes 00:25, 31 January 2006 (UTC)


 * Added -- that's great, it really clears things up --Jonovision 06:51, 31 January 2006 (UTC)

Is it really necessary to give references for all the defining words in the very first sentence? I know it reflects the effort that was spent hashing the definition out, but for an outsider, it looks a bit strange. --Piet Delport 01:44, 1 February 2006 (UTC)


 * I agree, they are rather arbitrary as well. If we want to provide sources, this is not the way to go. —Ruud 01:49, 1 February 2006 (UTC)


 * They do exist; we know they're sourced and there's a good history in the talk page if anybody really strongly needs links, but I think the opening sentence is general enough to be "common knowledge" (more or less) and as such doesn't need to be explicitly sourced. On the other hand, they're not really doing any harm...  --bmills 02:34, 1 February 2006 (UTC)


 * I agree that the references seem a bit out of place. However, it was Dz that inserted the refs, so I imagine that we'll have to get him to agree to removing them. --Allan McInnes 03:46, 1 February 2006 (UTC)


 * Hey, i wasn't suggesting that we delete them outright (references are great!), but rather that we move them somewhere more relevant (and less distracting). To me, the two most obvious places would be the part of the article that talks about the definition disputes, and/or the Diversity of computer science article (which is apparently due for merging, anyway).  --Piet Delport 01:49, 2 February 2006 (UTC)


 * Sorry, I should have been more clear: The references seem to me out of place in their present location. But Dz put them where they are at present, so we'll have to get his agreement to remove them from their current location (and place them somewhere else). I wasn't suggesting they be removed completely from the article. Sorry if I gave that impression. --Allan McInnes 01:59, 2 February 2006 (UTC)


 * Ah, so my impression that your impression was mistaken, was mistaken. Thanks for clearing up my clarification. :)  --Piet Delport 02:32, 2 February 2006 (UTC)

If you can get wikipedians to remove all the references and notes to the article on Hugo Chavez, then I might be persuaded. There is a reason why that article has so many notes and references, it needs its sources. The few people that are familiar with this article on CS may not want the sources, but there are lots of people that can use them. Perhaps, make a suggestion to the developers of mediawiki to have an option to turn notes and references off. I've been in other highly controversial articles, and the feedback always states to use notes and references -- it is a must. The policy even states to cite sources. The article needs more references -- not less. As with the above paragraph above that shows the diversity and evolution of CS, it needs to be cited also. &mdash;  Dz on at as  14:44, 1 February 2006 (UTC)


 * Dz, do you object to the specific issue that Piet brought up? He suggests removing the notes from the first paragraph, not getting rid of them together.  There's no rule saying that every sentence needs have superscripts in it, no to mention that the vast majority of Wikipedia articles don't look like the Chavez one. --24.42.191.204 04:34, 2 February 2006 (UTC)

I took the suggestion and combined the note-refs into one. I'm sure there is more notes to add further into the article. Better? &mdash;  Dz on at as  18:30, 2 February 2006 (UTC)


 * Yes, much. Far less disruptive of the first sentence, but still maintains the references. I like it. --Allan McInnes 19:48, 2 February 2006 (UTC)

Section rearrangement
I've retitled the section "Theory and practice" as "Computer science education", since most of the text was actually about differing educational programs rather than talking directly about theory and practice. I've also renamed the section previously called "Relationship with software engineering" to "Relationship with other fields", and moved the paragraph discussing CS vs. computer engineering and information systems into that section (where it seems more appropriate). --Allan McInnes 21:44, 1 February 2006 (UTC)

Curricular merge
I've suggested that a section from Bachelor of Computer Science be merged here. My expectation is that, since it largely coincides with existing content on this page, most of the content from there will be dropped in the merge. I know that education has been a sensitive issue here, so we should discuss here how best to accomplish the transition before making any drastic changes. --bmills 03:31, 14 February 2006 (UTC)


 * Oy! We should avoid U.S. bias here and I've already added the ACM Computing Curriculum as a reference. —Ruud 03:37, 14 February 2006 (UTC)


 * I agree, but we still need to do something about the curricular description at Bachelor of Computer Science, and this is basically where it fits in. I'd be ok with figuring that most of the content already coincides, so maybe just remove that section from that article and focus our efforts on improving this one.  I'm just not comfortable doing that until we can get a reasonably broad consensus.  --bmills 03:52, 14 February 2006 (UTC)


 * The curriculum list was originally based on a mix of typical courses offered at some of the Universities in Canada that I'm farmiliar with. However, it is more Theory based and does not adequately explain the second, more pratical approach that some post-secondary CS education focuses on.--AlphaTwo 03:55, 14 February 2006 (UTC)

bmills, I'm not sure how you would want to merge them. Can you elaborate? -- Evanx  (tag?) 04:14, 22 February 2006 (UTC)


 * Ok, hang on. It seems really bizarre to dedicate any space on this page to education or careers at all.  Contrast all the other sciences: chemistry, biology, economics, whatever.  What am I missing? Jorend 21:07, 3 March 2006 (UTC)


 * I believe it's partly meant to help clarify what "computer science" is, by enumerating what "computer scientists" do. Not that I think that's necessarily the best way to go about it (although I don't have any better ideas at this point). The other issue (particularly with education) is that many different schools teach different things as "computer science", and that fact probably needs to be acknowledged since it contributes to the muddiness of the CS definition. That said, I'm not sure there's much use in adding curricular information here. At best it will be a reiteration of the "fields of CS" section. At worst, it will be one person's POV on what constitutes a "proper" CS curriculum.
 * Perhaps it would be more useful to have a section such as "Computer science as an academic discipline", which would discuss both the educational and research aspects of CS, and another section called "Computer science outside of academia" (or something similar) which discusses the non-academic aspects of CS. That would also allow discussion of the flow of ideas between academic computer science and those who operate outside of the academy. --Allan McInnes (talk) 21:31, 3 March 2006 (UTC)


 * Thanks for the elucidating comments! Now the first thing I'm going to do is read between the lines a little, and if I've got it wrong end up, please don't anyone take it the wrong way.
 * It sounds like there is just the slightest bit of tension here among contributors between theory and practice.
 * Given that, the article reads as though someone on the "practice" side of things hit upon careers as a relatively uncontroversial, NPOV way of getting across that computer science is really about applications after all, and the egghead side of things is a sideshow. Now if it really made sense to have a section dedicated to careers, that would be fair play.  But as it is... well, not to be rude, but it just doesn't seem like the right way to get one's point of view incorporated.  Instead there ought to be a section that says, look, some people feel this way, and some people feel that way, and in fact zillions of people are employeed in computing while there are honestly not that many CS theorists out there, see computer programming and information technology et cetera.
 * As an aside, there really needn't be such a tension between the two. Look at Alan Turing.  Read the original Lambda papers.  The people that founded computer science and the people that invented the first real computers were the same guys.  They were obsessed with the theory and practice of computing.  This article ought to focus on what readers want to know about CS: the brilliant successes of the field--fundamental concepts, achievements, discoveries.
 * There is a ton to write about. I admit that to me, CS is essentially just a terribly exciting field of mathematics.  But at the same time, I think the biggest achievements of computer scientists to date are: the invention of acutal working computers (which I would never have believed if I hadn't seen one with my own eyes, just the other day) and the invention of the compiler.
 * Measured against the incredible stories there are to tell here, this page is downright boring. Jorend 23:53, 3 March 2006 (UTC)


 * The division between academia and non-academia is not the same as the division between theory and practice &mdash; many academics are (as you point out) quite interested in the practice side of things. I suspect that the problem actually boils down to a difference in opinion between contributors as to what actually constitutes the "practice" of CS, and whether everything that involves "computing" is actually a part of CS. None of which is helped by the fact that CS is somewhat hazily defined to begin with, and has different meanings to academics and non-academics. But I agree that the page is a bit boring. --Allan McInnes (talk) 00:11, 4 March 2006 (UTC)

including computer architecture
We have to keep computer architecture in this article to be consistent. Otherwise please delete bioinformatics and many other terms(Cryptography,Graph theory, they do not even have 'computer' in the name! They belong to Math!) in computer science. --Leo 01:04, 16 February 2006 (UTC)


 * While some computer scientist need to know a lot about computer architecture (e.g. to do research on compiler design) they do not do research on computer architecture themselves. Computer scienctist definitly do research on bioinformatics algorithms, graph theory and to a limited extend cryptography. —Ruud 01:15, 16 February 2006 (UTC)
 * Why do we care research here? Computer science talks about the science of the whole computer system: inside out! From processor, operating system, compiler, to software and users. If you delete processor in this system, it is not computer science at all. Just like excluding a human's head and you say it is human science. --Leo 01:20, 16 February 2006 (UTC)
 * I think a theoretical computer scientist would take that as a big offense :) —Ruud 01:24, 16 February 2006 (UTC)
 * Why care the theoretical scientists only ? This is wikipedia, for the general public. Period. --Leo 01:26, 16 February 2006 (UTC)
 * You might want to read WP:NPOV. —Ruud 01:27, 16 February 2006 (UTC)
 * NPOV applies to the main article. My strong word is ok for the discussion, I think. :-) --Leo 01:32, 16 February 2006 (UTC)
 * Perhaps. But it's not exactly conducive to harmonious editing. Please consider the advice given at WP:EQ and WP:CIV. --Allan McInnes (talk) 17:47, 16 February 2006 (UTC)
 * Leo, please reconsider. Graph theory is about as fundamental to almost every area of computer science as it's possible to be.  Think of: programming languages, compilers, databases, structured file formats and indexes, filesystems, state machines, communication networks, routing systems, (most) data structures and algorithms, distributed/concurrent models of computing...  All of these have their roots wholly or partly in graph theory.  Graph theory might not have "computer" in its name, but you'll see that the graph theory article opens its first sentence with a link to computer science ("In mathematics and computer science, graph theory studies...").
 * I'd go as far as saying that it's about as absurd to leave graph theory out of a discussion of computer science as it is to leave cell theory out of a discussion of biology. Can we restore the removed link?  --Piet Delport 03:01, 18 February 2006 (UTC)


 * In terms of education in computer science, computer architecture, a topic briefly covered in universities and colleges, is most likely absent in most community colleges. While it is an important field, most colleges and universities end up categorizing it under Computer Engineering.--AlphaTwo 01:36, 16 February 2006 (UTC)


 * Some CS departments do offer sequences of courses in computer architecture and processor design. Granted, those courses are often cross-listed as EE courses, but they do exist. The other thing to consider here is careers. Those who get jobs doing computer architecture work tend to be electrical engineers or computer engineers (partly because those degrees focus much more on digital design rather than software design). OTOH, there are some computer science researchers who do work on architecture &mdash; for example, over half the members of the computer architecture group at the University of Wisconsin-Madison are in the CS department. And John Hennessy (who spent most of his career in microprocessor design, and with David Patterson wrote one of the most well-known texts in computer architecture) has a Ph.D. in CS, and served as the chair of the Stanford CS department. So I'm not sure it's easy to draw a hard line here. We might be better off separating the "fields of computer science" into those that are indisputably considered part of CS by pretty much everyone, and those that are not necessarily in the core of what's considered CS but do get attention from some CS folks. --Allan McInnes (talk) 18:11, 16 February 2006 (UTC)


 * An older version of the article had a rather large section of "Fields of CS" and a separate one of "Fields related to CS" which had a lot of duplication and had swollen out of control. It's important that we avoid a repetition of that as we expand the content here.  Any given field should only be listed once, and fields from which CS draws but to which it does not typically contribute should be avoided.  That said, it might be productive to have "Fields within computer science" and "Fields to which computer scientists contribute", for those fields that aren't usually considered CS but that computer scientists do study (like graph theory, category theory, and computer architecture).  --bmills 18:34, 16 February 2006 (UTC)


 * Sounds good to me. --Allan McInnes (talk) 19:04, 16 February 2006 (UTC)

I would agree that graph theory isn't directly under the purview of CS (just like category theory and linear algebra are useful fields for a computer scientist to know, but not really CS per se). Cryptography is definitely CS, just ask Manuel Blum. However, computer architecture as Wikipedia defines it isn't really CS either, but rather computer engineering. CS students typically do learn about machine architecture, but usually as part of a systems programming course, where the curriculum focuses on programming for the processor, cache, and bus &mdash; not designing them. --bmills 03:08, 16 February 2006 (UTC)


 * Agreed. Computer architecture is mostly subsumed under Computer Engineering, although Computer Science programs will inevitably include some courses of it. I think we can include architecture, but only if we emphasize the theory of it (or how it is still taught under Computer Science, but not emphasized). -- Evanx  (tag?) 05:11, 17 February 2006 (UTC)


 * Agree as well. Just mention it once and tell it's not really CS so people won't bother claiming it is. —Ruud 12:59, 17 February 2006 (UTC)


 * "Architecture" has a duality as part science and part engineerial. To make it distinct to be either one makes a judgement. On the basis of specification, it is a science. On the basis to implement that specification, it is engineerial. It appears there are different opinions on how these specifications are made and how they are implemented, and that seems to be the cause to these questions of where this field falls into. It appears to focus over the word "design" as in to design its specification or to design its implementation. The article itself states a conceptual design. &mdash;  Dz on at as  16:05, 17 February 2006 (UTC)


 * You make a good point there; though the usual role of CA in CS is unidirectional &mdash; computer scientists, with a few exceptions, learn about architectural designs rather than actually making them. In all, I'd say it's very similar to the cases of graph theory, matrix algebra, category theory, etc., which I wouldn't consider fundamentally CS either, though there is a bit of cross-over.  --bmills 16:36, 17 February 2006 (UTC)


 * When computer science students learn about architectural design, do they learn how to write specifications or to actually make the architecture? Here is an image to relate this: http://www.princeton.edu/%7Emike/Image11.gif. The concerns at the top-level are engineerial. The rest is computer science. Once the model is done, it goes back to engineerial. Note, the hardware design crosses-over to a part of the science even if the construction process is not science. Instead of unidirectional, would you agree it is circular? &mdash;  Dz on at as  17:48, 17 February 2006 (UTC)


 * To some extent, certainly; computational models feed into computer architecture, which comes back into systems programming. But generally the interaction of a computer scientist doesn't include designing the physical system, just designing the model and using the system.  That's not to say that computer scientists can't also be computer engineers, physicists, mathematicians, and the like &mdash; in fact, the world would be a pretty boring place if all computer scientists studied only computer science.  It's just that the physical design exercises a skill set that is beyond the scope of computer science proper.  --bmills 18:22, 17 February 2006 (UTC)


 * These models can get very detailed with abstraction even without any physical implementation involved. Those details evolve as engineers try to implement the specifications and find problems as they implement the model specification. In the past, engineers had to be trained to deal with such problems themselves and find a way to still implement the specification. This is where the general cross-over is seen. Instead of the engineers responsibility to fill in the gaps, they can, today, send the data back to the scientists. (thrown exception) It becomes the responsibility of the scientists to understand the abstraction as it relates to real world. This is why the physical design is not just excluded from computer science as far as the levels of detail in abstraction. It appears fair to remove the "In computer engineering" from the start of the article. It also appears fair to say it falls into both disciplines of computer science and computer engineering in the article, as the architecture can be purely an abstraction. As for "boring," that's why we have supercomputers that can simulate all aspects of a computer right down to the chemical level, which also effectively simulates those caffeinated systems through an emulated model on a simulated computer that is on a real supercomputer. Anyways... just my two cents.... &mdash;  Dz on at as  21:31, 17 February 2006 (UTC)


 * If the computer architecture article were a bit more interdisciplinary, it would probably become appropriate to include as a field of CS. At the moment I don't have the time to make that revision, though.  --bmills 21:42, 17 February 2006 (UTC)

I re-added computer architecture, since it it is definitely part of computer science. Just see Knuth's (MMIX) and Paul's work. Computer architecture has many interesting areas in computer science, for example formal verification at the gate level and CPU internal parallelism. --Rtc 14:29, 21 February 2006 (UTC)
 * Well that works, just skip the whole discussion, and add on what you think is right? Yes, you are right, Computer architecture has many interesting areas in computer science is true, but the inverse doesn't hold up that well.  The study of Computer architecture within Computer Science is often optional, as most theoretical discussions on algorithms often begin with the assumption of infinite memory, bandwidth, processing power, etc...(which would typically throw discussions of Computer architecture out the window.)--AlphaTwo 15:16, 21 February 2006 (UTC)
 * So what? I claimed that computer architecture is an area of computer science, not that it is a prerequisite for it. (Although it is taught sometimes as a foundation.) Computer graphics is also 'often optional', yet it is an area of computer science. Many areas of computer science are interdisciplinary, we can't argue that just because parts of some areas belong to engineering, mathematics or biology that they must not be listed under computer science. Wikipedia should describe the classification as realized in professorships, research programs and courses, not invent its own. --Rtc 04:32, 22 February 2006 (UTC)
 * The point is that when you are editing part of an article that is currently being discussed, you should contribute to the discussion and work toward a consensus rather than brashly editing according to your personal perspective. Most professorships and research programs in computer architecture are classified as computer engineering rather than computer science, and most computer architecture courses in computer science programs involve much more application-oriented presentations than the one given in the computer architecture article.  If you believe otherwise, let's discuss it here, rather than in a dozen edit summaries.  --bmills 05:14, 22 February 2006 (UTC)
 * I was bold on the article and had a good argument about it, so let's not waste time with evasive meta-discussions. I am astonished by your broad knowledge of how most computer architecture courses look like and what most professorships and research programs are classified as. Cite your sources please. And even if it were that way: merely that there is a siginificant part of computer architecture which is an area of computer science, and be it only a small minority, is sufficient for it to be listed here. If you have exact figures about its share in computer science, add a clarifying statement about that, but please don't remove it, as the significance itself is beyond question. (see the two prominent examples above). --Rtc 18:59, 22 February 2006 (UTC)
 * Reaching a consensus regarding a contested point is not "evasive meta-discussion"; your edit, given the ongoing discussion, seems reckless rather than bold. I haven't given citations for my assertions at this point; then again, I'm not adding contested material to the article at the moment &mdash; just discussing which content should be added.  Your citations don't say anything about whether computer architecture as defined and described on wikipedia is a direct field of computer science, or simply one with which computer science interacts; that's the whole point of this thread of discussion.  --bmills 20:30, 22 February 2006 (UTC)
 * You are still evading into evasive meta-discussion. Please cite your sources. everything else is irrelevant. I have done so, so be fair and so so too. Those sources cited suggest for including, so if you don't want to include, you need to provide strong evidence for this, since removing seemingly relevant information without citing sources is no better than including seemingly irrelevant information without citing sources. Wikipedia describes the definitions of things, it does not invent its own ones. --Rtc 06:21, 23 February 2006 (UTC)
 * Rtc, your edit was certainly bold. You have a somewhat valid argument but it's best to read the archives and talk pages before making amendments. It is even polite to suggest on the talk pages first before contribution, especially in such a high profile article. bmills, Ruud, Leo, Piet, Allan, AlphaTwo and Dzonatas have made points as with regards to the subject matter at hand. These are users with professional backgrounds and the required expertise (both academic and otherwise). Most importantly, it is imperative to reach consensus. -- Evanx  (tag?) 23:42, 22 February 2006 (UTC)
 * If you want to convince me, then please not with some argument from authority. I have actually read the discussion before making the change. It was mostly inconclusive and personal point of view, and the only relevant sources, cited (by Allan McInnes), suggested for a change. Consensus is something relevant in areas of editorial taste. Neutrality and factual accuracy is exempt from consensus. Please take my criticism constructively and do not try to argue for my criticism being done in the wrong way in the first place, that's not relevant. --Rtc 06:21, 23 February 2006 (UTC)
 * "Neutrality and factual accuracy" are not exempt from consensus, because they depend on sources; because not everyone agrees on the interpretation and quality of sources, it is essential that we establish a consensus on their relevance and interpretation. --bmills 07:04, 23 February 2006 (UTC)
 * I was refering to the principles themselves, not to their application in each particular case. If you are challenging the interpretation and quality of the sources, please do it and not just talk about it. --Rtc 09:12, 23 February 2006 (UTC)
 * just a reminder. http://www.acm.org/education/curricula.html provides recommendations for computer science courses. Computer architecture IS a core part of computer science according to the joint reports by IEEE and ACM. Discussion adjourned!--68.89.168.17 03:08, 24 October 2006 (UTC)

Firmware -> real-time?
Under "Careers", the article describes "Firmware engineer" as "Writing software designed to work within a real-time system.". I'm not sure if this is an accurate characterization: while it's not uncommon for firmware design to involve real-time computing, this is not what makes it "firmware".

What would be better? "Designing and writing software for firmware systems"? Embedded systems?

--Piet Delport 11:30, 23 March 2006 (UTC)


 * Perhaps change "Firmware engineer" to something a little more general, such as "Embedded Systems Programmer". Otherwise we'll end up having to list every possible career variation a CS grad might become involved with.
 * Aside: it's not obvious to me that the Careers section is even all that useful &mdash; realistically, CS grads may pursue careers in a wide variety of fields, often with a tenuous connection to CS. They may be employed as everything from burger-flippers to CEOs.
 * --Allan McInnes (talk) 17:22, 23 March 2006 (UTC)


 * Although "Embedded Systems Programmer" sounds better, I don't like that, either. To my understanding, most embedded systems these days are based on Windows CE, Linux, or Java processors, so I don't see the need to distinguish from "normal" programming.
 * I've suggested removing the Careers section in the past, and the only objection I recieved was from Dzonatas, who argued that there's more to computer science than what computer scientists do.
 * --Jonovision 21:11, 23 March 2006 (UTC)

List of critical CS problems?
I propose to add a new section listing important, major, critical, tough challenges/problems in computer science, like those famous problems in mathematics. Just a thought. :-)--Leo 19:30, 4 April 2006 (UTC)


 * Sounds like a good idea to me. Did you have anything particular in mind already? --Allan McInnes (talk) 19:39, 4 April 2006 (UTC)
 * We may list some BIG problems in familar areas and put them in the main article when ready. For example, Automatic parallelization has been quite a challenge in programming areas for many years. Otherwise nobody would bother parallel programming. Furthermore, automatic programming is an even bigger problem, otherwise no human programmers should exist --Leo 20:05, 4 April 2006 (UTC)


 * Automatic programming is a contradiction in terms. In order to program, you need to specify the objective, i.e. what/how has to happen; which is by definition called programming. But that's just my two cents of original research I guess. I'm all for such a list! Wouter Lievens 21:24, 4 April 2006 (UTC)
 * You made a good point. My understanding: people only need to tell computer what to do, and computers should automatically figure out how to do it (with some intelligence). The current situtation is that people have to instruct computers in every step to reach goals. --Leo 15:46, 8 April 2006 (UTC)
 * The list of open problems in computer science article already has a good start. Other than that, AI is one field that's very rich in problems of practical import:  pattern recognition, computer vision, NLP, data mining, autonomous robots...  --Piet Delport 21:55, 4 April 2006 (UTC)


 * Since people have started suggesting ideas: I imagine that the BCS' Grand Challenges in Computing Research would also provide a good source of information. And it has the advantage that it's a citable source for "important problems". --Allan McInnes (talk) 22:22, 4 April 2006 (UTC)


 * The "Grand Challenges" seem to edge towards being a list of wide, open-ended directions for research, rather than a list of clearly-defined, solvable problems. Some of them, like GC1 and GC4, almost read like outlines of potential solutions, rather than descriptions of open problems.  --Piet Delport 14:37, 5 April 2006 (UTC)


 * Sure. But I didn't see anything in the original comment that implied we should only be talking about "clearly-defined, solvable problems". If anything, I think this article would be better off focusing on broad directions, and leaving the specific and well-defined problems to list of open problems in computer science (although a couple of the really major problems might usefully be mentioned here too). --Allan McInnes (talk) 15:19, 5 April 2006 (UTC)


 * Yep, i was just pointing out the distinction, not dismissing them (except maybe for GC1 and GC4, to some extent). --Piet Delport 07:53, 6 April 2006 (UTC)


 * I'd love to see a more diverse list; after all the list of open problems in computer science only lists the really hard theoretical ones. It would be interesting to see a few "soft" and less formal problems, too. Wouter Lievens 09:40, 6 April 2006 (UTC)


 * OK, but problem definitions can probably only so soft, before they start describing engineering, sociological, or philosophical problems, instead of computer science ones. --Piet Delport 12:05, 7 April 2006 (UTC)
 * I am so glad to see the responses so far. My motivation was simple: make real problems in computer science visible and draw enough public attention. Then some people will be interested in attacking them and make more goodness than just dealing with trivial problems. I agree that adding things into list of open problems in computer science is a good starting point. --Leo 15:36, 8 April 2006 (UTC)

Overly Complex?
In my view 'Computer science is the study of the theoretical foundations of information and computation and their implementation and application in computer systems.' seems very complex. I don't know any better words to replace them though. Suggestions? Computerjoe 's talk 21:08, 8 April 2006 (UTC)


 * Please see the archive. Replacing the intro would most likely be a Bad IdeaTM. —Ruud 21:26, 8 April 2006 (UTC)

Fields of computer science a stub?
Is the Fields of computer science section really still a stub? I thought stubs would be short, this section has 11 subsections! Ideogram 21:52, 29 May 2006 (UTC)


 * I agree that it looks a little odd. OTOH, I think it's reasonable to consider the "fields" section a stub, since it consists of a list of topics rather than an explanation of those topics. Ideally, I'd like to see that section look more like the corresponding sections in articles such as Mathematics or Physics. --Allan McInnes (talk) 01:22, 30 May 2006 (UTC)

Since we're talking about this section, is anyone else bothered by the inclusion of image processing as a field of computer science? It doesn't make sense to me, and seems analagous to including something like "3D rendering" or "neural networks". --Jonovision 13:21, 30 May 2006 (UTC)


 * It seems OK to me. (I think it's at least as appropriate as including bioinformatics, robotics, and other cross-disciplinary fields, in any case.)  --Piet Delport 16:57, 30 May 2006 (UTC)


 * I agree with Piet here. Tne borders of CS are not exactly well-defined, and there's plenty of other cross-disciplinary stuff in the list of fields. If you're really concerned about this, you might consider digging up a reasonably authoritative reference (the Handbook of Computer Science perhaps, or an ACM CS curriculum) that we can use as a standard for identifying the "core fields" of CS, and move the cross-disciplinary stuff into a subsection called Related fields or Cross-disciplinary fields or something similar. --Allan McInnes (talk) 18:01, 30 May 2006 (UTC)


 * I agree with both of you, I'm all for including cross-disciplinary fields in the list. My problem with image processing was only because it doesn't seem to be a "field of study" to the same degree as the other listed areas.  The image processing article describes it as a bunch of useful tools, rather than a set of fundamental problems which are to be solved.  In any case, if it doesn't bother you guys, then I don't see any need to change it. --Jonovision 01:56, 31 May 2006 (UTC)

Back to wether the Career_domains_in_computer_science should be merged with Computer_science, my feeling is that the article on Computer-science would become too tangled. To tie in the abovve discussion, just think about all the possible career domains that could arguably be attributed to Computer Science. Stevey had a hard time limiting his employer's list of need to knows to 50.


 * I think combining career domains in computer science and computer science would result in too large an article, so it is best to keep them separate. Jonathan Bowen 20:32, 16 August 2006 (UTC)

Is "Soft Computing" a major branch of Computer Science?
According to Soft Computing (aka Computational Intelligence), and the various links it contains:


 * Soft computing differs from conventional (hard) computing in that, unlike hard computing, it is tolerant of imprecision, uncertainty, partial truth, and approximation. In effect, the role model for soft computing is the human mind. The guiding principle of soft computing is: Exploit the tolerance for imprecision, uncertainty, partial truth, and approximation to achieve tractability, robustness and low solution cost.


 * The principal constituents of Soft Computing (SC) are Fuzzy Logic (FL), Neural Computing (NC), Evolutionary Computation (EC) Machine Learning (ML) and Probabilistic Reasoning (PR), with the latter subsuming belief networks, chaos theory and parts of learning theory.(Y.Jin's Soft Computing portal)


 * Enclosed in the name computational intelligence is a `message', according to scientific folklore it is chosen to indicate the link to and the difference with artificial intelligence. While some techniques within computational intelligence are often counted as artificial intelligence techniques (e.g. genetic algorithms, or neural networks) there is a clear difference between these techniques and traditional, logic based artificial intelligence techniques. In general, typical artificial intelligence techniques are top-to-bottom where, i.e., the structure of models, solutions, etc. is imposed from above. Computational intelligence techniques are generally bottom-up, where order and structure emerges from an unstructured beginning. (Vrije Universiteit, Amsterdam)

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

Palaeovia 16:54, 23 April 2007 (UTC)


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


 * I've deleted "Soft computing" from "Fields of computer science". -- Palaeovia talk 12:54, 16 May 2007 (UTC)

Category:Computer Science
I recently created Category:Computer Science when I was suprised it did not exist. Is there any larger set that Category:Computer Science should be a subset of? Mathiastck 10:09, 24 May 2007 (UTC)
 * It's called , by convention categories are sentence cased. -- Prove It (talk) 12:44, 24 May 2007 (UTC)
 * There were several articles in the Computer Science cat. I changed them to Computer science cat and made cat Computer Science a redirect. --agr 01:05, 25 May 2007 (UTC)

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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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


 * It's not just theoretical though. Its concepts of the storage of information have been proven.  While it does encomass the theoretical field, it is not bound to it. 75.62.37.143 (talk) 19:15, 24 December 2008 (UTC)


 * Yes. That is why the lead sentence also includes the phrase "...and their implementation and application in computer systems". --Allan McInnes (talk) 10:53, 25 December 2008 (UTC)
 * It should just be left as is. The other way implies its only theoretical, even if you add that fragment at the end.  I vote we remove 'theoretical.' 76.20.25.186 (talk) 02:43, 26 December 2008 (UTC)


 * Leaving it "as is" would mean leaving the word "theoretical" in place, since that was the consensus version of the lead (which, as I've pointed out several times, took a long time to get to). I encourage you to look back through the archives of this talk page (in particular Archive 5) to see how we ended up with the current definition. I'd also ask you to please not remove the word "theoretical" from the lead sentence until other editors have had a chance to comment here. Thanks! --Allan McInnes (talk) 08:43, 26 December 2008 (UTC)


 * I think 75.62.37.143 misinterprets the meaning of the current lead. If we add some extra parentheses for clarity it would read: "..is the study of (the theoretical foundations of information and computation) and (their implementation and application in computer systems)." So it would already include both theory and practice. Cheers, —Ruud 11:43, 26 December 2008 (UTC)
 * I would like it to be more obvious that it doesn't just study the theoretical foundations information, but their actual foundation, and not just in computers! —Preceding unsigned comment added by 76.20.25.186 (talk) 07:29, 30 December 2008 (UTC)
 * I don't think I fully understand you, what is the difference between theoretical and actual foundations? —Ruud 22:05, 31 December 2008 (UTC)
 * There isn't one -- thus, remove theoretical. —Preceding unsigned comment added by 76.20.25.186 (talk) 23:57, 31 December 2008 (UTC)


 * If, in your opinion, there is no difference between "theoretical" and "actual" foundations, then I'm afraid I can't see why you are insisting on removing the word "theoretical" from the lead. Given what you've said above, the phrases "the study of the foundations of information and computation" and "the study of the theoretical foundations of information and computation" mean the same thing. If you have looked back through the archives of previous debate over the lead, as I previously encouraged you to do, you will have seen that the word "theoretical" was included because several editors felt that it was important to make it clear that computer science includes theory as well as practice. Since inclusion of the word "theoretical" both satisfies those other editors and (based on your comments above) makes no difference to the meaning of the sentence, why remove it? --Allan McInnes (talk) 09:43, 1 January 2009 (UTC)
 * I want it clearer that it includes theoretical AND practical... how about this? 76.20.25.186 (talk) 10:07, 1 January 2009 (UTC)


 * I fail to see how removing the word "theoretical" makes it clearer that computer science includes a theoretical component. As Ruud pointed out above, the existing sentence explicitly mentions both the theoretical and practical components of computer science (indeed, it was specifically constructed to do so). What about it (aside from the presence of the word "theoretical") are you not happy with? --Allan McInnes (talk) 11:03, 1 January 2009 (UTC)


 * Also, can you please stop modifying the article before we've managed to reach some kind of consensus here. If you have some alternative version of the lead sentence, it'd be helpful for you propose it here on the talk page first. Thanks. --Allan McInnes (talk) 11:03, 1 January 2009 (UTC)

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


 * As I've already stated, I don't see removing the word "theoretical" as being acceptable. It was specifically included in the lead, for reasons that are made clear in the archived discussions about the lead sentence. Would you care to suggest some other options for revising the lead sentence? --Allan McInnes (talk) 04:15, 3 January 2009 (UTC)
 * I've proposed two suggestions, both denied by you. Please try one yourself, or allow my edits through. 75.5.248.69 (talk) 07:23, 3 January 2009 (UTC)


 * Well, it's difficult to know what to suggest, since your stated desire is simply to remove the word "theoretical". Assuming that you're willing to move beyond that towards something that's more of a compromise, let's start with the current lead:


 * Computer science (or computing science) is the study of the theoretical foundations of information and computation and their implementation and application in computer systems.


 * I suppose there's a case to be made that the sentence isn't sufficiently clear, since you are apparently able to read it in a way that implies only the theoretical aspect of CS. Would the following be any more acceptable?


 * Computer science (or computing science) is the study of the theoretical foundations of information and computation, and of practical techniques for their implementation and application in computer systems.


 * Ruud, do you have any comments? --Allan McInnes (talk) 08:18, 3 January 2009 (UTC)


 * I like your second sentence. Although I also somewhat agree that talking about "theoretical foundations" and "practical techniques" would be like talking about "round circles". —Ruud 17:54, 3 January 2009 (UTC)


 * Also, I'd like to again reiterate my request for you to not modify the lead sentence until we've reached an agreement here on the talk page. What you are currently doing is a form of edit warring, which can eventually lead to the imposition of editing bans. --Allan McInnes (talk) 08:18, 3 January 2009 (UTC)
 * You are doing the same thing, are you not editing too? That point aside, you've yet to come up with any changes, while I have proposed some.  Please show some iniative of your own.  After all, this isn't a 1-person encyclopedia. :P 75.5.248.69 (talk) 04:10, 4 January 2009 (UTC)


 * I have previously (as my edit comments have stated) reverted the article to the last consensus lead sentence in response to your continual attempts to modify the lead despite my repeated requests that you not do so until we'd reached some kind of agreement here on the talk page. Furthermore, had you bothered to look at the recent edit history of the article you'd find that I've even stopped making those reversions, because I have no desire to partake in a protracted edit war.
 * As for your other point, I have so far proposed two courses of action:
 * Leave the lead sentence as is (I understand that you object to this course action, but then I object to your removal of the word "theoretical")
 * Modify the sentence as proposed above to provide greater emphasis on the practical aspects of computer science (this proposal was made here on the talk page, rather than in the article itself, since that's usually a better place to hammer out issues like this)
 * I'd appreciate it if you could respond to the proposal I've made above, instead of continuing to modify the article before we've reached a consensus. --Allan McInnes (talk) 05:05, 4 January 2009 (UTC)
 * I have no objection to point #2, I would just like some help coming up with it from you. You've denied all my suggestions, so please try it yourself. 75.5.248.69 (talk) 05:31, 4 January 2009 (UTC)
 * I'm sorry, perhaps you missed it. I have already (08:18, 3 January 2009 (UTC)) proposed a new lead sentence that attempts to place greater emphasis on the practical aspects of CS. You can find my proposal by looking a little higher up the talk page (just above this subthread). Ruud has already given it his ok. We are waiting to hear your take on it. --Allan McInnes (talk) 10:37, 4 January 2009 (UTC)
 * If you absolutely can't stand its current structure, I suppose option #2 would be better. 75.5.248.69 (talk) 17:22, 4 January 2009 (UTC)
 * Thank you. I will modify the lead accordingly. --Allan McInnes (talk) 21:07, 4 January 2009 (UTC)
 * Thanks. 75.5.248.69 (talk) 22:51, 4 January 2009 (UTC)

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

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

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

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

Mathematical foundations

 * {| style="border:1px solid #ddd; text-align:center; margin: auto;" cellspacing="15"


 * $$ P \Rightarrow Q \,$$
 * [[Image:Elliptic curve simple.png|96px]]
 * [[Image:6n-graf.svg|96px]]
 * int x
 * [[Image:Commutative diagram for morphism.svg|96px]]
 * [[Image:SimplexRangeSearching.png|96px]]
 * Mathematical logic
 * Number theory
 * Graph theory
 * Type Theory
 * Category Theory
 * Computational geometry
 * }
 * }

Theory of computation

 * {| style="border:1px solid #ddd; text-align:center; margin: auto;" cellspacing="15"


 * [[Image:Afd exemple.png|96px]]
 * [[Image:Wang tiles.png|96px]]
 * P = NP ?
 * [[Image:Blochsphere.svg|96px]]
 * Automata theory
 * Computability theory
 * Computational complexity theory
 * Quantum computing theory
 * }
 * }

Algorithms and data structures

 * {| style="border:1px solid #ddd; text-align:center; margin: auto;" cellspacing="15"


 * $$O(n^2)$$
 * [[Image:Kruskal Algorithm 0.svg|96px]]
 * [[Image:Singly linked list.png|96px]]
 * Analysis of algorithms
 * Algorithms
 * Data structures
 * }
 * }

Programming languages and compilers

 * {| style="border:1px solid #ddd; text-align:center; margin: auto;" cellspacing="15"


 * [[Image:Ideal compiler.png|96px]]
 * [[Image:Python add5 syntax.svg|96px]]
 * Compilers
 * Programming languages
 * }
 * }

Scientific computing

 * {| style="border:1px solid #ddd; text-align:center; margin: auto;" cellspacing="15"


 * [[Image:1u04-argonaute.png|96px]]
 * [[Image:User-FastFission-brain.gif|96px]]
 * [[Image:Naphthalene-3D-balls.png|96px]]
 * [[Image:Neuron-no labels.png|96px]]
 * [[Image:X-43A (Hyper - X) Mach 7 computational fluid dynamic (CFD).jpg|96px]]
 * [[Image:Wind-particle.png|96px]]
 * $$y = \sin(x) + c$$
 * Bioinformatics
 * Cognitive Science
 * Computational chemistry
 * Computational neuroscience
 * Computational physics
 * Numerical algorithms
 * Symbolic mathematics
 * }
 * }


 * I am in favor of your proposal, which has generally excellent illustrations. Palaeovia 16:40, 5 May 2007 (UTC)


 * Support - an excellent idea. I'd further suggest that we use the conversion to visual representations as an opportunity to clean up the list of fields, such that it complies with List guideline and Lists in Wikipedia. --Allan McInnes (talk) 18:28, 5 May 2007 (UTC)


 * Do it - This looks fantastic. CharlesGillingham 17:31, 12 October 2007 (UTC)

Fields of Computer Science
 * If you do, do it at the location of this template.
 * That way we can perhaps go a little more in depth into the fields and maybe make a more comprehensive and compact list, but I definitely love the pictures.--GlasGhost (talk) 02:42, 30 August 2008 (UTC)


 * This is great. What about something like this for the Software Engineering image?  I don't know about the copyright though. http://gemsres.com/photos/story/res/38280/Kolawa-fig1.jpg  comes from http://adamkolawa.sys-con.com/node/38280 66.91.255.120 (talk) 07:09, 29 December 2009 (UTC)

Dead link for first source...
I need help to locate the first source that was cited for Computer Science. Can this be located without using Google's cache feature? Pfuchs722 (talk) 14:26, 4 May 2010 (UTC)
 * Try wayback.  &#x211A;  uackor 07:28, 7 May 2010 (UTC)

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


 * Agreed it falls short. Computer Science is concerned with data structures and algorithms, natch. Use of the term "information" here is simply too broad and ambiguous to be helpful; moreover, it is (often) incorrect. Information is data in human-useful context, whereas computer science is concerned most directly with collection, storage, presentation of data and its processing. I dislike the term "computation" as well, as it sounds a whole bunch like what is being described, but I decided to live with it. It is simply not worth my time to get into a long debate or reversion war on either of these terms but using the term "information" here is a serious compromise on reality. Please check out the information entry to get an idea of what I mean. Thanks, - TO Tee Owe (talk) 19:48, 21 May 2010 (UTC)


 * "Data structure" seems too tight a definition to me. For example, cryptography or compression are clearly concerned with information, are both often considered part of computer science, and neither are directly concerned with data structures (except insofar as data structures may be used in their implementation). Furthermore, there is at least one reference in the lead that specifically says "Computer science is the study of information" (or something like that anyway). Perhaps the link to information is incorrect, but I think the general sentiment is about right.
 * As for algorithm vs. computation, it's again a case of the specific vs the general. There are -- at least according to some people -- non-algorithmic computations. Examples include quantum computing (no sequence of steps), and reactive or interactive programs (some researchers claim that intermediate inputs and interaction with environment fall outside the standard definitions of an "algorithm").
 * Finally, I'll just point out that the lead sentence as it exists right now is the end result of an extremely lengthy debate and consensus-building exercise a couple of years back (dig back through the talk page archives if you want to see the debate in its entirety), trying to reach a version that satisfied many people rather than any one individual. That said, if you want to reopen the debate, by all means do so.
 * --Allan McInnes (talk) 02:02, 22 May 2010 (UTC)


 * Cryptography and compression are algorithmic, not informational (yes I know cryptography is debatably both, but the act of encoding and decoding are algorithms). Do you have any more examples that would support the term using the term information instead? The big thing here is that computer science and information systems (IS) are distinct disciplines and the description for both should clearly delineate them as such.  Differences include:
 * -IS is about information use (by people) and meaning, and is indifferent as to how data is stored and retrieved within machine boundaries.
 * -CS is does not require data to have human-usable context, therefore it is just data and not yet information until it is presented in context
 * -Computer Science is strictly scientific and objective, e.g. changes in data structures and algorithms can be measured and tested.
 * -Information Systems leverages applied science and engineering to solve problems, exploit opportunities and address directives in business and society. There is more, but I think this expresses my concern. Tee Owe (talk) 08:44, 22 May 2010 (UTC)


 * The implementation of cryptographic systems or compression schemes may be algorithmic in nature. The study and analysis of such systems is however quite firmly rooted in information theory. As for other examples, here are a few:
 * Several different universities from that characterize computer science as a study of (among other things) information:
 * "Computer science is the study of information and computation, and of practical techniques for using machines to process information and perform computation."
 * "Computer Science is the study of information processes."
 * "Computer science is the study of information and algorithms within the context of real and abstract computing devices. Computer scientists are interested in such topics as the representation and storage of information; algorithms to access, display, edit, and transform information; programming languages to express algorithms; and hardware and software processors to execute algorithms."
 * "Computer science is the study of information handling and its application to the problems of the world."
 * Various articles and other discussions (dating from the early days of CS in the 1960s all the way through to 2010) on the nature of computer science that mention "information" as a key element of computer science:
 * George E. Forsythe, "A University's Educational Program in Computer Science" (1966), says "I consider computer science in general to be the art and science of representing and processing information and, in particular, processing information with the logical engines called automatic digital computers."
 * Peter Wegner, "Research Paradigms in Computer Science" (1976), identifies several definitions of CS including "Computer science is the study of information structures".
 * Gordana Dodig-Crnkovic, "Scientific Methods in Computer Science" (2002), says that in experimental computer science "The subject of inquiry in the field of computer science is information rather than energy or matter." (there's also some discussion of the general idea of "information" as being central to CS).
 * David Evans, "1000 Things Every Self-Respecting Computer Scientist Should Know" (2003), asserts that "Computer science is the study of information processes."
 * Peter Denning, "What is Computation?" (CACM 2010), claims that the current view of computer science is the "Study of information processes, both natural and artificial".
 * A couple of ACM-endorsed definitions that specifically describe computer science as being concerned with information:
 * The IEEE/ACM Computer Science Accreditation Board's old "Computer Science as a Profession" description says "Computer science is a discipline that involves the understanding and design of computers and computational processes. In its most general form it is concerned with the understanding of information transfer and transformation."
 * The ACM Education Board Task Force on the Core of Computer Science, "Computing as a Discipline" (1989), defines computer science as "the systematic study of algorithmic processes that describe and transform information: their theory, analysis, design, efficiency, implementation, and application."
 * If you're looking for specific examples of sub-fields that are concerned with information then you might start with all of the work on databases and information retrieval, the fields of cryptography and compression, the study of information flow in program security, the study of information representations (entity-relationship and object models, AI research on knowledge representation, low-level design of number representations like IEEE floating point, etc.), or work on the semantic web. There're probably others, but those are what I can think of off the top of my head.
 * I'm not going to bother addressing your points regarding the distinction between CS and IS since I don't see them as relevant to this discussion: I never said anything about IS, and I never claimed it was the same as CS.
 * --Allan McInnes (talk) 12:51, 22 May 2010 (UTC)


 * Thank you Allan McInnes for your well-thought and detailed answer. Unfortunately it does not really address the concern.  It occurs to me the problem is semantic.  In everyday English language, we often use words like "information" and "data" interchangeably as synonyms.  In each of your examples, one can typically substitute "data" for the term "information".  Yes "information" can mean just primarily "data", but we have an opportunity for its meaning to take on more precision.  I suggest it is this difference in meaning that better defines the distinction between the two disciplines (IS/CS).  So left like it is, the interested reader will miss the opportunity to see the distinction between the two disciplines as well as the important distinction between the two concepts.  I have no problem with CS practitioners wishing to cross the boundary and practice IS, but we all need to agree on where that boundary is. The existing description only further muddies the waters.  If I am alone in thinking the distinction is important, I guess I will continue doing my own mental substitution. Tee Owe (talk) 17:59, 23 May 2010 (UTC)


 * While you may be correct that there is an opportunity for the meaning of "information" to take on more precision, the fact remains that standard usage of the word "information" is -- as you freely admit -- not the meaning you are trying to ascribe to it. Nor is Wikipedia the venue to attempt to redefine (or more tightly define) the meaning of the word. As I think the references I've provided above show, the word "information" (in its standard usage) is quite widely used in descriptions of computer science. You may disagree with that usage, feel that sharper distinctions should be drawn, or feel that boundaries need to be better defined, but Wikipedia is not the place to try to draw those boundaries or make those distinctions. Certainly not in the lead of an article. It might be reasonable to address the distinction further down the article, if that view is significant and verifiable (in other words, if there has been a lot of stuff written about the fact that computer science isn't really about studying information because "information" means something other than "data"). --Allan McInnes (talk) 00:07, 24 May 2010 (UTC)


 * I'm about to relent and concede, but one question. (When you get a moment, please look at the information article; I would suggest there is no single standard usage, and acceptable usage does not necessarily mean correct usage.)  Where in the encyclopedia might one see the distinction between computer science and information systems if they are both about "information"? Thanks Tee Owe (talk) 02:33, 24 May 2010 (UTC)


 * Presumably the difference would be seen in which interpretation of "information" the different disciplines opt to use in explaining themselves, and also in what they claim to do with "information". Auto racing and automotive repair are both "about" cars, but it's pretty clear that they are different things. --Allan McInnes (talk) 06:58, 24 May 2010 (UTC)


 * As you have said, this may not be the place to "fix" it, but I think there is a mostly unconscious effort to expand the meaning of CS beyond its essential concern for data structures and algorithms. For example information theory is not really in the domain of CS but in that of applied math and arguably engineering. For every topic beyond data structure and algorithms that one might argue also belongs with CS, I suspect we can find a better "home" discipline.  To make use of your analogy on "cars" we could acceptably say both topics involve maintaining a car.  But to use the phrase "maintaining a car" in its first sentence might give readers a skewed perspective on auto racing.  This is the sort of thing that I suggest is happening here.  Thanks for the discussion. Tee Owe (talk) 18:54, 24 May 2010 (UTC)


 * I agree that the Denning quote is bit out of place in the lead paragraph. It should probably be moved further down the article. --Allan McInnes (talk) 02:02, 22 May 2010 (UTC)

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


 * {| style="border:1px solid #ddd; text-align:center; margin: auto;" cellspacing="15"


 * [[Image:Eniac.jpg|right|250px|thumb|[[ENIAC]] was the first general-purpose electronic computer. The completed machine was unveiled in 1946. (U.S. Army photo)]]
 * Roadrunner supercomputer HiRes.jpg is a supercomputer built by IBM and currently the world's fastest computer. It is designed for a peak performance of 1.7 petaflops.]]
 * Internet_map_1024.jpg.]]
 * May give the page an oldfashion feel
 * Needs to be updated each time we get a faster computer
 * }
 * }
 * }

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


 * I agree that we need an image, but these are not really illustrations of computer science. For example, the first two might be more appropriate in Computing – I would prefer that the opening image emphasises that computer science is not the same thing as computing, instead of doing the opposite. What about having an illustration related to a computational problem? Perhaps an NP-hard game? — Miym (talk) 13:46, 14 November 2009 (UTC)

 Computer science deals with the theoretical foundations of information and computation, and of practical techniques for their implementation and application. (clockwise from top-left) Roadrunner, Utah teapot, Quicksort, Internet


 * Please be constructive (suggest some pictures and text). I do not think it is possible to find a single picture which represents all of computer science. Another possibility is to do as Biology and present a selection of fields. An example is shown to the right. The selection chosen here can represent highly calculation-intensive tasks, computer graphics, algorithms, complexity, distributed computing etc.  &#x211A;  uackor 16:06, 16 November 2009 (UTC)
 * Obviously no picture can show a whole field... the internet one looks fine though. 24.23.7.103 (talk) 00:42, 21 December 2009 (UTC)


 * Looks nice, but I don't quite understand how it illustrates computer science. In particular, there seems to be no connection between the lead paragraph and the illustration next to it. — Miym (talk) 00:53, 21 December 2009 (UTC)


 * Feel free to change the caption to something that you think fits. Maybe something like: "A graphical representation of the Internet, one of the well-known achievements of Computer Science." 24.23.7.103 (talk) 03:41, 21 December 2009 (UTC)


 * I rather like the ENIAC picture, gives a nice link to the history of computing also. The internet and super computer photos will be outdated very quickly --NickThePhotographer (talk) 20:54, 23 May 2010 (UTC)

 Computer science deals with the theoretical foundations of information and computation, and of practical techniques for their implementation and application. (clockwise from top-left) Graphics, Complexity theory, Language theory, HCI


 * Try, try and try again. Here is another selection of fields which captures some areas of CS and which are in the lead paragraph. Unfortunately the text may seem a bit long. Anyone who has any suggestions for a shorter text or objections to this?  &#x211A;  uackor 13:26, 10 January 2010 (UTC)

 Computer science deals with the theoretical foundations of information and computation, and of practical techniques for their implementation and application.


 * You could make the text shorter like in this example: figures are links (with tooltips). — Miym (talk) 14:03, 10 January 2010 (UTC)


 * I have added the revised sugestion to the article. Subsequent changes can be discussed further here.  &#x211A;  uackor 15:15, 10 January 2010 (UTC)


 * For some reason, when we were last discussing these figures, the quicksort animation had a static thumbnail, showing only the first frame of it (at least on my computers). Now I realise that it wasn't a feature, but a bug which has been fixed; currently the quicksort thumbnail plays the full animation. Unfortunately, this makes the use of it as a lead figure questionable: animations are extremely eye-catching and distracting, while the lead figure should be unintrusive. Could we perhaps find another figure; simply taking one of the frames of the animation might be good enough as a temporary solution? — Miym (talk) 08:41, 19 January 2010 (UTC)

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

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

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

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

I think this topic should be mentioned in this article
Computational geometry  - unsigned

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

Palaeovia 17:07, 23 April 2007 (UTC)

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

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

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

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

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

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

Cfteague2 17:39, 24 October 2007 (UTC)

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

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

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

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

NevilleDNZ 20:00, 24 October 2006 (UTC)


 * True, it isn't really a science, more like an engineering discipline. However its worth noting that Dijkstra's comment doesn't really apply any more since most computer science courses have a heavy emphasis on software engineering. Personally I like the term "software engineering" since that's a pretty accurate description of the real-life discipline. Gwernol 20:29, 24 October 2006 (UTC)


 * And yet good engineering is informed by science. So there should be some kind of computer/computing/software science there somewhere in the background of "software engineering". Otherwise it isn't engineering, it's tinkering. --Allan McInnes (talk) 03:33, 2 December 2006 (UTC)
 * There is a science behind software engineering, its math(s). Gwernol 14:38, 19 April 2007 (UTC)


 * You mean like type theory, the lambda calculus, or the pi calculus? All of those, although mathematical in nature, are far more active areas of research in CS. Some originated in CS. As a discipline, CS is motivated to examine different problems than mathematics. Of course, theoretical CS does use a lot of mathematics. But then so does theoretical physics.
 * Regardless of what most CS courses teach (which is largely driven by market demands, and the fact that corporations hire CS graduates to be software engineers) there is a difference in the focus and goals of CS (as a discipline, rather than a degree program) and SE. There is of course substantial overlap in the areas of knowledge. But they remain different disciplines. David Parnas has done a good job of articulating the differences. I'd also highly recommend Walter Vincenti's excellent book "What Engineers Know and How They Know It", which does a good job of explaining the essential differences between a science and an engineering discipline. --Allan McInnes (talk) 02:37, 20 April 2007 (UTC)


 * Saying that "Dijkstra's comment doesn't really apply any more since most computer science courses have a heavy emphasis on software engineering" is pretty much giving in to the fact that the industry won over the Computer Science department, and completely ignoring the fact that Computer Science as such still exists, just not in the major "courses". Computer Science as a discipline still contains a lot of science to be done, and we shouldn't blame the science for the sorry state of affairs of most major courses. ~ Gretgor --201.21.181.131 (talk) 15:42, 7 June 2011 (UTC)


 * Maurice Wilkes is reputed to have disliked the term computer science and said "I have been a scientist and I have been an engineer -- I know the difference" Neil Dodgson 18:57, 23 February 2007 (UTC)


 * It just happens to be that Maurice Wilkes never worked with the more scientific side of Computer Science. He always worked too close to the machine, and too far away from the theoretical foundations of computational processes. Thus, he assumed his experience was all there was for Computer Science, disregarding the theoretical fields such as Computational Complexity, which (I believe nobody will disagree) is inherently mathematical. There's no denying that the fundamental works Maurice Wilkes created for automatic computing were of engineering nature, but Computer Science as such resides in a different spectrum, not the one Wilkes worked with. ~ Gretgor --201.21.181.131 (talk) 15:42, 7 June 2011 (UTC)

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

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

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


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

I have a problem with this line
The general public sometimes confuses computer science with careers that deal with computers (such as information technology)

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


 * Then you're one of the people who confuses the two. Many people who study physics or mathematics end up working in IT, but then you're not really a physicist, mathematician nor computer scientist (except perhaps for a few of the people that end up in the research & development department). You're probably an engineer, computer programmer or project manager. —Ruud 10:40, 7 October 2011 (UTC)


 * "Many people who study physics or mathematics end up working in IT" yes this was true in the past but nowadays at least in my country it has become a requirement to have bachelor's degree in Computer Science or Software Engineering for career in information technology for me it seems that you are confused on the scope of Computer Science Andri12 (talk) 11:45, 7 October 2011 (UTC)


 * Sure, as does becoming an actuarian often require a degree in mathematics. There's a distinction between the degree of computer science, the careers people with such a degree pursue and the academic/scientific discipline of computer science. Someone with a degree in mathematics working at a bakery or for an insurance company might properly call himself a a "mathematician" in the sense that he has a degree in mathematics, but not in the sense that it is his current profession. The distinction between computer scientists a web developer or computer technician is often much less clear to the general public. There is a big distinction as the latter two often do not employ the methods of formal of empirical science. What this sententence is trying to make clear is that not every computer professional is a computer scientist (although a good number of them are.) —Ruud 12:00, 7 October 2011 (UTC)


 * I rephrased the sentence, is this more acceptable to you? —Ruud 12:31, 7 October 2011 (UTC)


 * now the sentence is acceptable Andri12 (talk) 13:55, 7 October 2011 (UTC)

Set theory
set theory is a major field, yet not mentioned! —Preceding unsigned comment added by 75.57.253.230 (talk) 00:38, 27 April 2009 (UTC)
 * Does anyone agree with this user and the other anonymous user who is currently pushing mention of computer science into maths articles? Is there any evidence that computer science regards set theory as a subfield? --Hans Adler (talk) 11:12, 1 May 2009 (UTC)
 * Actually, they are probably the same user, and you can add 98.208.55.34 to the list as well. All three IPs trace to the Sacramento area, and two of them have edited UCDavis-related content. --Trovatore (talk) 07:44, 2 May 2009 (UTC)
 * Computer scientists use the language of sets (as do all mathematicians, scientists and engineers), and know De Morgan's laws. However, with rare exceptions, they do not study Zorn's Lemma. Until they do so as a matter of course, Set Theory is certainly not part of Theoretical Computer Science.-- Palaeovia talk 11:41, 1 May 2009 (UTC)
 * well, actually set theorists are more likely to use the (equivalent) wellordering theorem than Zorn, but other than that the point is well taken. --Trovatore (talk) 07:31, 2 May 2009 (UTC)


 * Why graph theory was noted as field of computer sci., but the set theory was not noted? :-) Please, see the next section! --Tim32 (talk) 19:57, 6 May 2009 (UTC)
 * Actually, we could note that computer scientists, especially computational complexity theorists, make loads of mentions to Cantor's naive set theory, especially when proving statements about certain turing machines. ~ Gretgor --201.21.181.131 (talk) 03:26, 8 June 2011 (UTC)
 * Set theory (and a few other topics) was removed from the AMS Classification Scheme for math quite some time ago and replaced with a new phrase including "Foundations". You can see that on the ams.org web site. 198.123.57.82 (talk) 17:32, 30 November 2011 (UTC)

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


 * I've yet to find a good source giving a comprehensive listing of what the subfields of computer science are. To some extends this is always is always going to be a synthesis of various sources. Neither the current, nor the previous organization where properly supported by sources. The current organization does follow the SIGACT definition of theoretical computer science (see Theoretical computer science) except that they do not include Databases, data mining and information retrieval (but then again, they do co-organize the Symposium on Principles of Database Systems).
 * In my opinion this organization is more useful the old one, there is an endless debate over whether fields such as software engineering are or are not parts of computer science proper and the previous terminology "Related fields" seems to take the position that they where not.
 * A good counter-argument against this organization is that most subfields range from theoretical to applied. E.g in programming language theory there is a lot of purely mathematical work on semantics to much more applied work involving language design and compiler construction.
 * —Ruud 11:15, 30 November 2011 (UTC)


 * It does seem very odd to have DB and IR as theoretical. And you're right that most fields are mixed, theoretical and applied.  I think it would make more sense to get rid of the binary partition and just list the areas.  And just because a theory group claims certain areas as part of their scope (e.g. VLSI), that doesn't mean that area isn't also applied, or even mostly applied.   Dicklyon (talk) 15:33, 30 November 2011 (UTC)


 * Perhaps, yes. I think the currently listed subfields (i.e. the 3rd-level headers) are an accurate reflection of the various kinds of research groups you'll find at computer science departments. My motivation for further subdividing those mainly arose from the fact that 1) the number of subfields seemed a bit too large not to be further subdivided and 2) it seemed odd not to mention the ubiquitous term "theoretical computer science" here. I'm not quite satisfied with the current presentation, but I think the articles has bigger issues that need to be dealt with. —Ruud 21:32, 30 November 2011 (UTC)


 * Theoretical computer science was mentioned before your re-org, as one area with a few subareas, but not as a major division parallel to applied. That wasn't so bad.  We can go back to something like that if you want, but not put so many things in it as we have now.  Dicklyon (talk) 01:06, 1 December 2011 (UTC)

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


 * pulled "Computer scientists invent algorithmic processes that create, describe, and transform information and formulate suitable abstractions to design and model complex systems." For the obvious reason, viz. that it is an incomplete, inaccurate, and misleading statement. 72.228.177.92 (talk) 21:10, 26 January 2012 (UTC)


 * Finally, the 1st and second paragraphs could be merged on their boundary sentences. Saw a recent piece in CACM where somebody was saying that CS couldn't be an S because it was about an artefact. That might be added as a reference to the Name of the Field &sect; 72.228.177.92 (talk) 21:27, 26 January 2012 (UTC)


 * In my opinion your rewrite of the lead section, which was largely the result of long discussions on this talk page, is not an improvement. See Matti Tedre: Computing as a Science: A Survey of Competing Viewpoints. Minds and Machines 21(3): 361-387 (2011) for an excelent overview of many notable definitions of computer science. The old lead summarized these viewpoints more accurately. —Ruud 01:31, 27 January 2012 (UTC)


 * It's not a free source, but the abstract is in agreement with the basic point in the title of this thread. Revert to the old one if you like but at least correct the grammar and composition, what was there looked like a committee hatchet job so don't doubt your statement. Also performed merge mentioned above. Lycurgus (talk) 04:14, 27 January 2012 (UTC)

Quoting the telescope comparison. Who said it first?
http://thinkexist.com/quotes/edsger_dijkstra/ This Edsger Dijkstra guy is very notable in this field, and was quoted as saying a lot of things. He also is surely covered in books. Some reliable sources state he made the quote. and well, Google news search shows hits for the quote, and attributes it to him. Various books accredit the quote to him as well. I think he is the one that said it.  D r e a m Focus  18:26, 29 August 2011 (UTC)
 * I checked to see who had the most hits with Google news and book search. Everyone of those points to Dijkstra except one.   Wikipedia is about variability not what we think is true.  Almost all sources claim that Dijkstra made that quote first.   D r e a m Focus  18:35, 29 August 2011 (UTC)
 * I added in a reference to a reliable source. Research Methods for Science By Michael P. Marder, page 14, published by Cambridge University Press.   D r e a m Focus  10:19, 30 August 2011 (UTC)
 * List of thinkers influenced by deconstruction list Michael Marder. His book on psychics is also used as a reference in two articles.    D r e a m Focus  10:21, 30 August 2011 (UTC)


 * Playing devil's advocate here: I have found the quote in at least two papers that would count as reliable sources by Wikipedia's standard (writen by computer scientists, published in peer-reviewed journals). One of them clearly took the quote from this Wikipedia article however, so there it is possible the other did as well. What we really need is a number of reliable sources, preferably dating from before when this quote was introduced in this article (2001?), so we can factually state the quote is often attributed to Dijkstra. —Ruud 10:35, 30 August 2011 (UTC)
 * I searched Google Scholar for all places it appeared before 2001. One result is from 1993.   D r e a m Focus  10:40, 30 August 2011 (UTC)

Last Friday, I received a response from Ian Parberry: "I'm embarrassed to admit that I inadvertently plagiarized Dijkstra. Several people have pointed that out over the course of the last 18 years. I had heard his quote but forgot that it was a quote. The end of the statement, after the telescopes bit, is probably mine. It was unconscious on my part. Ian" —Ruud 10:24, 6 September 2011 (UTC)

The link http://larc.unt.edu/ian/research/cseducation/ has Ian Parberry suggesting that Michael Fellows is responsible for the quote. -150.203.209.134 (talk) 00:38, 30 April 2012 (UTC)

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


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

Here is a copy of the text from wikiquote:


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

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


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

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

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

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

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

ss — Preceding unsigned comment added by 208.105.10.234 (talk) 01:14, 23 May 2014 (UTC)

split Education section into its own article
Computer science education? There's already Physics education, Mathematics education, Engineering education, etc. Fgnievinski (talk) 23:03, 7 July 2014 (UTC)

Information science
The section Computer science is empty, it contains only pictures now. It should be extended, I suppose. -- Andrew Krizhanovsky (talk) 16:07, 23 December 2014 (UTC)

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

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

So I've removed Data structures from the listing, in this diff:  --Blaisorblade (talk) 16:12, 16 June 2008 (UTC)
 * Data structures are some times the most important part of a systems design. Defining the relationships between data elements and it's organization was a most important part of program design. It may not be as important to day with current data base tek. But historically it merits a place in history.

Steamerandy (talk) 18:17, 27 December 2014 (UTC)

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

The Great Insights of Computer Science?
Doesn't this section seem out of place of the otherwise very encylopediac organization of the text? It looks like a someone simply read Rapaport's article and copied and pasted the text there. — Preceding unsigned comment added by DracoDruida (talk • contribs) 02:46, 2 April 2015 (UTC)
 * The title of the section might not belong here, but I believe the content does. Carewolf (talk) 11:51, 2 April 2015 (UTC)

Is Computer Science, A Science?
Mathematics has been wrongly classified as an exact science, which is a contradiction if it is exact it can not be a science. Computer science as a branch of mathematics, is not necessarily a science, at least not the more formal branches closely related to mathematical logic. Neural nets, evolving computing, and other inexact ways to compute are more experimental in nature, in such cases it is possible to talk about computing as a science. I have seen this discussion by mathematicians questioning their activity being classified as science, but I have not seen that discussion with respect of computing. I know that Computer Science is a wide established name, but not necessarily correct. Some discussion should exist in literature, if someone knows that, please help to discuss this aspect in this article. — Preceding unsigned comment added by 189.178.74.12 (talk • contribs)
 * Computer Science (also known as informatics or information science) is no branch of Mathematics
 * It is established as department/faculty in most Universities.
 * So what is your problem? --Kgfleischmann (talk) 04:39, 28 July 2015 (UTC)

I would argue that this article's introduction wrongly classifies Computer Science as a science. The name is a misnomer in the same way calling mathematics "Number Science" would be, for just as with the fields of mathematics and logic, to describe it as "scientific" is at best describing only the potential for applying scientific processes to aspects of it and not accurately describing the totality of the entire field. chad. (talk) 19:24, 27 January 2016 (UTC)

External links modified
Hello fellow Wikipedians,

I have just added archive links to 4 one external links on Computer science. Please take a moment to review my edit. If necessary, add after the link to keep me from modifying it. Alternatively, you can add to keep me off the page altogether. I made the following changes:
 * Added archive https://web.archive.org/20060210172109/http://www.scottlan.edu:80/lriddle/women/ada-love.htm to http://www.scottlan.edu/Lriddle/women/ada-love.htm
 * Added archive https://web.archive.org/20141008080148/http://www.telegraph.co.uk/money/main.jhtml?xml=/money/2006/08/27/ccsoft27.xml to http://www.telegraph.co.uk/money/main.jhtml?xml=/money/2006/08/27/ccsoft27.xml
 * Added archive https://web.archive.org/20140812013839/http://www.stanford.edu/dept/ICME/docs/history/forsythe_knuth.pdf to http://www.stanford.edu/dept/ICME/docs/history/forsythe_knuth.pdf
 * Added archive https://web.archive.org/20131014194456/http://www.claymath.org/millennium/P_vs_NP to http://www.claymath.org/millennium/P_vs_NP/

When you have finished reviewing my changes, please set the checked parameter below to true to let others know.

Cheers. —cyberbot II  Talk to my owner :Online 18:22, 25 August 2015 (UTC)


 * Two of the links, https://web.archive.org/20141008080148/http://www.telegraph.co.uk/money/main.jhtml?xml=/money/2006/08/27/ccsoft27.xml and https://web.archive.org/web/20140812013839/http://www.stanford.edu/dept/ICME/docs/history/forsythe_knuth.pdf do not work. The others work. Me, Myself &#38; I (talk) 04:29, 28 January 2016 (UTC)

External links modified
Hello fellow Wikipedians,

I have just added archive links to 1 one external link on Computer science. Please take a moment to review my edit. If necessary, add after the link to keep me from modifying it. Alternatively, you can add to keep me off the page altogether. I made the following changes:
 * Added archive http://web.archive.org/web/20060911104502/http://www.cis.cornell.edu/Dean/Presentations/Slides/bgu.pdf to http://www.cis.cornell.edu/Dean/Presentations/Slides/bgu.pdf

When you have finished reviewing my changes, please set the checked parameter below to true or failed to let others know (documentation at ).

Cheers.—cyberbot II  Talk to my owner :Online 08:40, 10 March 2016 (UTC)

The name of the field
The article mentions thast Naur promoted the name "datalogy" (which turned 50 earlier this year). Also, I believe the name "cybernetics" is or has been used, e.g. in the former East Block. With a suitable source, this should perhaps be mentioned in the same section.--Nø (talk) 09:26, 24 May 2016 (UTC)

Choices
Regardless of degree, this is not taught in schools. — Preceding unsigned comment added by 23.117.16.22 (talk) 01:41, 24 October 2016 (UTC)

Semi-protected edit request on 11 December 2016
2600:1011:B16D:1B03:8943:6566:E3C1:463A (talk) 13:51, 11 December 2016 (UTC) If you want to suggest a change, please request this in the form "Please replace XXX with YYY" or "Please add ZZZ between PPP and QQQ". Please also cite reliable sources to back up your request, without which no information should be added to, or changed in, any article. - Arjayay (talk) 15:37, 11 December 2016 (UTC)
 * Red information icon with gradient background.svg Not done: as you have not requested a change.

Semi-protected edit request on 5 March 2017
I believe the small image for computer vision (the eye) does not accurately depict the field of computer vision. Instead I believe an image of a computer vision application with an image similar to this image which shows computer object recognition of automobiles. Tjgerot (talk) 02:06, 5 March 2017 (UTC)


 * Red information icon with gradient background.svg Not done for now: It's better to seek consensus for your proposed change before requesting that someone actually make the change. Also, it's best to make very specific edit requests—"change x to y". Finally, please be aware that Wikipedia pages don't display external images; all image files are hosted locally. In other words, you need to select an image that's already uploaded and therefore actually available to use. (You can also upload one yourself. See Uploading images for guidance.) Rivertorch   FIRE WATER   05:16, 5 March 2017 (UTC)

Semi-protected edit request on 15 March 2017
Capitalize 'science' in the title so that it is "Computer Science" 198.51.130.76 (talk) 03:02, 15 March 2017 (UTC)
 * Red information icon with gradient background.svg Not done: It would be inconsistent with Wikipedia style to do this. Compare Natural science, Earth science, and Social science. You're welcome to make a case for this being the exception. However, even beyond Wikipedia, the second word in these constructions is usually lowercase except when it's part of a longer phrase (e.g., Department of Computer Science). Rivertorch   FIRE WATER   03:44, 15 March 2017 (UTC)

External links modified
Hello fellow Wikipedians,

I have just modified one external link on Computer science. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:
 * Added archive https://web.archive.org/web/20160205000119/http://membercentral.aaas.org/categories/computer-science to http://membercentral.aaas.org/categories/computer-science

When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.

Cheers.— InternetArchiveBot  (Report bug) 14:35, 2 August 2017 (UTC)

External links modified
Hello fellow Wikipedians,

I have just modified one external link on Computer science. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:
 * Added archive https://web.archive.org/web/20160215100211/http://www.eden-study.org/articles/2007/three_paradigms_of_computer_science.pdf to http://www.eden-study.org/articles/2007/three_paradigms_of_computer_science.pdf

When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.

Cheers.— InternetArchiveBot  (Report bug) 21:16, 11 August 2017 (UTC)

Semi-protected edit request on 10 September 2017
In the first paragraph from Education section, it's worth mentioning that computer science is promoted in the U.S as part of STEM education. So, I would add to the paragraph:

"Some countries, such as Israel, New Zealand and South Korea, have already included computer science in their respective national secondary education curriculum.[57][58] Several countries are following suit.[59]" In the U.S, computer science is promoted as part of STEM education, which is the academic disciplines of science, technology, engineering and mathematics. Tesopc (talk) 02:08, 10 September 2017 (UTC)
 * Red information icon with gradient background.svg Not done: please provide reliable sources that support the change you want to be made. Rivertorch   FIRE WATER   05:24, 10 September 2017 (UTC)

External links modified
Hello fellow Wikipedians,

I have just modified 2 external links on Computer science. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:
 * Added archive https://web.archive.org/web/20080828002940/http://www.acm.org/class/1998/overview.html to http://www.acm.org/class/1998/overview.html
 * Added archive https://web.archive.org/web/20141021153204/http://www.acm.org/education/curric_vols/CC2005-March06Final.pdf to http://www.acm.org/education/curric_vols/CC2005-March06Final.pdf

When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.

Cheers.— InternetArchiveBot  (Report bug) 11:39, 22 December 2017 (UTC)

Informatics Practices
This seems to be a practical informatics syllabus for the Indian exam system rather than a field of computer science. Personally I don't think it should be listed as a field on the main article, but just asking if there is any justification for its current inclusion here. Shadowssettle(talk) 18:23, 5 December 2018 (UTC)

I agree that this is not a field of computer science. To make matters worse to my eyes, it uses IP right after information practices ignoring what IP means essentially everywhere in computer science. Also, it uses course and field as synonyms in "The course mainly covers coding, software and networking concepts. This field is (...)", which makes almost no sense. BernardoSulzbach (talk) 19:16, 5 December 2018 (UTC)


 * Completely agree the wording also makes it unclear whether it is talking about a particular course or a subject (the former of which has no place on a general article in my opinion). However even if the wording were cleaned up, I don't think it'd solve the underlying problem Shadowssettle(talk) 21:33, 5 December 2018 (UTC)


 * Seeing as there seems to be no disagreement on this, I have removed this section. If you feel it should be added back in, feel free to continue the discussion Shadowssettle(talk) 10:39, 24 December 2018 (UTC)

Computer science is displaying Renewable Energy topic
For some strange reason, the Computer Science page was displaying the Renewable Energy topic. https://en.wikipedia.org/wiki/Computer_science

I checked again now and it is fixed.

— Preceding unsigned comment added by Abrooke (talk • contribs) 14:37, 21 March 2019 (UTC)

Reason for the synonyms
A user took out some of the synonyms of computer science, saying in the edit summary that they are "uncommon synonyms and limited subfields." However, they still need to be in there because there are redirects under those names to this article. Per the principle of least astonishment, users who follow such redirects need to know that they are in the right place. And those redirects are appropriate because there are legitimate reasons to use them. For example, the first article I looked that that links to Computing science is Minh Le, an article about a programmer who got a Bachelor of Applied Science degree in Computing Science at Simon Fraser University. That is indeed what the program is called. I have therefore reverted this change. RockMagnetist(talk) 00:35, 14 January 2020 (UTC)
 * That said, I got rid of one that did not correspond to a redirect and moved two others into a hatnote. RockMagnetist(talk) 00:44, 14 January 2020 (UTC)

About Challenges of computer science
I think the development challenge of computer science is not the issue of the ratio of male to female, but rather the constraints of innovative algorithm design and mathematical ability and the level of hardware development. The challenges in the entry make me feel disrespectful to women.Invokerishard (talk) 05:42, 4 February 2020 (UTC)

Quotation
The quotation "Computer science is no more about computers than astronomy is about telescopes" is attributed to Michael Fellows ; I do not think this is accurate. — Preceding unsigned comment added by 143.106.24.70 (talk) 01:19, 11 February 2020 (UTC)

Early history of Computer Science degree programs
There seems to be some fuzziness about where the first Computer Science degree program in the US might have been. According to this website, the department in Purdue started the same year that the University of Southwestern Louisiana started its MS in Computer Science. I'm not at UL anymore, so I don't have access to the old catalogs in the library to verify that the degree program started before the department in Purdue, so I'll wait until I have more time to go deep to verify this (or maybe somebody else can beat me to it). In the meantime, I'll just edit the article so that it says that Purdue had the first department, rather than the first degree program, so that it's more precisely correct. If I could find a less bullet-pointy source that says the MS in USL started before any program in Purdue, I'd edit the 3rd paragraph in the history section to mention that USL had the first degree program, and Purdue had the first undergraduate degree program.

Sorry if my wiki-etiquette is a bit off, I'm brand new to this.

-According to IBM, a degree program was created a Harvard in 1947, which would be before USL university program, which was in 1968. I think the sources referenced by the other user in the first paragraph of this topic only mentions that USl had the first computer science university program in Louisiana and not in the world or even in the USA — Preceding unsigned comment added by 70.55.188.126 (talk) 21:23, 4 May 2020 (UTC)

Education - Women in Computer Science
I hope no one minds me removing this entire subsection. I didn't see how it was relevant to the field of computer science at all since it just gave statistics about the percentage of women graduating with CS degrees in particular countries, which seemed rather subjective. Bthompson HV  18:27, 24 May 2020 (UTC)
 * Looks perfect for Computer science education, seeing as it about demographics of students. Whilst it may seem subjective, it continues to be a noticeable problem within the field. That article could do with some work as well, it's rather lacking. Shadowssettle(talk) 18:32, 24 May 2020 (UTC)
 * That's not a bad idea. I'll take the diff and move it over there. However, are political and social issues typically talked about in science articles?  That just doesn't seem to fit the bill.  Bthompson HV   21:46, 24 May 2020 (UTC)
 * Not here, it would seem inappropriate when this is about knowledge not society, but education is inherently about society. Shadowssettle(talk) 23:36, 24 May 2020 (UTC)

Computics? Informatics?
The name computer science is tragic. I think we should promote the alternative name "computics" or "informatics" as a whole. Or at least "computing" or "computing science". The next problem is the relation of "computer science" to "computer engineering", "informatics", "software engineering", "informaton engineering" etc. In most European countries (including Germany, France, Poland, ...) these areas are treated as one field. It causes major translation problems. English also needs a collective name for these areas. — Preceding unsigned comment added by 83.31.148.225 (talk) 09:38, 4 April 2020 (UTC)
 * Computing is any goal-oriented activity requiring, benefiting from, or creating computers, it includes development of both hardware and software. Computer science, also known as computing science is part of computing with a scientific rigor. For example, creating new programs for business and industry is not CS, but a scientific publication describing their operation is CS. The term informatics is used in Europe by both scientists and engineers. So it can refer to computer science, and maybe also to practical applications with no scientific value. -79.191.46.246 (talk) 09:26, 8 October 2020 (UTC)

Computer science intended to be a scientific field to study computers??
Right now, the article contains the following statement:

"Although many initially believed it was impossible that computers themselves could actually be a scientific field of study, in the late fifties it gradually became accepted among the greater academic population.[25][26]"

This is sloppy and possibly misleading, for the following reasons: If the present statement is correct, backup for it would be nice. Two references are provided; both refer to a whole work and both works are inaccessible, so it remains unclear how/whether they support this statement.
 * Computers are things, not a field of study.
 * Computer science doesn't study computers. It studies computing; computers are studied by electrical engineering.
 * The term computer science was introduced as an analogy to management science. Its aim was not to be a field of study, its aim was to be an engineering discipline, devoted to the application of scientific methods and techniques in using computers.

I hope someone can provide more specific references or revise the statement to be in line with publicly verifiable sources. Rp (talk) 17:02, 2 December 2020 (UTC)


 * I have recently published an article on "insights in how computer science can be a science" in the open access journal, Science & Philosophy. If you are interested, please take a look at http://dx.doi.org/10.23756/sp.v8i2.531. The paper may lead you to read more papers about what is science in general as well as whether information retrieval is a scientific discipline. — Preceding unsigned comment added by 113.253.83.179 (talk) 06:35, 6 March 2021 (UTC)

Draft of new lead
The lead is a bit repetitive at the moment, and needs a bit more balance with respect to different areas of CS. Is something like this better?

Computer science is the study of computation, automation, and information. Computer science spans theoretical disciplines, such as algorithms, models of computation and information theory, to practical disciplines including the design and implementation of hardware and software. In contrast to programming and software engineering, computer science is considered an area of academic research.

Algorithms and data structures have been called the heart of computer science. The theory of computation concerns abstract models of computation and general classes of problems that can be solved using them. Computer graphics and computational geometry study the generation of images. Programming language theory considers approaches to the description of computational processes, while computer programming involves the use of them to create complex systems. Computer architecture describes construction of computer components and computer-operated equipment. Artificial intelligence aims to synthesize goal-orientated processes such as problem-solving, decision-making, environmental adaptation, planning and learning found in humans and animals.

The fundamental concern of computer science is determining what can and cannot be automated. The Turing Award is generally recognized as the highest distinction in computer sciences.

Still needs a lot of work I think, there are many disciplines, e.g. embedded systems, mobile computing, HCI, DB, cryptograhpy, security, etc. that need to be mentioned in the lead. Thoughts? Caleb Stanford (talk) 18:06, 15 November 2021 (UTC)


 * Seeing no response yet I was WP:Bold and published this change with some further updates. If you don't like the new lead please post here. Caleb Stanford (talk) 23:20, 15 November 2021 (UTC)

Wiki Education Foundation-supported course assignment
This article was the subject of a Wiki Education Foundation-supported course assignment, between 26 January 2021 and 29 April 2021. Further details are available on the course page. Student editor(s): Foxccon.

Above undated message substituted from Template:Dashboard.wikiedu.org assignment by PrimeBOT (talk) 18:15, 16 January 2022 (UTC)

Semi-protected edit request on 25 November 2022
Ambujpandey123 (talk) 03:32, 25 November 2022 (UTC)computer science is a best department to study the about Computer how its work and many function are we can do.
 * Red question icon with gradient background.svg Not done: it's not clear what changes you want to be made. Please mention the specific changes in a "change X to Y" format and provide a reliable source if appropriate. Cannolis (talk) 03:44, 25 November 2022 (UTC)

Programming should be under Applied Computer Science
Split the category of Theoretical Programming in the Theoretical Computer Science section, and Programming as a discipline in Applied Computer Science Ejenriquez (talk) 04:48, 31 December 2022 (UTC)


 * I think the problem is that programming language theory has a lot of research that's basically pure math and not directly applied, though I agree that a lot of programming language research is applied. Dividing the field broadly into and  is inherently challenging, but I'm not sure of a better way to organize . Thoughts? Freoh (talk) 12:33, 31 December 2022 (UTC)
 * I guess I'd prefer someone with more expertise to edit that. Ejenriquez (talk) 01:25, 1 January 2023 (UTC)