# Theoretical computer science

Updated: 10/17/2017 by Computer Hope

**Theoretical computer science** is a division of computer science which focuses on the abstract, mathematical aspects of computing. It includes the study of:

- algorithms
- data structures
- computational complexity theory
- distributed computing
- parallel computing
- computational number theory
- algebra
- program semantics and verification
- automata theory
- coding theory
- computational learning
- databases
- information retrieval
- economic theory
- graph theory
- cryptography
- type theory
- category theory
- computational geometry
- quantum computing theory
- randomness

Informally, theoretical computer science was born in 1936 when Alan Turing, Alonzo Church, and Stephen Kleene formally defined algorithms is in terms of computation. In the present day, it deals heavily with quantum computers, which perform mathematical computations on the wavefunction of a particle.