# Lecture / Tutorial: Introduction to Algorithmic Differentiation

## Contents

- Welcome
**Derivative code by overloading**
- univariate scalar differentiable programs
- motivation. essential calculus. finite differences

- first derivative code

- second and higher derivative code

- multivariate vector-valued differentiable programs
- motivation. essential calculus. finite differences

- first-order tangent code

- second- and higher-order tangent cod
**e**

- first-order adjoint

- second- and higher-order adjoint

- Exploitation of sparsity

**Derivative code by hand**
- tangent code

- adjoint straight-line code

- adjoint intra- and interprocedural code

**Derivative code by automatic source transformation**

- overview and lexical analysis

- syntax analysis

- attribute grammars and syntax-directed translation