When we talk about Theory of Computation, we talk about the branch of Computer Science that deals with the set of problems that can be solved using an algorithm, providing a **model of computation**.

When we have a problem, the **Theory of Computatio**n permits us to answer questions like:

**Could be the problem solved algorithmically?**- If the answer of the above question is yes,
**how efficiently**can be solved? - Could exists a precise solution of this problem? Or only an approximative one?

In this post we are going to learn something about **automata theory**, a subfield of Theory of Computation…