University of Minnesota
Computer Science & Engineering
http://www.cs.umn.edu/

CSCI 2031: Introduction to Numerical Computing

Overall Description

This course offers a practical introduction to numerical computing. The course is designed to be of interest to students in CS, Mathematics and other science and engineering disciplines. It is required of CSci majors in CSE (those pursuing a B.S. degree). The goal is to teach the principles of numerical analysis, especially the concepts and tools involving in modeling real continuous mathematical or engineering problems on the digital computer, and the effects of using floating point arithmetic.

Catalog Description

CSCI 2031. Introduction to Numerical Computing. Introduction to numerical computing for CSci, mathematics, and science/engineering students. Uses Mathematica or Matlab to cover numerical error, root finding, systems of equations, interpolation, numerical differentiation and integration, least squares, and differential equations.

Course Outline

Week 1: Introduction
Algorithms
Errors
Error propagation
Week 2: Floating point computation
Floating-point numbers
Basic operations (floating-point arithmetic)
Numerical instabilities
Weeks 3-4: Rootfinding (single non-linear equation)
Roots of nonlinear functions
Functional iteration
Newton's method
Bisection method
Secant method
Weeks 5-7: Linear systems
Matrices
Gaussian elimination (pivoting & scaling)
Iterative improvement
Norms & sensitivity
Weeks 8-9: Interpolation
Taylor series
Lagrange interpolation (error, Runge's phenomenon, Chebyshev nodes)
Piecewise polynomial interpolation (splines (+))
Weeks 10-11: Numerical differentiation and integration
Numerical differentiation
Simple quadrature rules
Error estimates
Weeks 12-13: Ordinary differential equations (initial value problems)
A single ODE
Euler's method
Runge-Kutta methods
Least-Squares approximation
Week 14: Normal equations
Trigonometric interpolation

Why This Class is Important and its Role in the Curriculum

This is the only class many students will take that discusses floating point arithmetic and the issues involved in modeling continuous mathematics on a discrete digital computer. These issues arise in the computer modeling of the real world environment, whether for a video game or an engineering problem.

Students will typically take this course in the second semester of their second year or the semester immediately following that, depending on when they have taken the math prerequisites. Students transferring in from engineering or math programs may have already taken an equivalent class. Students in some science or engineering majors here at the U may also take this class.

Prerequisites and Rationale

Calculus I and II, plus a course in basic linear algebra and differential equations. Since modeling of mathematical problems is a core part of this course, students should have already been exposed to the basic concepts of calculus, systems of linear equations, and elementary ordinary differential equations. Student will normally be expected to have some programming experience, but no specific prerequisite is listed because it may be taken by non-CSci students. Part of the class will be to teach students the use of higher level interactive computing environments such as Mathematica, Maple, and/or Matlab.

Classes Having 2031 as a Prerequisite and Rationale

This class is a prerequisite for our advanced numerical analysis (5302, 5304), pattern recognition (5521), and robotics (5551) classes. As such, it covers many fundamental tools and concepts used in the those classes.

Class Format

4 credits, 3 large class + 1 recitation hour per week. Recitation can be used for problem solving and review, or more in-depth discussion of topics and examples given in the large class. Since one of the emphases of the class is on developing students' skills with higher level interactive computing environments, the practice given in recitation will be highly valuable for many students.

Probable Text, If Any

“Elementary Numerical Computing with Mathematica” by R. Skeel and J. Keiper, or “Numerical Methods” by Cheney and Kincaid.

Outcomes

Upon successful completion of the course students should have the following skills and proficiencies:

  1. For each of the basic numerical technique (e.g. root-finding, etc.), the student should be able to:
    1. fit the technique to a given mathematical problem.
    2. know how to use and program the basic solution methods.
    3. recognize when the solution method fails or gives inaccurate answers, and when an alternative method would avoid the failure.
    4. be aware of the limitations and assumptions behind each method.
  2. Students should also have the following additional analysis, problem solving, and presentation skills. Given a problem, students should be able to:
    1. identify which methods and/or techniques could be useful in analyzing or solving the problem, and why.
    2. modify or specialize methods or techniques to make them applicable to problems that are not amenable to straightforward use of the structure or technique, or at least know what kind of methods must be sought to obtain a solution.
    3. know how to set up the solution method using a higher level interactive computing environment, if appropriate.
    4. learn how to display solutions in a concise and clear manner using, e.g., graphical displays or tables.
    5. tell whether a purported solution or analysis is numerically accurate.
Contact CS&E | CS&E Employment | Site Map
Contact: 4-192 Keller Hall, 200 Union St, Minneapolis, MN 55455     Phone: (612) 625-4002