Introduction to Modern Scientific Programming and Numerical Methods