Text this: Introduction to automated theory, languages and computation