The document describes the back propagation learning algorithm, which is an error correcting algorithm that solves the credit assignment problem for neural networks with hidden units. It introduces supervised learning and using a training set to adapt network weights to produce desired outputs. The algorithm is then derived, showing how to calculate the gradient of the error function with respect to weights using back propagation to determine how to update weights between hidden and output units as well as between input and hidden units.