discrete mathematics in computer science