The Algorithm Design Manual