Course
Capstone
6,000 XP4–6 weeks

Capstone: A Numerical Methods Library

Ship a tested, documented numerical-methods package in your own repository.

Over 4–6 weeks, build a cohesive numerical-computing library in your OWN git repo — root-finding, interpolation, quadrature, ODE solvers, and linear algebra — with a test suite, benchmarks, and docs. Graded against a rubric, an acceptance-test harness, and an AI code review.

Root-findingInterpolationQuadratureODE integrationLinear algebraTesting & packaging
The Mission

Package everything from the course into one importable library `mynum`. Each module must have a clean API, unit tests, convergence/benchmark studies, and documentation. Deliver a short report comparing your implementations to NumPy/SciPy in accuracy and speed.

Milestone schedule
Week 1Package skeleton + root-finding & linear algebra
  • ›Set up the repo, package layout, README, requirements, pytest.
  • ›Implement root-finding + a direct linear solver with tests.
Deliverable: Installable package with a passing test suite for two modules.
Week 2Interpolation & quadrature
  • ›Add interpolation (Lagrange/Newton/spline) and quadrature (trapezoid/Simpson/Gauss).
  • ›Write convergence-order tests for each.
Deliverable: Two more modules with convergence tests.
Week 3ODE solvers + benchmarks
  • ›Add Euler/RK4/adaptive solvers.
  • ›Benchmark accuracy & speed vs SciPy across all modules.
Deliverable: ODE module + a benchmark report with figures.
Week 4+Docs, polish & report
  • ›Write API docs and usage examples.
  • ›Final report comparing your library to NumPy/SciPy.
Deliverable: Documented, tagged release + final report.
Grading rubric
Correctness35%
Methods are numerically sound; passes the acceptance harness.
Completeness25%
All five method families implemented and tested.
Code quality20%
Clean package structure, tests, docs, reproducible.
Analysis & report15%
Convergence and benchmark studies are correct and well presented.
Going beyond5%
Adaptive methods, sparse solvers, or performance work.
Submission
  • A git repository URL with a tagged release and installable package.
  • The pytest acceptance-test output.
  • A benchmark/report PDF or Markdown (≤ 15 pages).
  • Optional: a short demo notebook.