Discrete Mathematics For Computer Science