**Note:** This is the webpage for the Fall 2023 offering of COMP2804, Section A.

**Instructor:** Pat Morin, 5177 HP, morin@scs.carleton.ca

# News and Announcements

**New (Sep 25)**: Assignment 1 solutions are available.

**New (Sep 25)**: Assignment 2 is available.

# Learning Modality

Classes will take place in Richcraft 2200. We have 1h20m classes at 14:35 (2:35pm) on Tuesdays and Thursdays. The mid-term exam will take place in class. The final exam is a formally scheduled exam managed by exam services.

Below, you will find a class by class list of lecture topics along with videos of each topic recorded in Fall 2020. These can be a useful resource if, for some reason, you miss some classes.

# Course Objectives

A second course that is designed to give students a basic understanding of Discrete Mathematics and its role in Computer Science. Computers handle discrete data rather than continuous data. The course presents an overview of some of the major theoretical concepts needed to analyze this type of data.

# Office Hours Schedule

We will have lots of office hours during which TAs or myself can help you with studying course material and offer you guidance for assignments.

**New:** My office hours are Thursdays 9:00-11:00 in my office, 5177HP.

Check back here for a schedule.

# Important Dates

Sunday | Sep 24 | 23:59 | Assignment 1 due |

Sunday | Oct 15 | 23:59 | Assignment 2 due |

Thursday | Oct 19 | 14:30–16:00 | Mid-term evaluation/exam |

Sunday | Nov 12 | 23:55 | Assignment 3 due |

Sunday | Dec 3 | 23:55 | Assignment 4 due |

# Assignments

Assignments will be posted here as they become available. Assignments are to be submitted using Brightspace.

- Here is Assignment 2
- Here is Assignment 1 and here are Assignment 1 solutions

If you are looking for an example of excellent assignment solutions, here are the sample solutions (pdf) (tex) for Assignment 1 Fall 2019

Please note the following rules and requirements about assignments:

- Late assignments will not be accepted.
- Assignments emailed to me will not be accepted.
- I will not respond to emails sent shortly before or after assignment deadlines asking for exceptions to the preceding two rules.
- You can type your solutions, or write them by hand and scan them (for example, using a scan app on your phone or using a real scanner).
- Solutions written-up in LaTeX are preferred, but not strictly required. In case you want to learn LaTeX, here is a tutorial. Learning LaTeX is a useful exercise, since many programs (including Microsoft Word) now use LaTeX for typesetting formulas.
- Each assignment must be submitted as one single PDF file through Brightspace.

# Exams

The midterm exam will take place in class. The final exam will be a formally scheduled exam handled by examination services.

Here are exams for previous offerings of this course (for study purposes).

Here you can use use previous exams as practice exams.

## Academic Integrity

As of 2020, there are new penalties in place for academic integrity violations. These will be issued by the Associate Dean (Undergraduate Affairs) of Science to students who copy, in whole or in part, work they submit for assignments.

- First offence: F in the course
- Second offence: One-year suspension from program
- Third offence: Expulsion from the University

These are standard penalties. More-severe penalties will be applied in cases of egregious offences. Failure to inform yourself of the expectations regarding academic integrity is not a valid excuse for violations of the policy. When in doubt, ASK your instructor or TA.

More information can be found at the ODS website

# Grading Scheme

This course will use the following grading scheme.

Assignments | 25% |

Mid-term exam | 25% |

Final exam | 50% |

If you fail to submit an assignment and provide me with a valid reason then I will shift the weight of the missed assignment onto the remaining assignments. If you fail to attend the midterm exam and provide me with a valid reason then I will shift the weight of the midterm exam onto the final exam.

# Textbooks

We will be using the following free (*libre* and *gratis*) textbooks. The first one is the primary textbook for this course. The second contains supplementary and background material:

- Michiel Smid. Discrete Structures for Computer Science: Counting, Recursion, and Probability, 2019.
- Eric Lehman, F Thomson Leighton, and Albert R Meyer. Mathematics for Computer Science, 2018

# Accommodation Statement

Carleton University is committed to providing access to the educational experience in order to promote academic accessibility for all individuals. Here is information on how to apply for academic accommodation.

# Lecture Topics

You should already be familiar with the following topics from COMP 1805: basic logical reasoning, sets and functions, proof strategies (direct proof, proof by contradiction, proof by induction), Sigma-notation for summations, basic graph theory, Big-Oh, Big-Omega, Big-Theta. You may take a look at Chapter 2 of the textbook and do some of the exercises at the end of that chapter. Review the relevant parts of Lehman et al if you are still struggling.

**Note:** The entire collection of Fall 2020 lectures is available as a YouTube playlist

- Lecture 1: Introduction
- Course overview.
- Chapter 1 in the textbook: Ramsey Theory, Quick-Sort, Sperner's Theorem.

- Lecture 2: Counting (1)
- Product Rule, Section 3.1

- Product Rule, Section 3.1
- Lecture 3: Counting (2)
- Bijection Rule, Complement Rule, Sum Rule, The Principle of Inclusion-Exclusion, Sections 3.2, 3.3, 3.4, 3.5.

- Bijection Rule, Complement Rule, Sum Rule, The Principle of Inclusion-Exclusion, Sections 3.2, 3.3, 3.4, 3.5.
- Lecture 4: Counting (3)
- Binomial coefficients, Newton's Binomial Theorem, combinatorial proofs, Vandermonde's Identity, Pascal's Triangle, Sections 3.6, 3.7.

- Binomial coefficients, Newton's Binomial Theorem, combinatorial proofs, Vandermonde's Identity, Pascal's Triangle, Sections 3.6, 3.7.
- Lecture 5: Counting (4)
- Sections 3.7 and 3.8.
- How many strings can be obtained from SUCCESS? Section 3.9.1
- Counting solutions of linear (in)equalities, Section 3.9.2

- Lecture 6: Pigeonhole Principle
- Simon's Drinking Problem, Section 3.10.1
- Every $(n+1)$-element subset of $\{1,\ldots,2n\}$ contains a divisible pair, Section 3.10.2
- The Erdös-Szekeres Theorem
~~Infinity of primes, Section 3.10.4~~

- Lecture 7: Recursion (1)
- Recursive functions, Section 4.1.
- Fibonacci numbers, Section 4.2.
- Proof that $f_n = (\varphi^n - \psi^n)/\sqrt{5}$
- Counting 00-free bitstrings
- Counting $aa$-free strings over $\{a,b,c\}$
- Counting $ab$-free strings over $\{a,b,c\}$

- Lecture 8: Recursion (2)
- Exercise 4.38
- Euclid's algorithm, Section 4.5. (gcd.py)

- Lecture 9: Recursion (3)
- MergeSort, Section 4.6.

- MergeSort, Section 4.6.
- Lecture 10: Randomization and probability
- Anonymous broadcasting: Dining Cryptographers, Section 5.1.
- Probability Theory: Probability spaces, sample spaces, probability functions, Section 5.2.
- Basic rules of probability, Section 5.3.

- Lecture 11 Watch on your own:
- Midterm review using the Fall 2015 Midterm

- Midterm review using the Fall 2015 Midterm
- Lecture 12: Two surprising examples
- The Birthday Paradox (section 5.5)
- Find the big box (section 5.6)

- Oct 21: Midterm exam on cuLearn
- Lecture 13:
- Find Patti: The O'Reilley Triplets Problem, Section 5.7.
- Conditional probability, Section 5.8.
- Anil's kids, Exercise 5.40, the remarkable set B.

- Lecture 14:
- Independent events, Section 5.11.
- Exercise 5.81: Annie, Boris, and Charlie write an exam.

- Lecture 15:
- Section 5.12, in particular, the probability of a circuit failing, Section 5.12.3.
- Choosing a random line in a file, Section 5.13.

- Lecture 16:
- Infinite probability spaces, Section 5.15, Exercises 5.85 and 5.91.
- The law of total probability

- Lecture 17:
- Random variables, Section 6.1.
- Independent random variables, Section 6.2.
- Expected value, Section 6.4.
- Linearity of expectation, Section 6.5.

- Lecture 18: (—)
- Indicator random variables, Section 6.8, Exercise 6.57.
- Expected running time of Insertion-Sort, Section 6.9
- Largest elements in prefixes of random permutations, Section 6.8.2.
- Estimating the harmonic number, Section 6.8.3.

- Lecture 19: (—)
- Quick-Sort and random binary search trees, Section 6.10 and Section 7.1 of ODS.

- Quick-Sort and random binary search trees, Section 6.10 and Section 7.1 of ODS.
- Lecture 20:
- Geometric distribution and its expected value, Section 6.6, Exercise 6.35.
- Exercise 6.59 (the Coupon Collector's Problem)
- Binomial distribution and its expected value, Section 6.7.

- Lecture 21: Group testing
- Lecture 22: The Probabilistic Method
- Finding large bipartite subgraphs, Section 7.1
- Graphs with no large clique or independent set, Section 7.2
- Jaccard distance satisfies triangle inequality, Section 7.4

- Lecture 23: Planar graphs and crossing lemma (Last class!)
- Planar graphs, Section 7.5.1
- The crossing lemma, Section 7.5.2

- Final-exam review (no live class)
- Solving the Winter 2019 Final Exam

- Solving questions 19-25 on the Winter 2019 Final Exam

- Solving the Winter 2019 Final Exam