why discrete mathematics is important in computer science