The computer hardware and software industry is committed to using formal methods. As a result, it is crucial that students who take automata theory and logic courses retain what they have learned and understand how to use their knowledge. Yet many textbooks typically emphasize automata theory only, not logic, thus losing a valuable opportunity to tie these subjects together and reinforce learning. In fact, automata theory and logic evolved hand-in-hand, yet this connection was severed in the '70s as separate automata-theory and logic courses became possible. Now, with computer science departments suffering from overcrowded syllabi, it is often possible for undergraduates to get a BS without having had to take a course in mathematical logic! Today's students want to know how knowledge can work for them -- learning theory as a tool is preferable to learning theory for theory's sake. To prove that theoretical tenents are not only applicable, but also necessary and relevant, useful examples must be presented. This textbook uses interactive tools throughout, such as simple BDD and SAT tools. By providing a blend of theory and practical applications the material is shown to be both inviting and current. Topics are also illustrated in multiple domains so that information is reinforced and students can begin to tie automata theory and logic together. They will also learn multiple uses of fixed-points, including BDD based model checking and understanding context-free productions. Having used this book, students will not only know and understand automata theory, but also be able to apply their knowledge in real practice.