Negnevitsky shows students how to build intelligent systems drawing on techniques from knowledge-based systems, neural networks, fuzzy systems, evolutionary computation and now also intelligent agents. The principles behind these techniques are explained without resorting to complex mathematics, showing how the various techniques are implemented, when they are useful and when they are not. No particular programming language is assumed and the book does not tie itself to any of the software tools available. However, available tools and their uses are described, and program examples are given in Java. The lack of assumed prior knowledge makes this book ideal for any introductory courses in artificial intelligence or intelligent systems design, while the contemporary coverage means more advanced students will benefit by discovering the latest state-of-the-art techniques, particularly in intelligent agents and knowledge discovery.