Discrete Mathematics Lecture Notes