Numerous exercises are presented and can be expanded into projects and thesis work. Each new topic is preceded by a reduced complexity example of the concept. Key concepts and related mathematical analysis are developed in easy-to-understand terms. The distinctive coverage of genetic algorithms provides a background in genetic solutions for search problems, along with two representational techniques.