Theoretical computer science is a division of general computer science and mathematics which focuses on the abstract and mathematical aspects of computing. The field of theoretical computer science is interpreted broadly to include algorithms, data structures, computational complexity, distributed computing, parallel computing, and quantum computing. Work in this field is often distinguished by its emphasis on mathematical technique and formal proofs.
Formal algorithms have existed for many years. However, it was not until 1936 when Alan Turing, Alonzo Church and Stephan Kleene formalized the definition of an algorithm. These developments have led to the modern study of logic, computability and computer science as a whole. Now the filed is abuzz with talk of the future of quantum computing, the most exciting potential future path that modern computing might take.
The most important fields of theoretical computer science, and accordingly, those most often taught and studied, are as follows:
- theory of computation, including automata, computability and computational complexity theories
- programming language theory
- compiler theory
- artificial intelligence