This book provides a seamless approach to numerical algorithms, modern programming techniques and parallel computing.
1. Scientific computing and simulation science; 2. Basic concepts; 3. Approximations; 4. Roots and integrals; 5. Explicit discretizations; 6. Implicit discretizations; 7. Relaxation: discretization and solvers; 8. Propagation: numerical diffusion and dispersion; 9. Fast linear solvers; 10. Fast eigensolvers; Appendix A: C++ basics; Appendix B: MPI basics; Bibliography.