discrete math topics for computer science