Artificial Intelligence Illuminated presents an overview of the background and history of artificial intelligence, emphasizing its importance in today’s society and potential for the future. The book covers a range of AI techniques, algorithms, and methodologies, including game playing, intelligent agents, machine learning, genetic algorithms, and Artificial Life. Material is presented in a lively and accessible manner and the author focuses on explaining how AI techniques relate to and are derived from natural systems, such as the human brain and evolution, and explaining how the artificial equivalents are used in the real world. Each chapter includes student exercises and review questions, and a detailed glossary at the end of the book defines important terms and concepts highlighted throughout the text.
This book is intended for students of computer science at the college level, or students of other subjects that cover Artificial Intelligence. It also is intended to be an interesting and relevant introduction to the subject for other students or individuals who simply have an interest in the subject. The book assumes very little knowledge of computer science, but does assume some familiarity with basic concepts of algorithms and computer systems. Data structures such as trees, graphs, and stacks are explained briefly in this book, but if you do not already have some familiarity with these concepts, you should probably seek out a suitable book on algorithms or data structures.
It would be an advantage to have some experience in a programming language such as C++ or Java, or one of the languages commonly used in Artificial Intelligence research, such as PROLOG and LISP, but this experience is neither necessary nor assumed.
Many of the chapters include practical exercises that require the reader to develop an algorithm or program in a programming language of his or her choice. Most readers should have no difficulty with these exercises. However, if any reader does not have the necessary skills he or she simply should describe in words (or in pseudocode) how his or her programs work, giving as much detail as possible.