Discrete Mathematics for computer science