Theoretical Computer Science is a subset of mathematics and general computer science that deals with computing of mathematical topics which involves the theories of computation. Theoretical Computer Science covers wide range of topics like computational complexity, algorithms, probabilistic computation, automata theory, cryptography and computational number theory.