Teaching · Course design

Fourteen weeks with CMNA

This is one way to turn the book into a semester. It is not a mandate. The useful part is the sequence: understand the problem, expose the algorithm, run it, and then change something important enough that the result might surprise us.

A traditional numerical analysis course can spend much more time on proofs than CMNA does, and there is nothing wrong with that. In that course, this map works best as the computational spine running alongside the analytical material. In a computational methods or scientific computing course, the balance can move farther toward implementation and experiment.

Either way, I would resist the temptation to treat the laboratories as demonstrations we perform after the lecture. They are more useful when students have to make a prediction first. The computer should settle an argument, not start one.

Week 1

What numerical analysis is for

Reading: Chapter 1: Numerical Analysis, efficiency, data types, elementary problems

Start with a problem that has an exact mathematical answer and ask why we might still want an approximation. Then compare two implementations that compute the same thing differently.

Assignment seed: Compare naive and improved implementations for summation or polynomial evaluation. Record when the answers begin to separate.

Week 2

Error is part of the computation

Reading: Chapter 2: Accuracy, precision, floating point, roundoff, loss of significance, stability

Make floating-point arithmetic visibly disagree with real arithmetic. Do not rescue the example too quickly.

Assignment seed: Find a calculation that becomes worse when a numerical parameter is made smaller. Explain the mechanism.

Week 3

Linear systems and elimination

Reading: Chapter 3.1–3.2: Vectors, matrices, row operations, Gaussian elimination, tridiagonal systems

Work one elimination far enough by hand that the row operations are concrete, then read the R implementation as the same sequence.

Assignment seed: Solve one system by row reduction, then verify it with R. Explain any difference between the algorithm and the production function.

Week 4

Decomposition and iteration

Reading: Chapter 3.3–3.5: LU, Cholesky, Jacobi, Gauss-Seidel, least squares

Put Jacobi and Gauss-Seidel on the same system and ask students to predict which residual falls faster before running either method.

Assignment seed: Modify a well-behaved system until one iterative method converges poorly or fails to converge. Diagnose the matrix, not the symptoms.

Week 5

Interpolation is a choice about what happens between the data

Reading: Chapter 4: Polynomial, piecewise, spline, Bézier, multidimensional interpolation

Use the same data for a global polynomial, piecewise linear interpolation, and a spline. Move one point and watch which parts of each model move with it.

Assignment seed: Construct a data set for which the global polynomial behaves badly between otherwise ordinary points.

Week 6

Differentiation without a symbolic derivative

Reading: Chapter 5.1: Finite differences and second derivatives

Begin with a secant line and shrink h. Ask when the secant should become the tangent, then let floating point complicate the answer.

Assignment seed: For a function with a known derivative, sweep h across several orders of magnitude and explain the error curve.

Week 7

Newton-Cotes integration

Reading: Chapter 5.2: Multipanel rules and Newton-Cotes error

Draw the geometry of midpoint, trapezoid, and Simpson rules before comparing their numerical results.

Assignment seed: Choose an integrand where increasing the panel count matters a great deal, and another where it hardly matters at all.

Week 8

Integration without uniform panels

Reading: Chapter 5.3–5.4: Gaussian quadrature, adaptive integration, Romberg, Monte Carlo

Put Gaussian quadrature and Monte Carlo next to each other. One carefully chooses points; the other chooses them randomly. Both are trying to spend function evaluations intelligently.

Assignment seed: Use the same smooth integrand with Simpson, Gauss-Legendre, and Monte Carlo. Compare error against the number of function evaluations.

Week 9

Three ways to find a root

Reading: Chapter 6.1: Bisection, Newton, secant

Ask what information each method requires before discussing speed. A method that cannot legally start does not get credit for theoretical convergence.

Assignment seed: Find one function where Newton is dramatically faster than bisection and another where the starting value makes Newton embarrassing.

Week 10

Optimization in one dimension

Reading: Chapter 6.2: Golden-section search and gradient descent

Compare interval reduction with slope following. They solve related problems but ask the function for different information.

Assignment seed: Use a multimodal function to show why an interval or starting point can decide which extremum we find.

Week 11

Optimization in more than one dimension

Reading: Chapter 6.3–6.4: Multidimensional gradient descent, hill climbing, simulated annealing, applications

Put gradient descent and simulated annealing on the same landscape. One follows local slope; the other is sometimes permitted to make a worse move.

Assignment seed: Change only the starting point or random seed and explain why the final answers differ.

Week 12

Initial value problems

Reading: Chapter 7.1: Euler, Runge-Kutta, linear multistep methods

Advance one Euler step by hand, then unpack the four slopes in RK4. The difference between the methods should be visible before it is numerical.

Assignment seed: Hold the differential equation fixed and vary h. Compare how the three methods respond.

Week 13

Systems and boundary value problems

Reading: Chapter 7.2: Systems of ODEs and boundary value problems

Use a coupled system to show that the numerical method has not fundamentally changed; only the state being advanced has.

Assignment seed: Implement or adapt a small system example and inspect how an error in one component propagates through the rest of the state.

Week 14

Partial differential equations and numerical stability

Reading: Chapter 7.3–7.4: Heat equation, wave equation, applications

Run a stable discretization first. Then violate the stability condition on purpose. Students should see the numerical solution fail before we ask them to describe why.

Assignment seed: Construct one stable and one unstable discretization for the same initial condition. Explain the difference in terms of the numerical scheme.

Compressing the course

Eight weeks is possible. Something has to give.

For an accelerated course, I would combine Weeks 1 and 2, combine the two linear algebra weeks, combine differentiation with Newton-Cotes integration, combine root finding with one-dimensional optimization, and treat the final two differential-equation weeks as a single unit. Interpolation deserves its own week because the distinction between global and local models is too useful to rush.

The thing I would not compress is the prediction step. If time is short, remove an algorithm before removing the opportunity to ask what an algorithm should do. Coverage is easy to measure and remarkably easy to overvalue.