Course content
This is an introduction to scientific computing at the beginning
graduate level.
You have to be good at a lot of things to be good at scientific
computing.
There is math involved in designing approximations and understanding
how to pose computational problems.
There are clever numerical algorithms.
There is programming and software engineering and management.
This course covers all these areas to some degree so that
a student can continue to more a specialized area with an
understanding of how it fits into the bigger picture.
Specific content will include:
Math: Conditioning of problems and stability of algorithms;
Taylor expansions, differences, integration and interpolation;
conditioning of some linear algebra problems;
basic Monte Carlo.
Mechanics: Floating point arithmetic; outline of processor archecture
relating to performance (speed of execution).
Algorithms: FFT; Gaussian elimination; Newton's method for optimization
Software: Performance pitfalls; pitfalls related to inexact arithmetic;
using packages; using development tools; modular testing
and verification of numerical codes; visualization;
using developer tools.