# CS330Syllabus

```CS330 DISCRETE STRUCTURES - FALL 2018
Lecture Tues/Thurs 10-11:15am - SH-118
Recitation Friday 10-10:50am - SH-118
Instructor: Matthew Bauer [email protected] Office Hours: alternating Mon 8:30-11am, every Wed 8:30-11am, 206D
Stuart, or via email
TA: Haohua Du [email protected] Office Hours: Wednesday 1-3pm, 019A Stuart
Required Textbook (online only): Sign in or create an account at https://learn.zybooks.com/ Enter zyBook code
IITCS330BauerFall2018. Click Subscribe. A subscription is \$58 and will last until Dec 21, 2018.
Optional Textbook: Discrete Mathematics and Its Applications by Kenneth H. Rosen, WCB/McGraw Hill, 7th edition,
ISBN-10: 0073383090, ISBN-13: 978-0073383095
Catalog Description: Introduction to the use of formal mathematical structures to represent problems and computational
processes. Topics covered include Boolean algebra, first-order logic, recursive structures, graphs, and abstract language
models.
Course Goals: Students should be able to:
1. Illustrate by examples the basic terminology of functions, relations, and sets and demonstrate knowledge of their
associated operations.
2. Demonstrate in practical applications the use of basic counting principles of permutations, combinations,
inclusion/exclusion principle and the pigeonhole methodology.
3. Calculate probabilities of events and expectations of random variables for problems arising from games of chance.
4. Establish and solve recurrence relations that arise in counting problems including the problem of determining the
time complexity of recursively defined algorithms.
5. Model logic statements arising in algorithm correctness and real-life situations and manipulate them using the
formal methods of propositional and predicate logic.
6. Outline basic proofs for theorems using the techniques of - direct proofs, proof by counterexample, proof by
contraposition, proof by contradiction, mathematical induction.
7. Relate the ideas of mathematical induction to recursion and recursively defined structures.
8. Illustrate by example basic terminology of graph theory and model problems in computer science using graphs
and trees.
9. Deduce properties that establish particular graphs as Trees, Planar, Eulerian, and Hamiltonion.
10. Illustrate the application of trees and graphs to data structures.
11. Explain the basic concepts modeling computation including formal machines, languages, finite automata, Turing
machines
Assignments:
 Pre-Lecture and Lecture (10%) - Before every lecture there will be required reading and required "participation
activities" to be completed online in the Zybook. During lecture students will be randomly called on to answer
questions on the lecture handouts and will be scored (-1 for absent, 0 for no answer, 1 for attempted answer). Each
student will be called upon approximately 5-7 times during the semester in lecture. I strongly urge you to take
notes on the lecture handouts PRIOR to lecture each week so you are ready if called upon. I also urge students to
work together in groups in lecture. The Pre-Lecture Zybook "participation activities" and Lecture participation
 9 Homeworks (20%)
 4 Exams (17.5% each)
A=90-100 B=80-89 C=70-79 D=60-69 E=0-59 NO LATE WORK ACCEPTED! NO EXTRA CREDIT!
Ethics: Any behavior on any homework or exam that could be considered copying or cheating will result in an immediate
zero on the assignment for all parties involved and will be reported to [email protected] See the IIT
Reasonable accommodations will be made for students with documented disabilities. In order to receive accommodations,
students must obtain a letter of accommodation from the Center for Disability Resources (CDR) located at 3424 S. State
Street - 1C3-2, 312 567.5744 or [email protected]
Calendar
Week of Tues Thurs 1‐8/20 lecture 1 ‐ 1.1,1.2,1.3 lecture 2 ‐ 1.4,1.5,1.6,1.7 recitation 1 2‐8/27 lecture 3 ‐ 1.8,1.9,1.10 lecture 4 ‐ 1.11,1.12,1.13 recitation 2 3‐9/3 lecture 5 ‐ 2.1,2.2 lecture 6 ‐ 2.3,2.4,2.5 recitation 3 HW1 (chapter 1) 4‐9/10 lecture 7 ‐ 3.1,3.2,3.3 lecture 8 ‐ 4.1,4.2 5‐9/17 lecture 9 ‐ 4.3,4.4,4.5 lecture 10 ‐ 4.6,4.7 recitation 4 Exam1 (10‐11:15am ‐
chapter 1,2,3) 6‐9/24 lecture 11 ‐ 4.8,4.9 lecture 12 ‐ 4.10,4.11 recitation 5 7‐10/1 lecture 13 ‐ 4.12 lecture 14 ‐ 5.1,5.2,5.3 8‐10/8 lecture 15 ‐ 5.4,5.5 lecture 16 ‐ 5.6,5.7,5.8 recitation 6 Exam2 (10‐11:15am ‐
chapter 4) 9‐10/15 Lecture 17 ‐ 6.1,6.2 Lecture 18 ‐ 6.3,6.4,6.5 recitation 7 HW5 (chapter 5) 10‐10/22 Lecture 19 ‐ 7.1 Lecture 20 ‐ 7.2 recitation 8 HW6 (chapter 6) 11‐10/29 Lecture 21 ‐ 7.3 Lecture 22 ‐ 8.1,8.2 HW7 (chapter 7) 12‐11/5 Lecture 24 ‐ 8.5,8.6 recitation 9 Exam3 (10‐11:15am ‐
chapter 5,6,7) 13‐11/12 Lecture 25 ‐ 8.7,8.8,8.9 Lecture 26 ‐ 9.1,9.2 recitation 10 HW8 (chapter 8) 14‐11/19 Lecture 27 ‐ 9.3,9.4 Thanksgiving (no class) Thanksgiving (no class) 15‐11/26 Lecture 28 ‐ 9.5,9.6 Exam4 (120 minutes ‐ TBD chapter 8,9) Exam Review recitation 11 HW9 (chapter 9) Lecture 23 ‐ 8.3,8.4 Fri HW ‐ due at end of recitation HW2 (chapter 2, 3) HW3 (chapter 4.1‐4.7) HW4 (chapter 4.8‐4.12) Topics
Rosen 1.1-1.6
1.1 Propositions and logical operations
1.2 Evaluating compound propositions
1.3 Conditional statements
1.4 Logical equivalence
1.5 Laws of propositional logic
1.6 Predicates and quantifiers
1.7 Quantified statements
1.8 De Morgan's law for quantified
statements
1.9 Nested quantifiers
1.10 More nested quantified statements
1.11 Logical reasoning
1.12 Rules of inference with
propositions
1.13 Rules of inference with quantifiers
Rosen 1.7-1.8
2.1 Introduction to proofs
2.2 Direct proofs
2.3 Proof by contrapositive
2.5 Proof by cases
Rosen 3
3.1 An introduction to algorithms
3.2 Asymptotic growth of functions
3.3 Analysis of algorithms
Rosen 5, 8.1-8.4
4.1 Recurrence relations
4.2 Mathematical induction
4.3 More inductive proofs
4.4 Loop invariants
4.5 Recursive definitions
4.6 Recursive algorithms
4.7 Induction and recursive algorithms
4.8 Analyzing the time complexity of
recursive algorithms
4.9 Divide-and-conquer algorithms:
Introduction and mergesort
4.10 Divide-and-conquer algorithms:
Binary search
4.11 Divide-and-conquer recurrence
relations
4.12 Solving linear homogeneous
recurrence relations
Rosen 6.1-6.3
5.1 Sum and product rules
5.2 Inclusion-exclusion principle
5.3 The pigeonhole principle
5.4 The generalized product rule
5.5 Counting permutations
5.6 Counting subsets
5.7 Subset and permutation examples
5.8 Counting by complement
Rosen 7.1-7.4
6.1 Probability of an event
6.2 Unions and complements of events
6.3 Random variables
6.4 Expectation of a random variable
6.5 Linearity of expectations
Rosen 13
7.1 Finite state machines
7.2 Turing machines
Rosen 13.1 Languages and grammars
Rosen 10
8.1 Introduction to graphs
8.2 Graph representations
8.3 Graph isomorphism
8.4 Walks, trails, circuits, paths, and cycles
8.5 Graph connectivity
8.6 Euler circuits and trails
8.7 Hamiltonian cycles and paths
8.8 Planar graphs
8.9 Graph coloring
Rosen 11
9.1 Introduction to trees
9.2 Tree application examples
9.3 Properties of trees
9.4 Tree traversals
9.5 Spanning trees and graph traversals
9.6 Minimum spanning trees
```