Covers automata, formal language theory and computability. Automata theory plays important roles in compilers, text processing, programming languages, hardware designs and artificial intelligence and is the core base of computer science studies. The intent is to make automata theory interesting and challenging.