Outline of computer science: Difference between revisions

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
imported>Monkeyhubris
m re-cat Category:Outlines of sciences to Category:Outlines of computing and engineering to better reflect categorization of Category:Computer science and follow diffusion guidelines
imported>The Transhumanist
m top: update outline count
Line 2: Line 2:
<!--... Attention:  THIS IS AN OUTLINE
<!--... Attention:  THIS IS AN OUTLINE


         part of the set of 830+ outlines listed at
         part of the set of 870+ outlines listed at
             [[Wikipedia:Contents/Outlines]].
             [[Wikipedia:Contents/Outlines]].


Line 30: Line 30:
* [[Coding theory]] – Useful in networking, programming, system development, and other areas where computers communicate with each other.
* [[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]].
* [[Game theory]] – Useful in artificial intelligence and [[cybernetics]].
*[[Discrete mathematics]] - Study of discrete structures. Used in digital computer systems.
*[[Discrete mathematics]] Study of discrete structures. Used in digital computer systems.
* [[Graph theory]] – Foundations for data structures and searching algorithms.
* [[Graph theory]] – Foundations for data structures and searching algorithms.
* [[Mathematical logic]] – [[Boolean logic]] and other ways of [[mathematical model|modeling]] logical queries; the uses and limitations of formal proof methods.
* [[Mathematical logic]] – [[Boolean logic]] and other ways of [[mathematical model|modeling]] logical queries; the uses and limitations of formal proof methods.
Line 47: Line 47:
*  [[Computer vision]] – Algorithms for identifying three-dimensional objects from a two-dimensional picture.
*  [[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:
* [[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.
** [[Machine learning]] Development of models that are able to learn and adapt without following explicit instructions, by using algorithms and statistical models to analyze and draw inferences from patterns in data.
** [[Evolutionary computing]] - Biologically inspired algorithms.
** [[Evolutionary computing]] Biologically inspired algorithms.
*  [[Natural language processing]] - Building systems and algorithms that analyze, understand, and generate natural (human) languages.
*  [[Natural language processing]] Building systems and algorithms that analyze, understand, and generate natural (human) languages.
*  [[Robotics]] – Algorithms for controlling the behaviour of robots.
*  [[Robotics]] – Algorithms for controlling the behavior of robots.


=== Communication and security===
=== Communication and security===
Line 56: Line 56:
*  [[Computer networking|Networking]] – Algorithms and protocols for reliably communicating data across different shared or dedicated media, often including [[error correction]].
*  [[Computer networking|Networking]] – Algorithms and protocols for reliably communicating data across different shared or dedicated media, often including [[error correction]].
*  [[Computer security]] – Practical aspects of securing computer systems and computer networks.
*  [[Computer security]] – Practical aspects of securing computer systems and computer networks.
*  [[Cryptography]] – Applies results from complexity, probability, algebra and number theory to invent and [[cryptoanalysis|break codes]], and analyze the security of [[cryptographic protocols]].
*  [[Cryptography]] – Applies results from complexity, probability, algebra, and number theory to invent and [[cryptoanalysis|break codes]], and analyze the security of [[cryptographic protocols]].


=== Computer architecture ===
=== Computer architecture ===


* [[Computer architecture]] – The design, organization, optimization and verification of a computer system, mostly about [[CPU]]s and [[Memory (computers)|Memory]] subsystems (and the bus connecting them).
* [[Computer architecture]] – The design, organization, optimization, and verification of a computer system, mostly about [[CPU]]s and [[Memory (computers)|Memory]] subsystems (and the bus connecting them).
*  [[Operating system]]s – Systems for managing computer programs and providing the basis of a usable system.
*  [[Operating system]]s – Systems for managing computer programs and providing the basis of a usable system.


Line 71: Line 71:
=== Concurrent, parallel, and distributed systems ===
=== Concurrent, parallel, and distributed systems ===


* [[Parallel computing]] - The theory and practice of simultaneous computation; data safety in any multitasking or multithreaded environment.
* [[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.
* [[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.
* [[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 ===
=== Databases ===
[[Outline of databases]]
[[Outline of databases]]
* [[Relational databases]] – the [[set theory|set theoretic]] and algorithmic foundation of databases.
* [[Relational databases]] – the [[set theory|set theoretic]] and algorithmic foundation of databases.
* [[Structured Storage]] - non-relational databases such as [[NoSQL]] databases.  
* [[Structured Storage]] non-relational databases such as [[NoSQL]] databases.  
* [[Data mining]] – Study of algorithms for searching and processing information in documents and databases; closely related to [[information retrieval]].
* [[Data mining]] – Study of algorithms for searching and processing information in documents and databases; closely related to [[information retrieval]].


Line 84: Line 84:


* [[Compiler theory]] – Theory of [[compiler]] design, based on [[Automata theory]].
* [[Compiler theory]] – Theory of [[compiler]] design, based on [[Automata theory]].
* [[Programming language|Programming language pragmatics]] – Taxonomy of programming languages, their strength and weaknesses. Various [[programming paradigm]]s, such as [[object-oriented programming]].
* [[Programming language|Programming language pragmatics]] – Taxonomy of programming languages, their strength, and weaknesses. Various [[programming paradigm]]s, such as [[object-oriented programming]].
* [[Programming language theory]] - Theory of programming language design
* [[Programming language theory]] Theory of programming language design
* [[Formal semantics of programming languages|Formal semantics]] – rigorous mathematical study of the meaning of programs.
* [[Formal semantics of programming languages|Formal semantics]] – rigorous mathematical study of the meaning of programs.
* [[Type theory]] – Formal analysis of the types of data, and the use of these types to understand properties of programs — especially program safety.
* [[Type theory]] – Formal analysis of the types of data, and the use of these types to understand properties of programs — especially program safety.
Line 95: Line 95:
* [[Computational physics]] – Numerical simulations of large non-analytic systems
* [[Computational physics]] – Numerical simulations of large non-analytic systems
* [[Computational chemistry]] – Computational modelling of theoretical chemistry in order to determine chemical structures and properties
* [[Computational chemistry]] – Computational modelling of theoretical chemistry in order to determine chemical structures and properties
* [[Bioinformatics]] and [[Computational biology]] – The use of computer science to maintain, analyse, store [[biological data]] and to assist in solving biological problems such as [[Protein folding]], function prediction and [[Phylogeny]].
* [[Bioinformatics]] and [[Computational biology]] – The use of computer science to maintain, analyze, store [[biological data]] and to assist in solving biological problems such as [[Protein folding]], function prediction and [[Phylogeny]].
* [[Computational neuroscience]] – Computational modelling of [[neurophysiology]].
* [[Computational neuroscience]] – Computational modelling of [[neurophysiology]].
* [[Computational Linguistics|Computational linguistics]]
* [[Computational Linguistics|Computational linguistics]]

Revision as of 10:39, 22 October 2025

Template:Short description 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:

<templatestyles src="Template:TOC limit/styles.css" />

Subfields

Mathematical foundations

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 analyze 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 behavior of robots.

Communication and security

Computer architecture

  • Computer architecture – The design, organization, optimization, and verification of a computer system, mostly about CPUs and Memory subsystems (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

Script error: No such module "Labelled list hatnote".

History

Professions

Data and data structures

Programming paradigms

See also

External links

Script error: No such module "Sister project links".Script error: No such module "Check for unknown parameters".

Script error: No such module "Navbox". Template:Outline footer