The goal of this course is to introduce students
to ideas and techniques from discrete mathematics that are widely used in
science and engineering. This course teaches the students techniques in how to
think logically and mathematically and apply these techniques in solving
problems. To achieve this goal, students will learn logic and proof, sets,
functions, as well as algorithms and mathematical reasoning. Key topics
involving relations, graphs, trees, and formal languages and computability are
covered in this course.