**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: Computer science, or computing science, is the study of the theoretical foundations of information and computation and their implementation and application in computer systems. ...
The ASCII codes for the word Wikipedia represented in binary, the numeral system most commonly used for encoding computer information. ...
Look up computation in Wiktionary, the free dictionary. ...
This article or section is in need of attention from an expert on the subject. ...
Computer science, or computing science, is the study of the theoretical foundations of information and computation and their implementation and application in computer systems. ...
The ACM Computing Classification System is a subject classification system for computer science devised by the Association for Computing Machinery. ...
The Association for Computing Machinery, or ACM, was founded in 1947 as the worlds first scientific and educational computing society. ...
## Branches of computer science
### Mathematical foundations Mathematical logic is a major area of mathematics, which grew out of symbolic logic. ...
Number theory is the branch of pure mathematics concerned with the properties of numbers in general, and integers in particular, as well as the wider classes of problems that arise from their study. ...
The German Lorenz cipher machine, used in World War II for encryption of very high-level general staff messages Cryptography (or cryptology; derived from Greek ÎºÏÏ…Ï€Ï„ÏŒÏ‚ kryptÃ³s hidden, and the verb Î³ÏÎ¬Ï†Ï‰ grÃ¡fo write or Î»ÎµÎ³ÎµÎ¹Î½ legein to speak) is the study of message secrecy. ...
Bold text[[Link title]] â€œAIâ€ redirects here. ...
A pictorial representation of a graph In mathematics and computer science, graph theory is the study of graphs, mathematical structures used to model pairwise relations between objects from a certain collection. ...
Game theory is a branch of applied mathematics that is often used in the context of economics. ...
Bold text[[Link title]] â€œAIâ€ redirects here. ...
For other uses, see Cybernetics (disambiguation). ...
### Theory of computation -
The theory of computation is the branch of computer science that deals with whether and how efficiently problems can be solved on a computer. ...
â€œAutomataâ€ redirects here. ...
In computer science, computability theory is the branch of the theory of computation that studies which problems are computationally solvable using different models of computation. ...
Alan Mathison Turing, OBE, FRS (23 June 1912 â€“ 7 June 1954) was an English mathematician, logician, and cryptographer. ...
As a branch of the theory of computation in computer science, computational complexity theory describes the scalability of algorithms, and the inherent difficulty in providing scalable algorithms for specific computational problems. ...
Molecule of alanine used in NMR implementation of error correction. ...
### 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.
Flowcharts are often used to represent algorithms. ...
A binary tree, a simple type of branching linked data structure. ...
### Programming languages and compilers A diagram of the operation of an ideal compiler. ...
A diagram of the operation of a typical multi-language, multi-target compiler. ...
â€œAutomataâ€ redirects here. ...
A programming language is an artificial language that can be used to control the behavior of a machine, particularly a computer. ...
A programming paradigm is a paradigmatic style of programming (compare with a methodology which is a paradigmatic style of doing software engineering). ...
Object-oriented programming (OOP) is a programming paradigm that uses objects and their interactions to design applications and computer programs. ...
Programming language theory (commonly known as PLT) is a branch of computer science which deals with the design, implementation, analysis, characterization, and classification of programming languages and programming language features. ...
In theoretical computer science formal semantics is the field concerned with the rigorous mathematical study of the meaning of programming languages and models of computation. ...
At the broadest level, type theory is the branch of mathematics and logic that first creates a hierarchy of types, then assigns each mathematical (and possibly other) entity to a type. ...
### 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.
The Dining Philosophers, a classic problem involving concurrency and shared resources In computer science, concurrency is a property of systems in which several computational processes are executing at the same time, and potentially interacting with each other. ...
Distributed computing is a method of computer processing in which different parts of a program run simultaneously on two or more computers that are communicating with each other over a network. ...
Parallel computing is the simultaneous execution of the same task (split up and specially adapted) on multiple processors in order to obtain results faster. ...
### 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
In computer science and software engineering, formal methods are mathematically-based techniques for the specification, development and verification of software and hardware systems. ...
Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software. ...
Reverse engineering (RE) is the process of taking something (a device, an electrical component, a software program, etc. ...
Algorithm design is a specific method to create a mathematical process in solving problems. ...
â€œProgrammingâ€ redirects here. ...
### 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.
A typical vision of a computer architecture as a series of abstraction layers: hardware, firmware, assembler, kernel, operating system and applications (see also Tanenbaum 79). ...
CPU can stand for: in computing: Central processing unit in journalism: Commonwealth Press Union in law enforcement: Crime prevention unit in software: Critical patch update, a type of software patch distributed by Oracle Corporation in Macleans College is often known as Ash Lim. ...
To meet Wikipedias quality standards, this article or section may require cleanup. ...
// An operating system (OS) is the software that manages the sharing of the resources of a computer. ...
### Communications and Security This article or section is in need of attention from an expert on the subject. ...
In computer science and information theory, error correction consists of using methods to detect and/or correct errors in the transmission or storage of data by the use of some amount of redundant data and (in the case of transmission) the selective retransmission of incorrect segments of the data. ...
This article describes how security can be achieved through design and engineering. ...
The German Lorenz cipher machine, used in World War II for encryption of very high-level general staff messages Cryptography (or cryptology; derived from Greek ÎºÏÏ…Ï€Ï„ÏŒÏ‚ kryptÃ³s hidden, and the verb Î³ÏÎ¬Ï†Ï‰ grÃ¡fo write or Î»ÎµÎ³ÎµÎ¹Î½ legein to speak) is the study of message secrecy. ...
### Databases A relational database is a database based on the relational model. ...
Data mining has been defined as the nontrivial extraction of implicit, previously unknown, and potentially useful information from data [1] and the science of extracting useful information from large data sets or databases [2]. Data mining involves sorting through large amounts of data and picking out relevant information. ...
Information retrieval (IR) is the science of searching for information in documents, searching for documents themselves, searching for metadata which describe documents, or searching within databases, whether relational stand-alone databases or hypertextually-networked databases such as the World Wide Web. ...
### 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.
Bold text[[Link title]] â€œAIâ€ redirects here. ...
Automated reasoning is an area of Computer Science dedicated to creating software which allows to perform reasoning on computers completely or nearly completely automatically. ...
Prolog is a logic programming language. ...
Robotics is the science and technology of robots, their design, manufacture, and application. ...
Computer vision is the science and technology of machines that see. ...
As a broad subfield of artificial intelligence, machine learning is concerned with the design and development of algorithms and techniques that allow computers to learn. At a general level, there are two types of learning: inductive, and deductive. ...
### 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.
This article is about the scientific discipline of computer graphics. ...
UPIICSA IPN - Binary image Image processing is any form of information processing for which the input is an image, such as photographs or frames of video; the output is not necessarily an image, but can be for instance a set of features of the image. ...
Human-computer interaction (HCI) is the study of interaction between people (users) and computers. ...
### Scientific computing Numerical analysis is the study of approximate methods for the problems of continuous mathematics (as distinguished from discrete mathematics). ...
A root-finding algorithm is a numerical method, or algorithm, for finding a value x such that f(x) = 0, for a given function f. ...
Numerical Integration with the Monte Carlo method: Nodes are random equally distributed. ...
Numerical ordinary differential equations is the part of numerical analysis which studies the numerical solution of ordinary differential equations (ODEs). ...
In mathematics, there is a theory or theories of special functions, particular functions such as the trigonometric functions that have useful or attractive properties, and which occur in different applications often enough to warrant a name and attention of their own. ...
Symbolic computation relates to the use of computers to manipulate mathematical equations and expressions in symbolic form, as opposed to manipulating the approximations of specific numerical quantities represented by those symbols. ...
A computer algebra system (CAS) is a software program that facilitates symbolic mathematics. ...
Computational physics is the study and implementation of numerical algorithms in order to solve problems in physics for which a quantitative theory already exists. ...
Computational chemistry is a branch of chemistry that uses the results of theoretical chemistry incorporated into efficient computer programs to calculate the structures and properties of molecules and solids, applying these programs to complement the information obtained by actual chemical experiments, predict hitherto unobserved chemical phenomena, and solve related problems. ...
Map of the human X chromosome (from the NCBI website). ...
Biological data is data collected from biological sources, which is stored or exchanged in a digital form. ...
Protein folding is the process by which a protein assumes its characteristic functional shape or tertiary structure, also known as the native state. ...
In biology, phylogenetics (Greek: phylon = tribe, race and genetikos = relative to birth, from genesis = birth) is the study of evolutionary relatedness among various groups of organisms (e. ...
Computational neuroscience is an interdisciplinary science that links the diverse fields of neuroscience, cognitive science, electrical engineering, computer science, physics and mathematics. ...
Neurophysiology is a part of physiology as a science, which is concerned with the study of the nervous system. ...
## History of computer science -
The history of computer science began long before the modern discipline of computer science that emerged in the twentieth century. ...
## Vocations of computer science A programmer or software developer is someone who programs computers, that is, one who writes computer software. ...
For other uses, see Software developer (disambiguation). ...
Software testing is the process used to measure the quality of developed computer software. ...
## Basic computer science concepts In computer science, abstraction is a mechanism and practice to reduce and factor out details so that one can focus on a few concepts at a time. ...
In mathematics, computing, linguistics, and related disciplines, an algorithm is a finite list of well-defined instructions for accomplishing some task that, given an initial state, will terminate in a defined end-state. ...
This article does not cite any references or sources. ...
â€œAutomataâ€ redirects here. ...
For other uses, see Big O. In computational complexity theory, big O notation is often used to describe how the size of the input data affects an algorithms usage of computational resources (usually running time or memory). ...
In object-oriented programming, a class is a programming language construct that is used to group related instance variables and methods. ...
In computer science, a closure is a function that is evaluated in an environment containing one or more bound variables. ...
A diagram of the operation of a typical multi-language, multi-target compiler. ...
Look up computation in Wiktionary, the free dictionary. ...
In computer science, computability theory is the branch of the theory of computation that studies which problems are computationally solvable using different models of computation. ...
Complexity theory is part of the theory of computation dealing with the resources required during computation to solve a given problem. ...
This article or section is in need of attention from an expert on the subject. ...
â€œProgrammingâ€ redirects here. ...
The Dining Philosophers, a classic problem involving concurrency and shared resources In computer science, concurrency is a property of systems in which several computational processes are executing at the same time, and potentially interacting with each other. ...
In computing, a continuation is a representation of some of the execution state of a program (often the call stack and the current Instruction pointer) at a certain point. ...
In computer science control flow (or alternatively, flow of control) refers to the order in which the individual statements, instructions or function calls of an imperative or functional program are executed or evaluated. ...
A binary tree, a simple type of branching linked data structure. ...
In computer science, a datatype or data type (often simply a type) is a name or label for a set of values and some operations which one can perform on that set of values. ...
A database is an information set with a regular structure. ...
Declarative programming is a term with two distinct meanings, both of which are in current use. ...
Fig. ...
A simple flowchart for what to do if a lamp doesnt work A flowchart (also spelled flow-chart and flow chart) is a schematic representation of an algorithm or a process. ...
In computer science and software engineering, formal methods are mathematically-based techniques for the specification, development and verification of software and hardware systems. ...
Functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids state and mutable data. ...
In computability theory the halting problem is a decision problem which can be informally stated as follows: Given a description of a program and a finite input, decide whether the program finishes running or will run forever, given that input. ...
In computer science, imperative programming, as opposed to declarative programming, is a programming paradigm that describes computation in terms of a program state and statements that change the program state. ...
In computer science, the principle of information hiding is the hiding of design decisions in a computer program that are most likely to change, thus protecting other parts of the program from change if the design decision is changed. ...
This article or section does not cite any references or sources. ...
In computer science, optimising compilers and the methodology of design by contract pay close attention to invariant quantities in computer programs, where the set of transformations involved is the execution of the steps of the computer program. ...
The word iteration is sometimes used in everyday English with a meaning virtually identical to repetition. ...
The lambda calculus is a formal system designed to investigate function definition, function application, and recursion. ...
Look up list in Wiktionary, the free dictionary. ...
Logic programming (which might better be called logical programming by analogy with mathematical programming and linear programming) is, in its broadest sense, the use of mathematical logic for computer programming. ...
In computer programming a matrix is a two dimensional array. ...
In strictly mathematical branches of computer science the term object is used in a purely mathematical sense to refer to any thing. While this interpretation is useful in the discussion of abstract theory, it is not concrete enough to serve as a primitive datatype in the discussion of more concrete...
Object-oriented programming (OOP) is a programming paradigm that uses objects and their interactions to design applications and computer programs. ...
// An operating system (OS) is the software that manages the sharing of the resources of a computer. ...
An example of parsing a mathematical expression. ...
In theoretical computer science, the π-calculus is a notation originally developed by Robin Milner, Joachim Parrow and David Walker to model concurrency (just as the λ-calculus is a simple model of sequential programming languages). ...
In computer science, polymorphism means allowing a single definition to be used with different types of data (specifically, different classes of objects). ...
This does not adequately cite its references or sources. ...
Programming language theory (commonly known as PLT) is a branch of computer science which deals with the design, implementation, analysis, characterization, and classification of programming languages and programming language features. ...
In theoretical computer science formal semantics is the field concerned with the rigorous mathematical study of the meaning of programming languages and models of computation. ...
This article is about the concept of recursion. ...
In computing, a regular expression is a string that is used to describe or match a set of strings, according to certain syntax rules. ...
In computer programming and formal language theory, (and other branches of mathematics), a string is an ordered sequence of symbols. ...
In computer science, a subroutine (function, method, procedure, or subprogram) is a portion of code within a larger program, which performs a specific task and can be relatively independent of the remaining code. ...
System programming (or systems programming) is the activity of building and maintaining, low-level, system software for computers, including operating systems, system utilities, compilers, and so forth. ...
A simple example unordered tree In computer science, a tree is a widely-used data structure that emulates a tree structure with a set of linked nodes. ...
The Turing machine is an abstract machine introduced in 1936 by Alan Turing to give a mathematically precise definition of algorithm or mechanical procedure. As such it is still widely used in theoretical computer science, especially in complexity theory and the theory of computation. ...
## People in computer science -
. ...
## See also Image File history File links Portal. ...
Cognitive science is usually defined as the scientific study either of mind or of intelligence (e. ...
## External links Find more information on Computer science by searching Wikipedia's sister projects |
| Dictionary definitions from Wiktionary |
| Textbooks from Wikibooks |
| Quotations from Wikiquote |
| Source texts from Wikisource |
| Images and media from Commons |
| News stories from Wikinews |
| Learning resources from Wikiversity | List resources | Topic lists (Basic topic lists) · Glossaries · Countries · People · Timelines Wikipedia does not have an article with this exact name. ...
Image File history File links Wikibooks-logo. ...
Image File history File links Wikiquote-logo. ...
Image File history File links Wikisource-logo. ...
Image File history File links Commons-logo. ...
Image File history File links WikiNews-Logo. ...
Image File history File links Wikiversity-logo-Snorky. ...
Contents Overviews Academia Topics Basic topics Glossaries Portals Categories General reference lists â€¢ Abbreviations â€¢ ClichÃ©s â€¢ Collective nouns â€¢ Common misspellings â€¢ Etymologies â€¢ Fictional things â€¢ Isms â€¢ Library and information science â€¢ Ologies â€¢ Pairs â€¢ Postal codes â€¢ Topics by country â€¢ Unexplained / anomalous phenomena â€¢ Unsolved problems â€¢ Unusual articles â€¢ Wikipedia featured lists (Wikipedia:Almanac) Reference organizations â€¢ News agencies...
Contents Â· Overviews Â· Academia Â· Topics Â· Basic topics Â· Glossaries Â· Portals Â· Categories Each entry below is a list of fundamental concepts in its respective subject area. ...
Contents Overviews Academia Topics Basic topics Tables Glossaries Portals Categories A glossary is a list of specialized or technical words with their meanings. ...
A country is a geographical territory, both in the sense of nation (a cultural entity) and state (a political entity). ...
Chronologies or timelines are important in understanding history. ...
| |