Talk:Computer science

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Allan McInnes (talk | contribs) at 18:17, 16 February 2006 (→‎including computer architecture: architecture in some curricula). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Jump to navigation Jump to search
WikiProject iconComputer science Unassessed
WikiProject iconThis article is within the scope of WikiProject Computer science, a collaborative effort to improve the coverage of Computer science related articles on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
???This article has not yet received a rating on Wikipedia's content assessment scale.
???This article has not yet received a rating on the project's importance scale.
Things you can help WikiProject Computer science with:

Template:CSCOTW

Archives: 1 2 3 4 5

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: [1]. 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)[reply]

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)[reply]

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)[reply]

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)[reply]

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)[reply]

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

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." — Dzonatas 13:28, 31 January 2006 (UTC)[reply]

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)[reply]

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

Okay, but small source-able change to add: "variety of careers pursued by computer scientists" -> "methods involved to train individuals" — Dzonatas 17:12, 31 January 2006 (UTC)[reply]

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)[reply]

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." [2]

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. — Dzonatas 19:07, 31 January 2006 (UTC)[reply]
  1. 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.
  2. 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. [3]
  3. 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)[reply]
In reply to 1, it does imply that -- recursively. The article states the different dominant roles of how individuals were trained as CS evolved. — Dzonatas 15:21, 1 February 2006 (UTC)[reply]

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)[reply]

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)[reply]

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. — Dzonatas 23:46, 31 January 2006 (UTC)[reply]
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)[reply]
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. — Dzonatas 15:21, 1 February 2006 (UTC)[reply]
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)[reply]
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." — Dzonatas 18:55, 2 February 2006 (UTC)[reply]
I'm sorry, I find the proposed phrasing somewhat awkward. Here is an alternative that is consistent with [4], 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)[reply]
Sounds good to me. --Jonovision 00:17, 1 February 2006 (UTC)[reply]
I think that works well. Dz, does Allan's suggestion work for you? --bmills 02:30, 1 February 2006 (UTC)[reply]
I find it awkward. I'll reply more later... — Dzonatas 15:21, 1 February 2006 (UTC)[reply]
Well, by all means feel free to propose (another) alternative phrasing. --Allan McInnes 17:21, 1 February 2006 (UTC)[reply]

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)[reply]

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)[reply]
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)[reply]
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. — Dzonatas 18:37, 2 February 2006 (UTC)[reply]
I'm fine with that. Perhaps in the section on "Relationship with other fields"? --Allan McInnes 19:46, 2 February 2006 (UTC)[reply]
Sounds good to me. Any objections, or do we have a consensus? --bmills 20:40, 2 February 2006 (UTC)[reply]

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)[reply]

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)[reply]
Added -- that's great, it really clears things up --Jonovision 06:51, 31 January 2006 (UTC)[reply]

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)[reply]

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)[reply]
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)[reply]
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)[reply]
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)[reply]
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)[reply]
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)[reply]

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. — Dzonatas 14:44, 1 February 2006 (UTC)[reply]

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)[reply]

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? — Dzonatas 18:30, 2 February 2006 (UTC)[reply]

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)[reply]

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)[reply]

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)[reply]

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)[reply]
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)[reply]
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)[reply]

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)[reply]

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)[reply]
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)[reply]
I think a theoretical computer scientist would take that as a big offense :) —Ruud 01:24, 16 February 2006 (UTC)[reply]
Who care the theoretical jerks. This is wikipedia, for the general public. Period. --Leo 01:26, 16 February 2006 (UTC)[reply]
You might want to read WP:NPOV. —Ruud 01:27, 16 February 2006 (UTC)[reply]
NPOV applies to the main article. My strong word is ok for the discussion, I think. :-) --Leo 01:32, 16 February 2006 (UTC)[reply]
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)[reply]
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)[reply]
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 — 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)[reply]

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 — not designing them. --bmills 03:08, 16 February 2006 (UTC)[reply]