Computer science
You must add a |reason=
parameter to this Cleanup template – replace it with {{Cleanup|December 2005|reason=<Fill reason here>}}
, or remove the Cleanup template.
Computer science, an academic discipline (abbreviated CS , CSC, CSCD, or Comp. Sci.), is a body of knowledge generally about computer hardware, software, computation and its theory. The discipline focuses on the management of the complexity in the construction and analysis of computer systems. The computer's operating system controls the hardware by its software with algorithms. Software involves a study of computer languages and programming paradigms, which further involves mathematical practices and abstraction. Hardware involves the study of computer architecture and its peripherals. A computer system is a means to automate tasks and to execute computational systems. Hardware and program construction are the engineerial aspects, related to computer engineering and information technology. Computer scientists, on the other hand, go deeper into computability and are distinguishable by their higher-level of innovative or theoretical expertise in technology.
Computer science is arguably more like mathematics, which does not follow with the scientific method, so many often challenge CS as not being a science. Some, in popular language, have leniently tried to use computer science as to denominate anything related to computers, while others have tried to use computer science to denote specifics related to computational science. These facts are not unanimously accepted, so there are diverse technical definitions of computer science.
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, retrieve, and/or organize data. A well-designed data structure allows useful operations to be implemented efficiently (without consuming excessive time, space, or other computational resources).
Some data structures are very simple: the simplest is an array which is simply an indexed list of equally-sized 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.
Closely related 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). |
Complexity Theory | field of computer science that tries to find fundamental lower bounds for computation. |
Computer programming | the act of writing program code |
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 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 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 that 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 these related fields within CS. |
Lexicography | study of lexicographic reference works; includes 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 the study of principles that lay at the basis of computing machines, at both the hardware (digital logic) and 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 |
History of computer science
Evolutionary
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 continuous values became known as the analog kind. They used machinery that represented continuous 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.
Demographics
- Nearly half of all computer programmers held a bachelor’s degree in 2002; about 1 in 5 held a graduate degree. [1]
- Computer programmer employment is expected to grow much more slowly than that of other computer specialists.
- Education requirements range from a 2-year degree to a graduate degree. [2]
- Employment, other than the computer programmer, is expected to increase much faster than the average as organizations continue to adopt increasingly sophisticated technologies.
Careers
Some of the potential careers for those who study computer science are listed below:
Systems analysts | solve computer problems and apply computer technology to meet the individual needs of an organization |
Computer programmers | design and update the software that runs a computer |
Telecommunication specialists | design and maintain the network between computers and the interaction between people and computers |
Network specialists | focus more on a local area network than the Telecommunication specialist (a.k.a. Network Administrator) |
Web developers | are responsibile for the design, development, and maintenance of World Wide Web sites |
Computer scientists | work as theorist, researchers, or inventors and are distinguished by their higher-level of theoretical expertise or by their innovative new technology |
Database administrators | design and manage computer database systems and related system security |
Major fields of importance for computer science
See also
- Benchmark
- Computer jargon
- Computer numbering formats
- Computer slang
- Computing
- Data acquisition
- European Association for Theoretical Computer Science
- IEEE John von Neumann Medal
- Internet
- List of algorithms
- List of basic computer science topics
- List of computer science conferences
- List of computing topics
- List of data structures
- List of open problems in computer science
- List of publications in computer science
- List of prominent pioneers in computer science
- Multimedia
- Online computations and algorithms
- Sensor network
- Turing Award (ACM)