Introducing the Theory of Computation