# (CIS 206) Discrete Mathematics II

## Proof techniques (continued), graphs and trees, discrete probability.

## Course Outcomes

1. Recognize and use the notation of predicate logic.

2. Complete basic proofs using predicate logic.

3. Recognize which recursive algorithms lend themselves to closed-form solutions.

4. Derive a closed-form solution for a recursive algorithm.

5. Classify the complexity of an algorithm using big-oh notation.

6. Apply the binomial theorem.

7. Explain the relationship between mathematical functions and methods/subroutines in programming languages.

8. Identify different types of functions.

9. Explain the differences between a non-functional relation and a function.

10. Express a function in ordered-pair, array, and cycle notation.

11. Recognize and use standard mathematical functions as implemented in common programming languages.

12. Compute the reachability matrix for a directed graph.

13. Know how to implement a graph in a programming language.

14. Identify the common mathematical roots of both set theory and formal logic.

15. Articulate the differences between arrays and linked lists.

16. Implement fundamental data structures such as stacks and queues.

17. Recognize and use bitwise operators available in common programming languages.