Artificial Intelligence is one of the most rapidly evolving subjects within the computing/engineering curriculum, with an emphasis on creating practical applications from hybrid techniques. Despite this, the traditional textbooks continue to expect mathematical and programming expertise beyond the scope of current undergraduates and focus on areas not relevant to many of today's courses. 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 will be described and program examples will be 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 contempory coverage means more advanced students will benefit by discovering the latest state-of-the-art techniques.