This book presents a series of compelling exercises of increasing difficulty in formal languages, automata and computation, key topics in theoretical computer science. Comprehensive solutions are provided for all problems, making it a perfect resource for self-study, as well as a source of examples and problems for instructors.