Learn Math for Programming - Expanded Projects

Master practical math by building systems that depend on it: puzzles, graphics, cryptography, physics, probability, and graphs.

This directory contains expanded guides for each project in the Learn Math for Programming curriculum. Each project turns a math concept into a concrete, testable artifact.


Learning Philosophy

Math for programming is about tools you can wield: discrete reasoning, linear algebra, probability, and algorithms. These projects make each tool unavoidable.

The Progression

FOUNDATIONS
  P01 Sudoku Solver             -> constraint reasoning and search

STRUCTURE AND SPACE
  P02 3D Rendering Engine       -> vectors, matrices, projection
  P04 Simple Physics Engine     -> kinematics and integration

SECURITY AND PROBABILITY
  P03 RSA Cryptosystem          -> modular arithmetic and number theory
  P05 Bayesian Spam Filter      -> probability and statistics

COMBINATORICS
  P06 Graph Traversal Visualizer -> graphs and algorithms

Project Index

# Project Difficulty Time Core Concepts
P01 Sudoku Solver Beginner Weekend Constraints, search
P02 3D Rendering Engine Intermediate 2-3 weeks Linear algebra
P03 RSA Cryptosystem Intermediate 1-2 weeks Number theory
P04 Simple Physics Engine Intermediate 2-3 weeks Calculus, vectors
P05 Bayesian Spam Filter Intermediate Weekend Probability
P06 Graph Traversal Visualizer Intermediate Weekend Graph theory

Core Concepts Map

Discrete Reasoning

  • What it is: Systematic search and constraints
  • Learned in: P01, P06
  • Key insight: Logic can be mechanized

Linear Algebra for Systems

  • What it is: Vectors and matrices that move points in space
  • Learned in: P02, P04
  • Key insight: Transformations are just matrix multiplications

Number Theory

  • What it is: Modular arithmetic and prime properties
  • Learned in: P03
  • Key insight: Security relies on math properties, not secrecy

Probability and Statistics

  • What it is: Quantifying uncertainty and evidence
  • Learned in: P05
  • Key insight: Probabilities become decisions