Side Projects

These optional projects let you put your NumPy skills into practice and earn extra credit. They work exactly like the side projects of Module 2: the submission format, the extra credit, and the guidance on using AI tools are described on the Module 2 Side Projects page. Only three side projects in total count towards the bonus, so you can mix projects from both modules.

Numerical Linear Algebra

Implement four classic algorithms using only NumPy: centering a matrix, the Gram-Schmidt process, the conjugate gradient method, and the power method. Each is a short recipe, but together they show how much of linear algebra reduces to dot products and matrix-vector products.

Main concepts: broadcasting, axis, dot products, norms, and iterative algorithms.

Numerical Linear Algebra

MNIST Digit Recognition

Build your first “AI model”: a classifier that recognizes handwritten digits by comparing each drawing with the average look of every digit. You will measure its accuracy on real data and discover where such a simple idea breaks down.

Main concepts: image arrays, boolean masks, array arithmetic, distances, and accuracy.

MNIST Digit Recognition

Snell’s Law

Estimate the refractive index of an unknown material from measured angles of incidence and refraction. You will use vectorized trigonometry and descriptive statistics to turn noisy measurements into a single estimate.

Main concepts: two-dimensional slicing, vectorized trigonometric functions, and descriptive statistics.

Snell’s Law