This is the first entry-level book on algorithmic (also known as automatic) differentiation (AD), providing fundamental rules for the generation of first- and higher-order tangent-linear and adjoint code. The author covers the mathematical underpinnings as well as applications to real-world numerical simulation programs. Readers will find: * Many examples and exercises, including hints to solutions * The prototype AD tools dco and dcc for use with the examples and exercises * First- and higher-order tangent-linear and adjoint modes for a limited subset of C/C++, provided by the derivative code compiler dcc * A supplementary website containing sources of all software discussed in the book, additional exercises and comments on their solutions (growing over the coming years), links to other sites on AD, and errata. Ideal for undergraduate and graduate students, the book is also suitable for researchers and developers at all levels who need an introduction to AD.