This book is about building a mind, from a very practical computational perspective. There may be many philosophical debates about what constitutes a mind and whether specific attempts at building a mind have biological or psychological verisimilitude. The position taken here is quite simply that a mind is a process that receives stimuli and produces actions. This is a very simple definition indeed, and along with that definition, some interesting theories, architectures, design patterns, and data structures will be explored.