## What is the Theory of Computation?

The Theory of Computation is a broad field of study focused on creating more efficient algorithms and other computational processes. Computation theory works on “high level” problems, such as:

- How to express the commands and functions of computer hardware and software in mathematical terms.
- How to express computations and algorithms in rigorous mathematical terms.
- What are the limitations of hardware and software?

### What are the Branches of Computation Theory?

Each of those questions is tackled by a different sub-field of computation theory, with the ultimate goal being to provide researchers with a solid theoretical framework to build more efficient algorithms and networks.

**Automata theory**– What are the capabilities of different automations and what type of problems can they solve? This dives into the nuts and bolts of algorithms and computation models, including abstract Turing machines, hardware design and programming languages.

**Complexity theory**– What makes some problems computationally hard (inefficient solutions) and other problems easy (solved efficiently)? The goals are to classify all types of problems by the degree of difficulty and provide mathematical proof for their efficiency/inefficiency.

**Computability theory**– What are the limitations of hardware and software? The goal is to classify types of problems as being solvable or not, regardless of accuracy or probability levels.