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.

Skill Level: Beginner