  theoretical computer science is a division or subset of general computer science and mathematics which focuses on more abstract or mathematical aspects of computing and includes the theory of computation. it is not easy to circumscribe the theory areas precisely and the acm's special interest group on algorithms and computation theory (sigact) describes its mission as the promotion of theoretical computer science and notes:  to this list, the acm's journal transactions on computation theory adds coding theory, computational learning theory and theoretical computer science aspects of areas such as databases, information retrieval, economic models and networks. despite this broad scope, the "theory people" in computer science self-identify as different from the "applied people." some characterize themselves as doing the "(more fundamental) 'science(s)' underlying the field of computing." other "theory-applied people" suggest that it is impossible to separate theory and application. this means that the so-called "theory people" regularly use experimental science(s) done in less-theoretical areas such as software system research. it also means that there is more cooperation than mutually exclusive competition between theory and application. == history ==  while formal algorithms have existed for millennia (euclid's algorithm for determining the greatest common divisor of two numbers is still used in computation), it was not until 1936 that alan turing, [[alonzo chu
Formal_sciences Theoretical_computer_science