Automata theory has come into prominence in recent years with a plethora of applications in fields ranging from verification to XML processing and file compression. In fact, the 2007 Turing Award was awarded to Clarke, Emerson and Sifakis for their pioneering work on model-checking techniques. To the best of our knowledge, there is no single book that covers the vast range of applications of automata theory targeted at a mature student audience. This book is intended to fill that gap and can be used as an intermediate-level textbook. It begins with a detailed treatment of foundational material not normally covered in a beginner's course in automata theory, and then rapidly moves on to applications. The book is largely devoted to verification and model checking, and contains material that is at the cutting edge of verification technology. It will be an invaluable reference for software practitioners working in this area.