CS330 DISCRETE STRUCTURES - FALL 2018 Lecture Tues/Thurs 10-11:15am - SH-118 Recitation Friday 10-10:50am - SH-118 Instructor: Matthew Bauer bauerm@iit.edu Office Hours: alternating Mon 8:30-11am, every Wed 8:30-11am, 206D Stuart, or via email TA: Haohua Du hdu4@hawk.iit.edu 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 will together count for 10% of your final grade. 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 academichonesty@iit.edu See the IIT Code of Academic Honesty, https://web.iit.edu/student-affairs/handbook/fine-print/code-academic-honesty 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 disabilities@iit.edu 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.4 Proof by contradiction 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