Text this: Theory of Computation : Formal Languages, Automata, And Complexity