Programming for Computations - A Gentle Introduction to Numerical