The Theory of Computation deals with how efficiently problems can be solved using algorithms on computational models. It is divided into three branches: automata theory, computability theory, and complexity theory. Complexity theory analyzes problem difficulty and classifies problems as easy or hard to solve efficiently. Computability theory determines if problems are solvable or unsolvable. Automata theory studies the properties of computation models like finite automata and Turing machines. The overall purpose is to develop mathematical models of computation that reflect real-world computers and determine computational limitations.