An Introduction to Computational Combinatorics by L.B. Wilson & Ewan Stafford Page