Where Discrete Math Goes Next: combinatorial optimization, coding theory, and beyond. A map, not a method — reread this to recognize the next problem as something you already know how to think about.
The four directions at a glance
Direction
One-line idea
Central object / result
Already met it as
Combinatorial optimization & LP (40.1)
Optimize a linear objective over a polytope; optima sit at corners
LP duality: max = min; weak duality = optimality certificate
MST, max-flow, matching (Ch. 32, 34)
Information & coding theory (40.2)
Information is measurable; compression & error-correction have hard limits
Confusing existence with construction. The probabilistic method proves a good object exists; it names none. Knowing something is there is strictly weaker than producing it.
Forgetting $X$ must be a nonnegative integer in the $E[X]<1 \Rightarrow X=0$ step. Fractional $X$ breaks it.
Assuming an LP optimum is interior. A linear objective always improves toward the boundary; optima sit at corners.
Treating capacity/entropy as soft targets. They are hard limits — no code beats entropy compression or transmits above capacity.
Sprinting through all four directions. Breadth is a trap; one area read deeply over a year beats a shallow tour.
Toolkit increment (Project Checkpoint)
Item
Detail
File
dmtoolkit/__init__.py (the package front door)
Adds
summary() — prints the inventory of all modules + a self-test entry point
New math
None — this is the capstone of the Toolkit thread
Inventory
37 functions across 10 modules (logic→coding), all assembled in Appendix I
Builds toward
Recognizing the completed library; Ch. 40's topics name the next modules you could add
Algorithms — CLRS (the highest-leverage sequel; uses Ch. 14, 18–19, Part V, 37).
Pick one — Sipser (theory) · Katz–Lindell (crypto) · an optimization text (OR) · a coding-theory text (info) · a category-theory-for-programmers text (PL) · Concrete Mathematics (technique).
Keep the Toolkit alive — extend it on real problems.
The four themes, closed
Discrete math is the language of CS — every tool maps to a live system.