Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Outline of computer science
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Overview of and topical guide to computer science}} <!--... Attention: THIS IS AN OUTLINE part of the set of 830+ outlines listed at [[Wikipedia:Contents/Outlines]]. Wikipedia outlines are a special type of list article. They make up one of Wikipedia's content navigation systems See [[Wikipedia: Outlines]] and [[Wikipedia:WikiProject Outlines]] for more details. Further improvements to this outline are on the way ...--> [[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]] {{TOC limit|limit=2}} == 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 [[mathematical model|modeling]] logical queries; the uses and limitations of formal proof methods. * [[Number theory]] β Theory of the [[integer]]s. 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 structure]]s β 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 proving|automated theorem provers]] that aim to prove [[mathematical theorem]]s 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 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. * [[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]] β 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. === 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]] * [[Relational databases]] β the [[set theory|set theoretic]] and algorithmic foundation of 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]]. === Programming languages and compilers === * [[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 theory]] - Theory of programming language design * [[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. === Scientific computing === * [[Computational science]] – constructing [[scientific modeling|mathematical model]]s and [[numerical analysis|quantitative analysis]] techniques and using computers to analyze and solve [[scientific]] problems. * [[Numerical analysis]] β Approximate numerical solution of mathematical problems such as [[Root-finding algorithm|root-finding]], [[Numerical integration|integration]], the [[Numerical ordinary differential equations|solution of ordinary differential equations]]; the approximation of [[special functions]]. * [[Symbolic computation]] β Manipulation and solution of expressions in symbolic form, also known as [[Computer algebra]]. * [[Computational physics]] β Numerical simulations of large non-analytic systems * [[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]]. * [[Computational neuroscience]] β Computational modelling of [[neurophysiology]]. * [[Computational Linguistics|Computational linguistics]] * [[Computational logic]] * [[Computational engineering]] === 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 === {{main | Theory of computation}} * [[Automata theory]] β Different logical structures for solving problems. * [[Computability theory (computer science)|Computability theory]] β What is calculable with the current models of computers. Proofs developed by [[Alan Turing]] and others provide insight into the possibilities of what may be computed and what may not. ** [[List of unsolved problems in computer science]] * [[Computational complexity theory]] β Fundamental bounds (especially time and storage space) on classes of computations. * [[Quantum computing]] theory β Explores computational models involving [[quantum superposition]] of bits. == History == * [[History of computer science]] * [[List of pioneers in computer science]] * [[History of artificial intelligence|History of Artificial Intelligence]] * [[History of operating systems|History of Operating Systems]] == Professions == * [[Computer scientist|Computer Scientist]] * [[Programmer|Programmer (Software developer)]] * [[Teacher]]/[[Professor]] * [[Software engineer]] * [[Software architect]] * [[Software tester]] * [[Hardware engineer]] * [[Data analyst]] * [[Interaction designer]] * [[Network administrator]] * [[Data scientist]] == Data and data structures== * [[Data structure]] * [[Datatype|Data type]] * [[Associative array]] and [[Hash table]] * [[Array data structure|Array]] * [[List (computing)|List]] * [[Tree (data structure)|Tree]] * [[String (computer science)|String]] * [[Matrix (computer science)]] * [[Databases|Database]] ==Programming paradigms== * [[Imperative programming]]/[[Procedural programming]] * [[Functional programming]] * [[Logic programming]] * [[Declarative programming|Declarative Programming]] * [[Event-driven programming|Event-Driven Programming]] * [[Object oriented programming]] ** [[Class (computer science)|Class]] ** [[Inheritance (object-oriented programming)|Inheritance]] ** [[Object (computer science)|Object]] == See also == * [[Abstraction (computer science)|Abstraction]] * [[Big O notation]] * [[Closure (computer science)|Closure]] * [[Compiler]] * [[Cognitive science]] == External links == {{sister project links|Computer science}} * [[List of computer scientists|List of Computer Scientists]] * [[Glossary of computer science|Glossary of Computer Science]] {{Computer science}} {{Outline footer}} [[Category:Outlines of sciences|Computer science]] [[Category:Outlines|Computer science]] [[Category:Computer science|Outline]] [[Category:Computing-related lists|Computer science topics]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Computer science
(
edit
)
Template:Main
(
edit
)
Template:Outline footer
(
edit
)
Template:Short description
(
edit
)
Template:Sister project links
(
edit
)
Template:TOC limit
(
edit
)