Discrete math is the mathematics of computing. This course is not just a requirement for the Computer Science major but a crucial stepping stone for academic success. It lays the foundation to excel in upper-level computer science courses, most of which require a solid understanding of concepts from discrete mathematics. Designed to sharpen logical and mathematical thinking skills, this course equips you with fundamental techniques for solving problems in computer science. Topics include sequences, mathematical induction, recursion, set theory, graphs, trees, analysis of algorithms, and regular expressions.

Set theory plays a vital role in understanding collections of objects and their relationships, with applications in data structure design, database management, and fundamental principles of computation. Graphs and trees serve as versatile models for organizing and representing data, underpinning algorithms for pathfinding, network analysis, and hierarchical data storage. The analysis of algorithms involves the systematic study of efficiency and performance characteristics, enabling informed choices in software system design and implementation. Regular expressions, a concise and expressive notation for pattern matching, are pivotal in text processing, parsing, and search operations. These topics collectively form a rich tapestry of knowledge, equipping computer scientists with essential tools and concepts to tackle complex problems and build innovative computing solutions. By mastering these fundamental concepts, students gain the necessary skills to excel in advanced computer science courses and develop a strong foundation for their future careers.

COS 280 is required for Computer Science majors. For a comprehensive list of requirements, please refer to the complete Computer Science curriculum guide.

Learning Outcomes

By the end of this course, students will be able to:

  • Read, comprehend, and construct mathematical proof arguments.
  • Solve sequential, recursive, set, and number theoretic problems.
  • Discuss graphs, trees, and finite-state machines related to real-world computational problems.
  • Illustrate mathematical techniques for specifying, verifying, and analyzing computer algorithms.
  • Identify various natural and relevant uses of discrete math in computer science (and the real world).

Textbook

Epp, S. S. (2020). Discrete Mathematics with Applications (5th ed.). Cengage. ISBN: 978-1-337-69419-3.

Syllabus

Fall 2023

Offered

Fall Semester