Introduction to Computational Mathematics
Spring 2026
About the course
This course offers a broad introduction to numerical computation in the mathematical sciences. Topics include floating point numbers, linear systems, LU factorization, vector and matrix norms, conditioning of linear systems, QR factorizations, the root finding problem, fixed point iterations, Newton’s method in one variable and for nonlinear systems, interpolation, cubic splines, finite differences, numerical integration, initial-value problems for ODEs, Euler’s method, systems of differential equations and Runge-Kutta methods; time permitting, shooting methods for boundary-value problems and topics in numerical optimization.
This is a rigorous mathematics course. The focus is on the mathematical analysis of algorithms: their theoretical foundations, convergence properties, stability and error bounds. Programming assignments, submitted as Jupyter notebooks, are an essential component, but this is not a programming course.
Prerequisites: linear algebra and multivariable calculus at an advanced undergraduate level; some programming experience in Python.
Course outline
The course has six units, each with homework assignments and weekly discussion sections.
- Introduction: floating point arithmetic, conditioning and stability
- Linear algebra: linear systems, LU factorization, norms and conditioning
- Ordinary least squares: normal equations, QR factorization
- Root finding: fixed point iteration, Newton’s method, nonlinear systems
- Piecewise approximations: interpolation, cubic splines, finite differences, numerical integration
- Ordinary differential equations: initial-value problems, Euler’s method, Runge-Kutta methods
The semester ends with a group final project in place of a final exam.
Final project
In place of a final exam, students complete a final project in groups of two or three. Every project balances three elements: learning a method or application beyond the syllabus, analysis that tests its boundaries, and research, a creative modification of the model or algorithm that is then evaluated.
- Final project guidelines (PDF slides): philosophy, required elements, example projects, the proposal, presentations, AI policy and peer evaluations.
- Final project deliverables (PDF slides): what is submitted and how each part is assessed.
Timeline
| Milestone | When |
|---|---|
| In-class group work sessions | April 21 and 23 |
| Project proposal | End of class on April 23 |
| Presentations | May 5 or May 8 |
| Final submission | May 8 |
During the two in-class work sessions I give an overview of the deliverables, answer questions about the requirements, and hand out templates and rubrics for the proposal. Each group develops its proposal, splits up roles and responsibilities, and fills in a check-in sheet summarizing its discussion. The proposal is a concrete project plan with each member’s responsibilities and tasks. All materials are due May 8 regardless of the presentation date, so every group has at least two weeks to complete its project.
Presentation
Slides are assessed on four criteria:
- Narrative clarity: does the presentation tell a clear, logical story that assumes only the knowledge covered in the course?
- The “delta”: is the group’s specific modification or research contribution clearly identified and explained?
- Visual communication: are the slides clean and professional, using effective visualizations rather than walls of text?
- Technical command: does the group show a solid understanding of its methods, stay within the time limit and answer questions well?
The final presentation is a chance to share findings with the community built over the semester. The criteria keep everyone accountable, but the goal is a low-stress setting: if you have done the work and can explain it clearly, you will do well.
Project archive
The final submission is a zip file containing a Jupyter notebook and everything it needs to run. The notebook is the heart of the project: it is where the technical rigor and the creative “delta” live. It must run from top to bottom in a clean environment (with numpy, scipy, matplotlib and seaborn installed, plus any packages listed in a requirements.txt or environment.yml), use relative paths, and include all of its data files. It is assessed on:
- Reproducibility: the notebook executes from top to bottom in a clean environment without manual troubleshooting.
- Literate programming: Markdown cells give a clear narrative explaining the mathematical intuition behind the code.
- Algorithmic correctness: the methods and modifications are technically sound and mathematically accurate.
- The “delta”: the creative modification is clearly coded, tested, and compared against a baseline or standard method.
- Data visualization: plots and tables demonstrate convergence, error analysis or comparative results.
- Code quality: intuitive variable names, and complex logic broken into readable, well-commented functions.
- Rigorous analysis: the method’s boundaries are tested, for example its stability, parameter sensitivity or convergence rate.
Project ideas
These are only starting points: the best projects usually come from your own research interests or curiosity, so modify them, combine them or propose something entirely new. Section numbers refer to Driscoll and Braun, Fundamentals of Numerical Computation.
Show 33 more
Student projects
Spring 2026
- Response transformations: when to linearize and when to optimize nonlinearly
- Evaluating numerical ODE solvers in a one-compartment pharmacokinetic model
- Modeling a tennis serve with air resistance using ODEs
- Least-squares sinusoidal compression for audio denoising
- A comparative study of root-finding methods for implied volatility under the Black-Scholes model
- Lucy-Richardson image deblurring: convergence of the accelerated method and a modified variant
- Simulating Formula 1 laps
- Image reconstruction using interpolation methods
- Camera calibration via reprojection error minimization
- Adams-Bashforth methods for drag ODEs in parachuting
- Chaos and computation: estimating Lyapunov exponents in the Lorenz system
- An exponentially-fitted Simpson’s rule for present value estimation
- RSSI-based localization using the multivariate Newton’s method
- Support vector machines and the Pegasos algorithm
- Numerical integration in several variables and on spheres
- Game map generation using Perlin noise
- Anchored local volatility for index options: a Crank-Nicolson PDE approach to out-of-sample forecasting
- Balancing chemical equations