Differentiable Programming - A Simple Introduction