Discrete Mathematics with Computer Science Applications