Talk:Computer science

From Wikipedia, the free encyclopedia

Welcome! This subject is outlined on the List of basic computer science topics. That list, along with the other Lists of basic topics, is part of a map of Wikipedia. Your help is needed to complete this map! To begin, please look over this subject's list, analyze it, improve it, and place it on your watchlist. Then join the Lists of basic topics WikiProject!

This article is within the scope of WikiProject Computer science, which aims to create a comprehensive computer science reference for Wikipedia. Visit the project page for more information and to join in on related discussions.
Start rated as Start-Class on the assessment scale
Top rated as Top-importance on the assessment scale
This article has been reviewed by the Version 1.0 Editorial Team.
Version 0.7
This article has been selected for Version 0.7 and subsequent release versions of Wikipedia.
Archive
Archives
Chronological archives


Contents

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

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

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

[edit] solar system

why dose every season start on the 21st —The preceding unsigned comment was added by 208.64.177.24 (talk) 22:33, 11 January 2007 (UTC).

Why do you ask? Notinasnaid 22:35, 11 January 2007 (UTC)
See Equinox. The equinoxes and solstices are around (but not always on) Mar, Jun, Sep, Dec 21st. Palaeovia 17:13, 23 April 2007 (UTC)

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

[edit] Is "Soft Computing" a major branch of Computer Science?

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

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


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

Palaeovia 16:54, 23 April 2007 (UTC)

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

[edit] More visual Fields of section

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

[edit] Mathematical foundations

 P \Rightarrow Q \, int x
Mathematical logic Number theory Graph theory Type Theory Category Theory Computational geometry

[edit] Theory of computation

P = NP ?
Automata theory Computability theory Computational complexity theory Quantum computing theory

[edit] Algorithms and data structures

O(n2) Image:Kruskal Algorithm 0.svg
Analysis of algorithms Algorithms Data structures

[edit] Programming languages and compilers

Compilers Programming languages

[edit] Scientific computing

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)

[edit] 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 Computer science, 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)

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

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

[edit] differences regarding Ada

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