This course introduces discrete mathematical structures such as propositions, sets, graphs and trees. It uses a formal approach to discuss the language used in mathematical reasoning, and the basic concepts, properties and relationships among the discrete objects. Students will be introduced to the idea of mathematical thinking with different methods of proofs, and they will learn to recognize and express the mathematical ideas graphically, numerically, symbolically, and in writing. Real world applications of these discrete objects such as logic gates in computers, traffic routing and scheduling will also be covered in this course.