Software
Free
Download
Audio
Graphics
Utilities
Internet
Screen Savers
Games
Development Tools
Business
Audio
Home/Hobby
Education
|
Computer science (informally: CS or compsci) is, in its most general sense, the study of computation and information processing, both in hardware and in software.
Introduction
Computer science encomposses a variety of topics relating to computation, ranging from abstract analysis of algorithms and formal grammars, to subjects like programming languages, software, and computer hardware.
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).
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, including parallel machines and theoretical models such as probabilistic, oracle, and quantum computers.
Edsger Dijkstra said:
"Computer science is no more about computers than astronomy is about telescopes."
The renowned physicist Richard Feynman said:
"Computer science is not as old as physics; it lags by a couple of hundred years. However, this does not mean that there is significantly less on the computer scientist's plate than on the physicist's: younger it may be, but it has had a far more intense upbringing!"
Computer science has roots in electrical engineering, mathematics and linguistics. In the last third of the 20th century computer science emerged as a distinct scientific discipline and developed its own methods and terminology. The first computer science department in the United States was founded at Purdue University in 1962. The University of Cambridge in England, among others, taught CS prior to this, however at the time, CS was seen as a branch of mathematics, and not a separate department. Cambridge claims to have the world's oldest taught qualification in computing. Most universities today have specific departments devoted to computer science.
Related fields
Computer science is closely related to a number of fields. These fields overlap considerably, though important differences exist
Computer engineering is the analysis, design, and construction of computer hardware.
Computer graphics is the field of visual computing, where one utilizes computers both to generate visual images synthetically and to integrate or alter visual and spatial information sampled from the real world.
Computer programming or software development is the act of writing program code.
Information science is the study of data and information, including how to interpret, analyze, store, and retrieve it. Information science started as the scientific foundation for communication and databases.
Information security is the analysis and implementation of information system security, including cryptography.
Information systems (IS) is the application of computing to support the operations of an organization: operating, installing, and maintaining the computers, software, and data.
Lexicography focus on the study of lexicographic reference works and include the study of electronic and Internet-based dictionaries.
Linguistics is the study of languages, converging with computer science in such areas as programming language design and natural language processing.
Logic is a formal system of reasoning, and studies principles that lay at the very basis of computing/reasoning machines, whether it be the hardware (digital logic) or software (verification, AI etc.) levels.
Management information systems (MIS) is a subfield of information systems, that emphasizes financial and personnel management.
Mathematics shares many techniques and topics with computer science, but is more general. In some sense, CS is the mathematics of computing.
Software engineering emphasizes analysis, design, construction, and testing of useful software. Software engineering includes development methodologies (such as the waterfall model and extreme programming) and project management.
Debate over name
There is some debate over whether the name of the field should be computer science, computation/computing science, or software science. The first name is the original, traditional name, however it implies that CS studies computers. The second name is more recent, and it implies that CS studies what we do with computers. The third name recognizes that mostly the field studies software. Some view this debate over names as silly. Others see it as important symbolism.
Computer science is usually described by the words informatique in French and Informatik in German. However, informatics in English is not directly synonymous with computer science; it is actually more equivalent with information science.
Major fields of importance for computer science
Mathematical foundations
Boolean algebra
Discrete mathematics
Graph theory
Information theory
Mathematical logic
Domain theory
Probability and Statistics
Theoretical computer science
Algorithmic information theory
Computability theory
Cryptography
Formal semantics
Theory of computation (or theoretical computer science)
analysis of algorithms and problem complexity
logics and meanings of programs
Mathematical logic and Formal languages
Type theory
Hardware
(see also electrical engineering)
Control structures and Microprogramming
Arithmetic and Logic structures
Memory structures
input/output and Data communications
Logic Design
Integrated circuits
VLSI design
Performance and reliability
Computer systems organization
(see also electrical engineering)
Computer architecture
Computer networks
Distributed computing
Performance of systems
Computer system implementation
Software
Computer program and Computer programming
Parallel Programming
Program specification
Program verification
Programming techniques
Software engineering
Optimization
Software metrics
Configuration management and Software Configuration Management (SCM)
Structured programming
Object orientation
Design patterns
Documentation
Programming languages
Operating Systems
Compilers
Lexical analysis
Parsing
Data and information systems
Data structures
Data storage representations
Data encryption
Data compression
Data recovery
Coding and Information theory
Files
File formats
Information systems
Databases
Information Storage and retrieval
Information Interfaces and Presentation
Computing methodologies
Symbolic and Algebraic manipulation
Artificial intelligence
Computer graphics
Image processing and computer vision
Pattern recognition
Speech recognition
Simulation and Modeling
Document and text processing
Digital signal processing
Computer applications
Administrative data processing
Enterprise resource planning
Customer relationship management
Human Resource Management Systems
Mathematical software
Numerical analysis
Automated theorem proving
Computer algebra systems
Physical science and Engineering
Computational chemistry
Computational physics
Life and medical sciences
Bioinformatics
Computational biology
Medical informatics
Social and behavioral sciences
Computer-aided engineering
Robotics
Human-computer interaction
Speech synthesis
Usability engineering
Computer industry
History of computing hardware
Unsolved problems in computer science
Computers and education
Computers and society
Computer supported cooperative work
Legal aspects of computing
Free software and Open Source
Management of computing and Information systems
Personal computing
Computer and information security
History
History of computing
Origins of computer terms
Early programming projects
Computer science departments
Timeline of algorithms
Prominent pioneers in computer science
Charles Babbage, for designing and building a prototype for a mechanical calculator and designing the more powerful Analytical Engine.
John Backus, for inventing FORTRAN (Formula Translation), the first practical high-level programming language and formulating the Backus-Naur form for describing formal language syntax.
Alonzo Church, for founding contributions to theoretical computer science, specifically for the development of the lambda calculus and the discovery of the undecidable problem within it.
James W. Cooley and John W. Tukey, for the Fast Fourier Transform and its impact on scientific research.
Ole-Johan Dahl and Kristen Nygaard, for inventing the proto-object oriented language SIMULA.
Edsger Dijkstra, for algorithms, Goto considered harmful, the semaphore (programming), rigor, and pedagogy.
C.A.R Hoare, for the development of the formal language Communicating Sequential Processes (CSP) and Quicksort.
Admiral Grace Murray Hopper, for pioneering work on the necessity for high-level programming languages, which she termed automatic programming, for writing the A-O compiler, and heavily influencing the COBOL language.
Kenneth Iverson, for inventing the APL and for his contribution to interactive computing.
Donald Knuth, for The Art of Computer Programming series and TeX.
Ada Lovelace, for beginning the study of scientific computation, specifically for her "Sketch of the Analytical Engine", an analysis of Babbage's work and for the namesake for the modern computer language, Ada.
John von Neumann, for devising the von Neumann architecture upon which most modern computers are based.
Claude E. Shannon, for founding information theory.
Alan Turing, for founding contributions to computer science, for the formulation of the Turing machine computational model, and for the design of the Pilot ACE.
Maurice Wilkes, for building the first practical stored program computer to be completed and for being credited with the ideas of several high-level programming language constructs.
Konrad Zuse for building a binary computer, for which he allegedly devised a theoretical high level programming language, Plankalkül.
The highest honor in computer science is the Turing Award. See list of computer scientists for many more notables.
See also
List of basic computer science topics
Computing
List of computing topics
History of computing
History of computing hardware
Turing Award (ACM)
IEEE John von Neumann Medal
Computer jargon
Computer slang
Computing analogies
Internet
Multimedia
Data acquisition
Benchmark
Sensor network
Online computations and algorithms
Computer numbering formats
List of publications in computer science
List of open problems in computer science
External links
Category:Computer science
|