function backpropagate(example, desired_answer, network):
   prediction = forward_pass(example, network)

   error = compare(prediction, desired_answer)
   for layer from last to first:
      compute each weight's share of the error
      adjust weights slightly to reduce that error
   return network
