Jump to content

Outline of computer science

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Sychen (talk | contribs) at 18:00, 13 February 2007 (Basic computer science concepts). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Computer science, or computing science, is the study of the theoretical foundations of information and computation and their implementation and application in computer systems. One well known subject classification system for computer science is the ACM Computing Classification System devised by the Association for Computing Machinery. A separate list of basic topics in computer science include:

Nature of computer science

Branches of computer science

Mathematical foundations

  • Mathematical logic - Boolean logic and other ways of modeling logical queries; the uses and limitations of formal proof methods
  • Number theory - Theory of proofs and heuristics for finding proofs in the simple domain of integers. Used in cryptography as well as a test domain in artificial intelligence.
  • Graph theory - Foundations for data structures and searching algorithms.
  • Type Theory - Formal analysis of the types of data, and the use of these types to understand properties of programs — especially program safety.

Theory of computation

Algorithms and data structures

  • Analysis of algorithms - Time and space complexity of algorithms.
  • Algorithms - Formal logical processes used for computation, and the efficiency of these processes.
  • Data structures - The organization of and rules for the manipulation of data.

Programming languages and compilers

  • Compilers - Ways of translating computer programs, usually from higher level languages to lower level ones.
  • Programming languages - Formal language paradigms for expressing algorithms, and the properties of these languages (e.g. what problems they are suited to solve).

Concurrent, parallel, and distributed systems

  • Concurrency - The theory and practice of simultaneous computation; data safety in any multitasking or multithreaded environment.
  • Distributed computing - Computing using multiple computing devices over a network to accomplish a common objective or task and there by reducing the latency involved in single processor contributions for any task.
  • Parallel computing - Computing using multiple concurrent threads of execution.

Software engineering

  • Formal methods - Mathematical approaches for describing and reasoning about software designs.
  • Software engineering - The principles and practice of designing, developing, and testing programs, as well as proper engineering practices.
  • Reverse engineering - The application of the scientific method to the understanding of arbitrary existing software
  • Algorithm design - Using ideas from algorithm theory to creatively design solutions to real tasks
  • Computer programming - The practice of using a programming language to implement algorithms

Computer architecture

Communications

  • Game theory - Recently game theory has drawn attention from computer scientists because of its use in artificial intelligence and cybernetics.
  • Networking - Algorithms and protocols for reliably communicating data across different shared or dedicated media, often including error correction.
  • Cryptography - Applies results from complexity, probability and number theory to invent and break codes.

Databases

Artificial intelligence

  • Artificial intelligence - The implementation and study of systems that exhibit an autonomous intelligence or behaviour of their own.
  • Automated reasoning - Solving engines, such as used in Prolog, which produce steps to a result given a query on a fact and rule database.
  • Robotics - Algorithms for controlling the behavior of robots.
  • Computer vision - Algorithms for identifying three dimensional objects from a two dimensional picture.
  • Machine learning - Automated creation of a set of rules and axioms based on input.

Soft computing

A collective term for techniques used in solving specific problems. See the main article.

Computer graphics

  • Computer graphics - Algorithms both for generating visual images synthetically, and for integrating or altering visual and spatial information sampled from the real world.
  • Image processing - Determining information from an image through computation.
  • Human computer interaction - The study and design of computer interfaces that people use.

Scientific computing

History of computer science

Vocations of computer science

Basic computer science concepts

People in computer science

See also

[[