The theory of computation is the study of efficient algorithms and their associated computational complexity. The goal of the theory of computation is to understand the nature of computations and to design efficient algorithms for solving problems.
The basic concepts in the theory of computation include algorithms, Turing machines, automata, formal languages, and computability. Algorithms are a set of steps for solving a problem. Turing machines are abstract models of computers that can be used to represent any algorithm. Automata are abstract machines that can be used to recognize patterns in strings. Formal languages are mathematical models of programming languages. Computability is the ability to solve problems using algorithms.