A wide-ranging survey of novel techniques and important applications, this book contains theoretical and philosophical discussions, pseudocodes for algorithms, and computing paradigms that illustrate how computational techniques can solve complex problems, simulate nature, explain natural phenomena, and allow the development of new computing technologies. The author uses a consistent and approachable format that includes figures, tables, examples, and exercises that encourage readers to apply the computational tools. Topics include evolutionary computing, neurocomputing, swarm intelligence, immunocomputing, fractal geometry, artificial life, quantum computing, and DNA computing.