Discrete mathematics for computing