Lessons in Scientific Computing (Numerical Mathematics, Computer Technology, and Scientific Discovery)