March 13, 2026
The free monoid on a set is the type of lists over that set. The universal property says fold is the unique homomorphism from lists to any monoid. This explains why lists, multisets, and polynomials appear everywhere.
March 13, 2026
A homomorphism preserves structure. fold is the universal homomorphism from the free monoid. This is the algebraic reason that fold, evaluation, and parallelism work.
March 13, 2026
A lattice has two operations, meet and join, satisfying absorption laws. Tarski's theorem gives a generic fixed-point algorithm. Lattice structure determines the iteration, just as monoid structure determines power-by-squaring.
March 13, 2026
A semiring has two monoidal operations linked by distributivity. Matrix multiplication over different semirings gives shortest paths, longest paths, widest paths, reachability, and path counting, all from the same code.
March 13, 2026
Online accumulators are monoids. Default construction is the identity, combination via += is the binary operation, and parallel composition gives the product monoid, computing arbitrary statistics in a single pass.
January 18, 2026
A reflection on eleven explorations in generic programming, and how algorithms arise from algebraic structure.
December 17, 2025
Notes
18-part lecture series on efficient programming. Covers the intellectual foundations behind STL.
December 17, 2025
Notes
Collected notes on programming philosophy. Free PDF.
December 17, 2025
December 17, 2025
December 17, 2025
Notes
Blends discrete mathematics with analysis and algorithm design.
December 17, 2025
December 17, 2025
Notes
Rigorous foundations of generic programming. Connects algebra and algorithms. Stepanov’s magnum opus.
December 17, 2025
Notes
History of mathematical ideas underlying generic programming. More accessible than EoP.
December 17, 2025
December 17, 2025
Notes
Broad coverage of numerical algorithms in science and engineering. Classic cross-topic numerical algorithms.
December 17, 2025
December 17, 2025
December 17, 2025
Notes
Classic talk on recognizing algorithmic patterns. ‘No raw loops’ - shows how rotate solves many problems elegantly.
December 17, 2025
December 17, 2025
December 17, 2025
December 17, 2025
December 17, 2025
November 30, 2025
AlgoGraph is an immutable graph library for Python with pipe-based transformers, declarative selectors, and lazy views.
November 30, 2025
A C++17 header-only library that formalizes a pattern behind FFT, logarithmic arithmetic, and Bayesian inference: transform to a domain where your target operation is cheap.
March 31, 2023
Graduate problem set solutions in computational statistics and numerical methods from my math master's at SIUe. Implementing things from scratch teaches you what the libraries are hiding.
September 10, 2019
The Miller-Rabin primality test demonstrates how probabilistic algorithms achieve arbitrary certainty, trading absolute truth for practical efficiency.
March 15, 2019
The Russian peasant algorithm computes products, powers, Fibonacci numbers, and more, once you see the underlying algebraic structure.
March 15, 2015
Bloom filters trade perfect recall for extraordinary space efficiency. How they work and why they matter.