Outline of computer science

Overview of and topical guide to computer science

Computer science (also called 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.

Computer science can be described as all of the following:

  • Academic discipline
  • Science
    • Applied science

Subfields

Mathematical foundations

  • Coding theory – Useful in networking, programming, system development, and other areas where computers communicate with each other.
  • Game theory – Useful in artificial intelligence and cybernetics.
  • Discrete mathematics - Study of discrete structures. Used in digital computer systems.
  • Graph theory – Foundations for data structures and searching algorithms.
  • Mathematical logic – Boolean logic and other ways of modeling logical queries; the uses and limitations of formal proof methods
  • Number theory – Theory of the integers. Used in cryptography as well as a test domain in artificial intelligence.

Algorithms and data structures

  • Algorithms – Sequential and parallel computational procedures for solving a wide range of problems.
  • Data structures – The organization and manipulation of data.

Artificial intelligence

Outline of artificial intelligence

  • Artificial intelligence – The implementation and study of systems that exhibit an autonomous intelligence or behavior 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, and automated theorem provers that aim to prove mathematical theorems with some assistance from a programmer.
  • Computer vision – Algorithms for identifying three-dimensional objects from a two-dimensional picture.
  • Soft computing, the use of inexact solutions for otherwise extremely difficult problems:
    • Machine learning - Development of models that are able to learn and adapt without following explicit instructions, by using algorithms and statistical models to analyse and draw inferences from patterns in data.
    • Evolutionary computing - Biologically inspired algorithms.
  • Natural language processing - Building systems and algorithms that analyze, understand, and generate natural (human) languages.
  • Robotics – Algorithms for controlling the behaviour of robots.

Communication and security

Computer architecture

  • Computer architecture – The design, organization, optimization and verification of a computer system, mostly about CPUs and Memory subsystem (and the bus connecting them).
  • Operating systems – Systems for managing computer programs and providing the basis of a usable system.

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.
  • Information visualization – Methods for representing and displaying abstract data to facilitate human interaction for exploration and understanding.

Concurrent, parallel, and distributed systems

  • Parallel computing - The theory and practice of simultaneous computation; data safety in any multitasking or multithreaded environment.
  • Concurrency (computer science) – Computing using multiple concurrent threads of execution, devising algorithms for solving problems on various processors to achieve maximal speed-up compared to sequential execution.
  • Distributed computing – Computing using multiple computing devices over a network to accomplish a common objective or task and thereby reducing the latency involved in single processor contributions for any task.

Databases

Outline of databases

Programming languages and compilers

Scientific computing

Software engineering

Outline of software engineering

  • Formal methods – Mathematical approaches for describing and reasoning about software design.
  • Software engineering – The principles and practice of designing, developing, and testing programs, as well as proper engineering practices.
  • 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.
  • Human–computer interaction – The study and design of computer interfaces that people use.
  • Reverse engineering – The application of the scientific method to the understanding of arbitrary existing software.

Theory of computation

History

Professions

Data and data structures

Programming paradigms

See also

External links

Computer science at Wikipedia's sister projects
  • Definitions from Wiktionary
  • Media from Commons
  • News from Wikinews
  • Quotations from Wikiquote
  • Texts from Wikisource
  • Textbooks from Wikibooks
  • Resources from Wikiversity
  • Outline of computer science at Curlie
  • ACM report on a recommended computer science curriculum (2008) (PDF)
  • Directory of free university lectures in Computer Science (archived 12 May 2008)
  • Collection of Computer Science Bibliographies
  • Photographs of computer scientists (Bertrand Meyer's gallery)
  • v
  • t
  • e
Note: This template roughly follows the 2012 ACM Computing Classification System.
Hardware
Computer systems organizationNetworksSoftware organizationSoftware notations and toolsSoftware developmentTheory of computationAlgorithmsMathematics of computingInformation systemsSecurityHuman–computer interactionConcurrencyArtificial intelligenceMachine learningGraphicsApplied computing
  • Category
  • Outline
  • WikiProject
  • Commons
  • v
  • t
  • e
Wikipedia Outlines
General reference
  • Culture and the arts
  • Geography and places
  • Health and fitness
  • History and events
  • Mathematics and logic
  • Natural and physical sciences
  • People and self
  • Philosophy and thinking
  • Religion and belief systems
  • Society and social sciences
  • Technology and applied sciences