Theory of computer science