Jump to content

Computer science: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Dzonatas (talk | contribs)
Powo (talk | contribs)
reverted vandalism by Dzonatas
Line 1: Line 1:
{{cleanup-priority}}
{{cleanup-priority}}


'''Computer science''' (abbreviated '''CS''' or '''compsci'''), an academic discipline,
'''Computer science''' ([[abbreviated]] '''CS''' or '''compsci''') is an academic discipline which encompasses a variety of topics that relates to [[computation]], like abstract analysis of [[algorithms]], [[formal grammar]]s, and subjects such as [[programming language]]s, [[Computer program|program]] design, [[software]], [[computer hardware]], [[artificial intelligence]], and [[numerical analysis]].

is a body of knowledge generally about [[computer hardware]], [[software]], [[computation]] and its [[theory of computation|theory]].
== Explanation ==
The discipline itself includes, but is not limited to, the fundamentals of [[computer languages]], [[operating systems]] and [[mathematics]] in use by the [[computer]].

The study of these fundamentals may lead to a wide variety of topics, such as [[algorithms]], [[formal grammar]]s, [[programming language]]s, [[computer program|program]] design, [[artificial intelligence]] and [[computer engineering]].
Computer scientists study what programs can and cannot do (see [[computability]]), how programs can efficiently perform specific tasks (see [[algorithms]] and [[computational complexity theory|complexity]]), how programs should store and retrieve specific kinds of [[information]] (see [[data structures]] and [[database]]s), how programs might behave intelligently (see [[artificial intelligence]]), and how programs and people should communicate with each other (see [[human-computer interaction]] and [[user interface]]s).
[[Web developer]], [[computer programmer]], [[systems analyst]], and [[computer scientist]] are a few potential computer science specific careers.


There exist a number of [[alternative definitions of computer science|technical definitions]] of computer science. The status of computer science as a [[science]] is often challenged, typically arguing that it is more like [[mathematics]] and that it does not follow the [[scientific method]], however these facts are not unanimously accepted. In popular language, the term ''computer science'' is often confusingly used to denominate anything related to [[computers]].
There exist a number of [[alternative definitions of computer science|technical definitions]] of computer science. The status of computer science as a [[science]] is often challenged, typically arguing that it is more like [[mathematics]] and that it does not follow the [[scientific method]], however these facts are not unanimously accepted. In popular language, the term ''computer science'' is often confusingly used to denominate anything related to [[computers]].


==History of computer science==
==History of computer science==
===Evolutionary===
===Evolution ===


Before the 1920s, ''computers'' were human clerks that performed calculations. They were usually under the lead of a physicist. Many thousands of computers were employed in commerce, government, and research establishments. Most of these computers were women, and they were known to have a degree in calculus.
Before the 1920s, ''computers'' were human clerks that performed calculations. They were usually under the lead of a physicist. Many thousands of computers were employed in commerce, government, and research establishments. Most of these computers were women, and they were known to have a degree in calculus.
Line 37: Line 37:
* [[Timeline of algorithms]]
* [[Timeline of algorithms]]
* [[History of computing hardware]]
* [[History of computing hardware]]

== Careers ==

Some of the potential careers for those who study computer science are listed below:

{|
| [[Systems analyst]]s
| solve computer problems and apply computer technology to meet the individual needs of an organization
|-
| [[Computer programmer]]s
| design and update the software that runs a computer
|-
| [[Programmer-analyst]]s
| work both as a computer programmer as a systems analyst
|-
| [[Telecommunication specialist]]s
| design and maintain the network between computers and the interaction beteen people and computers
|-
| [[Network Administrator|Network specialist]]s
| focus more on a local area network than the Telecommunication specialist (a.k.a. Network Administrator)
|-
| [[Web developer]]s
| are responsibile for the design, development, and maintenance of World Wide Web sites
|-
| [[Computer scientist]]s
| work as theorist, researchers, or inventors and are distinguished by their higher-level of theoretical expertise or by their innovative new technology
|-
| [[Database administrator]]s
| design and manage computer database systems and related system security
|}


==Sub-disciplines of computer science==
==Sub-disciplines of computer science==

Revision as of 16:19, 9 December 2005

Template:Cleanup-priority

Computer science (abbreviated CS or compsci) is an academic discipline which encompasses a variety of topics that relates to computation, like abstract analysis of algorithms, formal grammars, and subjects such as programming languages, program design, software, computer hardware, artificial intelligence, and numerical analysis.

Explanation

Computer scientists study what programs can and cannot do (see computability), how programs can efficiently perform specific tasks (see algorithms and complexity), how programs should store and retrieve specific kinds of information (see data structures and databases), how programs might behave intelligently (see artificial intelligence), and how programs and people should communicate with each other (see human-computer interaction and user interfaces).

There exist a number of technical definitions of computer science. The status of computer science as a science is often challenged, typically arguing that it is more like mathematics and that it does not follow the scientific method, however these facts are not unanimously accepted. In popular language, the term computer science is often confusingly used to denominate anything related to computers.

History of computer science

Evolution

Before the 1920s, computers were human clerks that performed calculations. They were usually under the lead of a physicist. Many thousands of computers were employed in commerce, government, and research establishments. Most of these computers were women, and they were known to have a degree in calculus.

After the 1920s, the expression computing machine refered to any machine that performed the work of a human computer, especially those in accordance with effective methods of The Church-Turing Thesis. The thesis states that a mathematical method is effective if it could be set out as a list of instructions able to be followed by a human clerk with paper and pencil, for as long as necessary, and without ingenuity or insight.

Machines that computed with discrete values became known as the analog kind. They used machinery that represented discrete numeric quantities, like the angle of a shaft rotation or difference in electrical potential.

Digital machinery, in contrast to analog, were able to render a state of a numeric value and store each individual digit. Digital machinery used difference engines or relays before the invention of faster memory devices.

The phrase computing machine gradually gave away, after the late 1940s, to just computer as the onset of electronic digital machinery became common. These computers were able to perform the calculations that were performed by the previous human clerks.

Since the values stored by digital machines were not bound to physical properties like the analog device, a logical computer, based on digital equipment, was able to do anything that could be described "purely mechanical." Alan Turing, known as the Father of Computer Science, invented such a logical computer, also known as a Turing Machine, that evolved into the modern computer from the tasks performed by the previous human clerks. These new computers were also able to perform non-numeric computations, like music.

Computability, by logical computers, began a science by being able to make evident which was not explicitly defined into ordinary sense more immediate.

Academic discipline

Computer science has roots in electrical engineering, logic, mathematics, and linguistics. In the last third of the 20th century computer science emerged as a distinct discipline and developed its own methods and terminology. Originally, CS was taught as part of mathematics or engineering departments, for instance at the University of Cambridge in England and at the Gdansk University of Technology in Poland, respectively. Cambridge claims to have the world's oldest taught qualification in computing. The first computer science department in the United States was founded at Purdue University in 1962, while the first college entirely devoted to computer science was founded at Northeastern University in 1982. Most universities today have specific departments devoted to computer science, while some conjoin it with engineering, with applied mathematics, or other disciplines.

Most research in computer science has focused on von Neumann computers or Turing machines (computation models that perform one small, deterministic step at a time). These models resemble, at a basic level, most real computers in use today. Computer scientists also study other models of computation, which includes parallel machines and theoretical models such as probabilistic, oracle, and quantum computers.

See also

Sub-disciplines of computer science

Computer Science has a number of major sub-fields which can be classified by a number of means (for example the ACM classification system).

Algorithms

The study of algorithms is aimed at creating techniques that will enable a computer to perform a certain task in an efficient manner. An algorithm is a set of well-defined instructions for accomplishing some task, often explained by analogy with a culinary recipe. Algorithms are often implemented in software, and advancing the state of the art in algorithms is responsible for many of the most spectacular successes in computing.

An algorithms specialist may come up with methods to accomplish new tasks, but just as often, they will work on improving the efficiency of an existing algorithm. These improvements can come in "time" (the length of time it takes for the algorithm to work) and "space" (the amount of computer memory the algorithm consumes.

The field of algorithms is highly formal and many things can be proved about a given algorithm (using complexity theory), including roughly how long it will take to complete, as compared to the size of its input (the number of options it must consider). One interesting open question in algorithms concerns the complexity classes P and NP, and whether or not P = NP. If it does, then a whole range of seemingly difficult algorithms can in theory be performed quickly.

Data structures

A data structure is a way to store data so that it can be remembered and retrieved efficiently. A well-designed data structure means that an algorithm can be performed using as little memory space and time as possible.

Some data structures are very simple: the simplest is an array which is simply a numbered list of items. Since the memory of a computer is usually modelled as an array (of bytes), this is also one of the most important data structures in computer science. For example, strings of text are usually modelled as arrays. But there are many other data structures such as linked lists, trees, hash tables and many others that are quite different but critical to the science.

Type theory classifies data at a most basic (mathematical) level into different types, such as integers, complex numbers, strings, etc. and deals with how those types can interact. Abstract data types, at a more concrete level, deal with how types and data structures are used in software programming.

Listing of sub-disciplines

Computer science is closely related to a number of fields. These fields overlap considerably, though important differences exist:

Algorithms techniques to enable a computer to efficiently perform a specific task
Artificial intelligence implementation and study of systems that exhibit (either behaviourally or seemingly) an autonomous intelligence or behaviour of their own, sometimes inspired by the characteristics of living beings. Computer science is closely tied with AI, as software and computers are primary tools for the development and progression of artificial intelligence
Bioinformatics or computational biology, is the use of techniques from applied mathematics, informatics, statistics, and computer science to solve biological problems
Computer engineering analysis, design, and construction of computer systems (including computer hardware and computer networks).
Computer graphics field of visual computing, where one uses computers both to generate visual images synthetically and to integrate or alter visual and spatial information sampled from the real world
Computer programming the act of writing program code
Computer vision the act of computers extracting three dimensional objects from a two dimensional picture
Computing overarching term for all of these related fields with CS
formal grammar abstract structure that describes a formal language precisely
Information science or Informatics is the study of data and information, which includes how to create, interpret, analyze, store, retrieve, transfer, and manage it. Information science started as the scientific foundation for communication and databases. It also concerns about the ways people generate, use and find information (see cognitive science)
Information security analysis and implementation of information system security, like cryptography.
Information retrieval the art and science of searching for information in documents, searching for documents themselves, searching for metadata which describes documents, or searching within databases, whether relational stand alone databases or hypertext networked databases such as the Internet or intranets, for text, sound, images or data
Information systems application of computing to support the operations of an organization: operating, installing, and maintaining the computers, software, and data
Information technology an overarching term for all of these related fields with CS.
Lexicography focus on the study of lexicographic reference works and include the study of electronic and Internet-based dictionaries
Linguistics study of languages; it converges with computer science in such areas as programming language design and natural language processing
Logic a formal system of reasoning, and studies principles that lay at the basis of computing machines, whether it be the hardware (digital logic) or software (verification, AI etc.) levels
Management information systems subfield of information systems, that emphasizes financial and personnel management
Mathematics shares many techniques and topics with computer science, but is more general. Theoretical computer science is the mathematics of computing
Software engineering emphasizes specification, analysis, design, construction, and testing of useful software applications. Software engineering includes development methodologies (such as the waterfall model and extreme programming) and project management

Major fields of importance for computer science

Mathematical foundations

Theoretical computer science

Hardware

Computer systems organization

Software

Data and information systems

Data structures – Data storage representations – Data encryption – Data compression – Data recovery – Coding – Information theory – Files – File formats – Information systems – Databases – Information Storage – retrieval – Information Interfaces and Presentation

Computing methodologies

Computer Applications

Computing milieux

See also

External links