Computer science
152 ideas in this subject. The map below lists the main ideas of the subject by area, in teaching order. 20 of its 243 ideas have a page so far.
Start here
- ConceptTuring machine
A Turing machine is an abstract model of computation with a finite set of states and an unbounded tape of symbols. A moving head reads and writes the symbols one cell at a time. Alan Turing introduced it in 1936 to make the notion of an algorithm precise. A function is computable when some Turing machine computes it, and by the Church–Turing thesis this matches the informal idea of an algorithm. Turing machines are the standard model in computability theory and in complexity theory.
- ConceptCellular automaton
A cellular automaton is a grid of cells, each in one of finitely many states. All cells update at the same time by one local rule. The new state of a cell depends only on the old states of the cells in a fixed finite neighbourhood. As a dynamical system it is a continuous map of the configuration space that commutes with the shifts, by the Curtis–Hedlund–Lyndon theorem. Very simple rules can produce complex behaviour, so cellular automata serve as models in physics and biology and as a model of computation.
- ConceptChurch–Turing thesis
The Church–Turing thesis is a claim about the informal notion of an algorithm. It says that a function on the natural numbers can be calculated by an effective method exactly when a Turing machine computes it. It is not a theorem, because "effective method" is an informal notion and cannot be the subject of a proof. It is supported by the fact that all proposed formal models of computation define the same class of functions. These models include general recursive functions, the lambda calculus and Turing machines. The thesis lets one prove that a problem has no algorithm at all by proving that no Turing machine solves it.
- TheoremUndecidability of the halting problem
Fix a Gödel numbering of all Turing machines with input and output in the natural numbers. Let . Then is not a computable set: no Turing machine halts on every input and outputs if and otherwise.
- TheoremRice's theorem
Fix a standard Gödel numbering of programs, and let be the partial computable function of one argument computed by program . Let be a set of partial computable functions that is neither empty nor the set of all partial computable functions. Then the index set is not a computable set.
- TheoremSmn theorem
Fix a standard Gödel numbering of programs, and let be the partial computable function of arguments computed by program . Let . Then there is a primitive recursive function such that for all , and : Here means that both sides are undefined, or both are defined and equal.
Map of the subject
Models of computation 3 of 16
- theory of computation concept
- model of computation concept
- Turing machine definition
- multitape Turing machine definition
- nondeterministic Turing machine definition
- probabilistic Turing machine definition
- random-access machine definition
- register machine definition
- Cellular automaton definition
- Rule 110 example
- Boolean circuit definition
- decision tree model definition
- Turing completeness concept
- equivalence of Turing machines and partial recursive functions statement
- Church–Turing thesis concept
- Busy Beaver function definition
Computability as used in CS 4 of 12
- decision problem definition
- decidable language definition
- recursively enumerable language definition
- decidable iff recognizable and co-recognizable statement
- Undecidability of the halting problem statement
- Rice's theorem statement
- Post correspondence problem problem
- Wang tile undecidability statement
- Smn theorem statement
- Kleene's recursion theorem statement
- mapping reduction definition
- encoding of data definition
Automata and formal languages 1 of 53
- alphabet definition
- string definition
- formal language definition
- Kleene star definition
- automata theory concept
- finite-state machine concept
- deterministic finite automaton definition
- nondeterministic finite automaton definition
- epsilon-NFA definition
- powerset construction statement
- regular language definition
- regular expression definition
- Kleene's theorem statement
- Brzozowski derivative definition
- closure properties of regular languages statement
- pumping lemma for regular languages statement
- Myhill–Nerode theorem statement
- DFA minimization definition
- syntactic monoid definition
- star-free language definition
- Schützenberger's theorem on star-free languages statement
- Kleene algebra definition
- Mealy machine definition
- Moore machine definition
- finite-state transducer definition
- weighted automaton definition
- Büchi automaton definition
- omega-regular language definition
- tree automaton definition
- two-way finite automaton definition
- Chomsky hierarchy concept
- formal grammar definition
- context-free grammar definition
- context-free language definition
- Chomsky normal form definition
- Greibach normal form definition
- pushdown automaton definition
- pumping lemma for context-free languages statement
- Ogden's lemma statement
- Chomsky–Schützenberger representation theorem statement
- Parikh's theorem statement
- Dyck language example
- ambiguous grammar definition
- CYK algorithm definition
- deterministic context-free language definition
- context-sensitive language definition
- linear bounded automaton definition
- Immerman–Szelepcsényi theorem statement
- unrestricted grammar definition
- rewriting system definition
- confluence definition
- Newman's lemma statement
- Knuth–Bendix completion definition
Computational complexity: resources and classes 0 of 33
- computational complexity theory concept
- time complexity definition
- space complexity definition
- complexity class definition
- P definition
- NP definition
- co-NP definition
- P versus NP problem problem
- NP-completeness definition
- NP-hardness definition
- polynomial-time reduction definition
- Cook–Levin theorem statement
- Boolean satisfiability problem problem
- Karp's 21 NP-complete problems example
- travelling salesman problem problem
- subset sum problem problem
- graph isomorphism problem problem
- Ladner's theorem statement
- Schaefer's dichotomy theorem statement
- constraint satisfaction problem problem
- time hierarchy theorem statement
- space hierarchy theorem statement
- Savitch's theorem statement
- L definition
- NL definition
- PSPACE definition
- PSPACE-completeness definition
- true quantified Boolean formula problem
- EXPTIME definition
- polynomial hierarchy definition
- oracle relativization and Baker–Gill–Solovay theorem statement
- natural proofs barrier statement
- Blum's speedup theorem statement
Randomized, circuit, counting and interactive complexity 1 of 34
- BPP definition
- RP definition
- ZPP definition
- Sipser–Lautemann theorem statement
- derandomization and pseudorandom generators concept
- PRIMES is in P statement
- circuit complexity concept
- P/poly definition
- Karp–Lipton theorem statement
- AC0 definition
- parity not in AC0 statement
- NC definition
- Shannon's counting argument for circuit size statement
- Razborov's monotone circuit lower bound statement
- #P definition
- Valiant's theorem on the permanent statement
- Toda's theorem statement
- interactive proof system definition
- IP = PSPACE statement
- Arthur–Merlin protocol definition
- zero-knowledge proof definition
- PCP theorem statement
- hardness of approximation concept
- unique games conjecture conjecture
- exponential time hypothesis conjecture
- parameterized complexity concept
- communication complexity concept
- quantum complexity class BQP definition
- quantum Turing machine definition
- Shor's algorithm statement
- Grover's algorithm statement
- one-way function definition
- descriptive complexity theory concept
- Kolmogorov complexity definition
Lambda calculus and combinatory logic 1 of 12
- Lambda calculus concept
- beta reduction definition
- eta conversion definition
- beta normal form definition
- Church–Rosser theorem statement
- normalization property definition
- evaluation strategy definition
- Church encoding definition
- fixed-point combinator definition
- SKI combinator calculus definition
- De Bruijn index definition
- Lambda cube concept
Type theory 2 of 21
- Type theory concept
- type system concept
- simply typed lambda calculus definition
- strong normalization of simply typed lambda calculus statement
- type safety statement
- Hindley–Milner type system definition
- type inference definition
- Unification definition
- System F definition
- Girard's paradox counterexample
- parametricity concept
- dependent type definition
- calculus of constructions definition
- calculus of inductive constructions definition
- inductive type definition
- Martin-Löf type theory definition
- propositions as types concept
- univalence axiom definition
- subtyping definition
- linear type system definition
- monad in functional programming definition
Semantics and logic in computer science 0 of 13
- denotational semantics concept
- operational semantics concept
- Hoare logic definition
- weakest precondition definition
- separation logic definition
- process calculus concept
- pi-calculus definition
- bisimulation definition
- linear temporal logic definition
- computation tree logic definition
- modal mu-calculus definition
- model checking concept
- Petri net definition
Algorithms as mathematical objects 6 of 42
- algorithm concept
- analysis of algorithms concept
- asymptotic notation definition
- master theorem statement
- Akra–Bazzi method statement
- amortized analysis concept
- Euclidean algorithm definition
- Extended Euclidean algorithm definition
- Lamé's theorem statement
- sorting algorithm concept
- comparison sort lower bound statement
- merge sort definition
- insertion sort definition
- quicksort definition
- binary search definition
- Heap definition
- dynamic programming concept
- greedy algorithm concept
- divide-and-conquer algorithm concept
- breadth-first search definition
- depth-first search definition
- Dijkstra's algorithm definition
- Bellman–Ford algorithm definition
- Floyd–Warshall algorithm definition
- Kruskal's algorithm definition
- Prim's algorithm definition
- topological sorting definition
- Ford–Fulkerson algorithm definition
- Hopcroft–Karp algorithm definition
- Karatsuba algorithm definition
- Strassen algorithm definition
- Matrix multiplication exponent problem
- fast Fourier transform definition
- string-searching algorithm concept
- Knuth–Morris–Pratt algorithm definition
- edit distance definition
- randomized algorithm concept
- Miller–Rabin primality test definition
- approximation algorithm concept
- linear programming and the simplex method concept
- ellipsoid method definition
- online algorithm and competitive analysis concept
Discrete structures and information for computer science 2 of 7
- Boolean function definition
- binary decision diagram definition
- sensitivity theorem statement
- Binary tree definition
- Hamming distance definition
- Shannon's source coding theorem statement
- Kraft–McMillan inequality statement
More ideas in this subject
Concepts 58
- Computational geometry
- Convex hull algorithms
- Dyck word
- Finite model theory
- Epsilon-net of a set system
- F-coalgebra
- Arbitrary-precision arithmetic
- Bézier curve
- de Casteljau's algorithm
- Information-based complexity
- Initial algebra
- Polygon triangulation
- Subdivision surface
- Voronoi diagram
- Automatic group
- Delaunay triangulation
- Directed-complete partial order
- Gosper's algorithm
- Neural network approximation
- Non-uniform rational B-spline
- Omega-complete partial order
- Triangulation of a point set
- Universal coalgebra
- Abstract data type as an algebra
- Bayesian network
- Formal concept analysis
- Initial algebra semantics
- Many-sorted algebra
- Perspective projection
- Digital topology
- Horner's method
- Krohn–Rhodes theory
- Poisson–Mellin–Newton cycle
- Risch algorithm
- Scott domain
- Statistical learning theory
- Algebraic approach to constraint satisfaction
- Combinatorics on words
- Scott continuity
- Term rewriting for equational theories
- Automatic differentiation
- Regular chain
- Schreier–Sims algorithm
- VC dimension
- Wilf–Zeilberger pair
- Domain theory
- Polynomial long division
- Zeilberger's algorithm
- Multivariate division algorithm
- Proof complexity
- Buchberger's algorithm
- Gröbner basis
- Curry–Howard correspondence
- Empirical risk minimization
- Kovacic's algorithm
- Berlekamp's algorithm
- Minimum description length
- Algorithmic randomness
Theorems and results 14
Examples 4
Objects 3
Problems 2
Conjectures 1
Definitions 62
- Dyck word
- Lambda calculus
- Cellular automaton
- Epsilon-net of a set system
- F-coalgebra
- Arbitrary-precision arithmetic
- Bézier curve
- de Casteljau's algorithm
- Information-based complexity
- Initial algebra
- Kolmogorov complexity
- Polygon triangulation
- Subdivision surface
- Turing machine
- Unification
- Voronoi diagram
- Automatic group
- Delaunay triangulation
- Directed-complete partial order
- Gosper's algorithm
- Neural network approximation
- Non-uniform rational B-spline
- Omega-complete partial order
- Triangulation of a point set
- Universal coalgebra
- Abstract data type as an algebra
- Bayesian network
- Formal concept analysis
- Initial algebra semantics
- Many-sorted algebra
- Perspective projection
- Strassen algorithm
- Digital topology
- Horner's method
- Krohn–Rhodes theory
- Poisson–Mellin–Newton cycle
- Risch algorithm
- Scott domain
- Statistical learning theory
- Algebraic approach to constraint satisfaction
- Combinatorics on words
- Scott continuity
- Term rewriting for equational theories
- Automatic differentiation
- Curry–Howard correspondence
- Regular chain
- Schreier–Sims algorithm
- VC dimension
- Wilf–Zeilberger pair
- Domain theory
- Polynomial long division
- Zeilberger's algorithm
- Multivariate division algorithm
- Buchberger's algorithm
- Gröbner basis
- Empirical risk minimization
- Kleene algebra
- Kovacic's algorithm
- Proof complexity
- Berlekamp's algorithm
- Minimum description length
- Algorithmic randomness