For centuries alchemist tried to solve the elusive problem of turning lead into gold. They never really solved this problem, but the course of their experiments and research created the foundations for modern physics and many great discoveries. Attacking seemingly outlandish questions can yield valuable side effects. Today, the outlandish question that many computer scientists are considering is: can a computer really be a mind? In this book, Steve Halladay uses this question to motivate the exploration of concepts in computational theory and machine learning. So many courses on computational theory are dry and meaningless. These courses bludgeon the students with seemingly irrelevant proofs of obscure relationships. Ask most successful software engineers what they remember from their comp theory class and, more often than not, they will give you a blank stare. There is no reason for this! The concepts of computation theory speak to some of the most fascinating work in computer science today. It’s just a matter of relating the theory to this exciting work. This book does just that! In this book you will understand how theoretical computational machinery relates to bleeding edge software development. See how you can use finite state machines, pushdown automata and Turing machines to build intelligent interactive agents. Figure out what we can and cannot compute and realize what this says about how our minds work and what we are able to think. Explore machine learning and grasp how the theory of computation helps us understand the constraints of how quickly a machine can learn.