Title: Fundamentals of the Theory of Computation : Principles and Practice