Discrete mathematics curriculum design