A broad introduction to numerical algorithms used in scientific computing. The course will begin with a review of the basic principles of numerical analysis, including sources of error, stability and convergence of algorithms. The theory and implementation of techniques for linear and nonlinear systems of equations, and ordinary and partial differential equations will be covered in detail. Examples of the application of these methods to problems in physics, astrophysics and other disciplines will be given. Issues related to the implementation of efficient algorithms on modern high-performance computing systems will be discussed.