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. Includes the latest state-of-the-art techniques, particularly in intelligent agents and knowledge discovery.