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. COS 280 is required for Computer Science majors (see all requirements for Computer Science).

Within the realm of computer science, several fundamental topics serve as the building blocks of the discipline. Sequences, for instance, provide an ordered structure for elements, offering a basis for mathematical analysis and algorithm design. Mathematical induction, a powerful proof technique, establishes the validity of statements across infinitely many cases, making it invaluable for understanding recursive algorithms and mathematical structures. Speaking of recursion, it stands as a fundamental problem-solving approach where complex problems are broken down into smaller, similar subproblems. This technique lies at the heart of elegant and efficient recursive algorithm design, empowering you to tackle complex problems with confidence. It is central to functional programming paradigms.

On the other hand, set theory plays a vital role in understanding collections of objects and their relationships, forming the bedrock for various aspects of computer science. It finds applications in data structure design, database management, and the fundamental principles of computation. Graphs and trees, with their nodes and edges, provide versatile models for organizing and representing data, underpinning algorithms for pathfinding, network analysis, and hierarchical data storage. Analyzing algorithms involves the systematic study of the efficiency and performance characteristics, enabling us to make informed choices when designing and implementing software systems.

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 that equips computer scientists with the essential tools and concepts to tackle complex problems and build innovative solutions in computing.

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