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.