# (CS 206) Discrete Mathematics II

## Continuation of discrete mathematics concepts with a focus on advanced proof techniques, predicate logic, algorithm complexity, graphs, trees, and fundamental data structures (arrays, linked lists, stacks, queues, and deques).

Credit hours | 3.0 lecture |
---|---|

Prerequisites | CS 202 and CS 205 both w/ B- or better |

Offered | Winter, spring |

Programs | Computer Science (BS), Computer Science Minor |

## Course Learning Outcomes

- Understand and apply predicate logic notation and complete proofs using predicate logic.
- Identify recursive algorithms that have closed-form solutions and derive those solutions.
- Analyze algorithmic complexity using Big O notation.
- Apply the binomial theorem in relevant mathematical contexts.
- Understand the relationship between functions in mathematics and in programming.
- Identify and classify different types of functions and relations.
- Utilize standard mathematical functions as implemented in common programming languages.
- Represent functions using ordered-pair, array, and cycle notation.
- Compute the reachability matrix for directed graphs and implement graphs in programming languages.
- Explore the connections between set theory and formal logic.
- Differentiate between arrays and linked lists, and implement fundamental data structures such as stacks and queues.
- Understand and apply bitwise operators available in common programming languages.
- Solve problems related to trees and graph theory in computer science contexts.