Theory of computation aims to understand the nature of efficient computation by dealing with how problems can be solved on a model of computation using an algorithm. It is mainly concerned with the study of how problems can be solved using algorithms. Computer scientists work using a model of computation to solve problems and prove results about computability. Automata theory, a field of study within theory of computation, studies abstract machines and the problems that can be solved using these machines.