Approximation of Functions: Theory and Numerical Methods