Teaching a modern numerical analysis course

The traditional introductory undergraduate numerical analysis course typically begins by addressing some mathematical preliminaries and computer arithmetic followed by one or more major topic areas. For each of these areas, specific problems are proposed, algorithms for their solution are derived and implemented, results are obtained, and an associated error analysis is made. The algorithms and associated software are usually sequential in nature and the error analysis is often simplified. Increasingly, students need to be made aware of the additional hardware and software advances that can make the solution of these problems more efficient and their error analysis easier. This paper discusses an approach that incorporates Mathematica to help provide problem insight and an improved error analysis, and a parallel processing simulation program called Multi-Pascal, to help teach effective algorithm implementation.