Theoretical Computer Science

Theoretical Computer Science (TCS) is concerned with understanding the very nature of computation: What problems can be solved by computers and how efficiently can such problems be solved? Can "hard" problems be used to our advantage in any way? TCS encompasses research in such diverse areas as complexity theory, algorithms, cryptography and coding theory, distributed and parallel computing, social networks, machine learning, game theory, and more. The common thread is a focus on precise models and rigorous mathematical analysis of particular problems within those models.