Discrete Mathematics for Computer Scientists