Text this: An Introduction to formal languages and automata