Uploaded by Cameron Nash

CSE 191 syllabus

CSE 191: Discrete Structures
Spring 2020 Syllabus
Matthew G. Knepley
211A Capen Hall
This course provides a mathematical foundation for subsequent study in
Computer Science, as well as developing the skills necessary to solve practical
problems. CSE 191 is intended to give students a basic facility with logic and
proof theory, counting, and graph theory, which serve as the basis for much of
Computer Science.
Course Information
Class times
Matthew G. Knepley
11am to 12:20pm on Tuesday & Thursday
Knox Hall 110
A course overview and grading policy are available in accordance with Buffalo academic policy.
Required and Recommended Reading
Class notes have been prepared for each class, and the lecture will follow the
notes. Extensive class notes are also available from the Fall 2017 section of this
course. Students may read over the class notes prior to attending lecture, but
it may deviate from the notes somewhat.
An alternative text is Mathematics for Computer Science by Eric Lehman,
F Thomson Leighton, and Albert R Meyer. The Software Foundations books
are also very helpful for working with Coq. In addition, there are some excellent
papers about the Curry-Howard Isomorphism
• Propositions as Types by Philip Wadler
Student Learning Outcomes
• Students will be capable of proving statements of propositional logic
• Students will be capable of proving statements of predicate logic
• Students will be capable of proving statement about relations and functions in predicate logic
• Students will be capable of proving statements employing infinite induction
• Students will be capable of proving statements using modular arithmetic
• Students will be capable of proving elementary results in graph theory
• Students will be capable of automatically checking proofs using a proof
Online Learning
Due to the closure of classrooms, the reaminder of CSE 191 will be carried out
via distance learning. This is a summary of the course changes. If you have any
questions after reading, please direct them to the Piazza page or to my email.
The Syllabus schedule will remain unchanged, meaning the course will cover
the same topics, withe the same assigned reading and homework. Students will
still turn in homework using Autograder as we have previously. Lectures will
now be recorded and viewable via the Panopto system, and lecture URLs will
be posted on the course webpage. Questions will still be principally answered
on Piazza. We are endeavoring to come up with a real-time conferencing option
which would operator during office hours, but the professor will be available for
questions at that time and in general. The final exam will now not be given
in-person, but rather be a take-home exam. Students may use any resources at
their disposal (books, notes, videos) but may not collaborate with each other.
Students will be given 24 hours to complete the exam, and it will be turned in
via Autograder just as the homework.
Week 1: Propositional Logic 1/28
Lecture 1: Course Outline and Structure
We will go over the course overview and syllabus. I will answer student questions about the course procedures and material. I will also introduce the proof
Assignment 0, Due 2/4
• Problem I.1
This assignment prepares the student to generate PDF homework and turn it
in electronically.
Online resources
• Coq homepage and installation guide for Linux and Windows
• On Multiple Choice Questions in Mathematics by Terence Tao
• The Case Against Credentialism by James Fallows.
Lecture 2: Propositional Logic I
We discuss propositions, operators, and the propositional calculus.
Online resources
• Affirming the Consequent
• Law of Excluded Middle
Week 2: Propositional Logic 2/4
Lecture 3: Propositional Logic II
We discuss proving logical equivalence
Assignment 1, Due 2/18
• Problems I.2, I.4, I.5, I.7, I.9
This assignment covers the definition of propositions, truth values and tables,
and the connection to natural language statements.
Lecture 4: Automating Propositional Logic
We discuss Coq and the automation of proofs in propositional calculus
Online resources
• Coq homepage and installation guide for Linux and Windows
• Discussion of Proof Assistants
• Isabelle homepage
• HOL homepage
Week 3: Read Ahead 2/11
Lecture 5: No class
I am traveling
Lecture 6: No class
I am traveling
Week 4: Proofs in Intuitionistic Logic 2/18
Lecture 7: Proof Tactics I
We discuss introduction and elimination rules for propositional calculus.
Online resources
• Excellent lecture notes on proof tactics by Pierre Castéran
• Great tutorial on Coq by Yves Bertot
• Excellent tutorials on Coq by Mike Nahas
• The Tactics Cheatsheet from Cornell CS 3110, as well as a very nice
discussion of proofs.
• Formalizing 100 theorems in Coq, an appendix to the main page.
• Documentation for the Emacs ProofGeneral environment for Coq
Assignment 2, Due 3/3
• Problems I.10, I.12, I.14
This assignment covers proofs in propositional logic and proof automation.
Lecture 8: Proof Tactics II
We demonstrate proof tactics on a number of examples, and relate the proof to
the traditional method.
Week 5: Predicate Logic 2/25
Lecture 9: Predicates and Quantifiers
We introduce predicates and quantifiers, the basis of Predicate Logic. We also
cover finite inductive types.
Assignment 3, Due 3/10
• Problems II.2, II.4, II.6
This assignment covers predicate logic and the contraposition and contradiction
proof techniques.
Lecture 10: Proof Tactics for Predicate Logic
We prove statments in Predicate Logic using Coq, and the contraposition and
contradiction proof techniques.
Week 6: Sets 3/3
Lecture 11: Sets and Types
We define sets and set operations, and compare set theory to type theory. We
also discuss Russell’s Paradox.
Lecture 12: The Power Set
We define the power set and review diagonal arguments. We prove Cantor’s
Theorem that the power set is always larger than the original set.
Week 7: Relations and Functions 3/10
Lecture 13: Relations
We define relations and their graphs.
Assignment 4, Due 3/31
• Problems III.2, III.4, III.6
This assignment covers sets, relations, and functions.
Lecture 14: Functions
We define functions and function types.
Week 8: Review 3/17
Lecture 15: No class
Spring Recess
Lecture 16: No class
Spring Recess
Week 9: Review 3/24
Lecture 17: Review of bijective functions
We will prove that the inverse of a bijective function is a total function, and
that the composition of bijective functions is a total function.
Lecture 18: Review of finite and infinite inductive types
We review the induction theorems for finite and infinite inductive types, and
the tactics that apply them.
Week 10: Mathematical Induction I 3/31
Lecture 19: Well Ordering and Inductive Types
We define well ordering and inductive types.
Online resources
• Advanced Tutorial on Recursive Types by Eduardo Giménez and Pierre
Lecture 20: Induction and Strong Induction
We define mathematical induction and strong induction.
Week 11: Mathematical Induction II 4/7
Lecture 21: Induction Examples
We show examples of inductive proofs.
Assignment 5, Due 4/21
• Problems IV.2, IV.5, IV.7
This assignment covers proofs by induction.
Lecture 22: Induction Examples with Series
We show examples of inductive proofs.
Week 12: Modular Rings I 4/14
Lecture 23: Division and Mod
We looks at operations modulo an integer.
Lecture 24: Proofs with Division and Mod
We looks at proving statements about modular arithmetic.
Week 13: Modular Rings II 4/21
Lecture 25: The GCD
We define the greatest common divisor (gcd), its properties, and Bézout’s Identity.
Assignment 6, Due 5/5
• Problems V.1, V.2, V.6
This assignment covers modular arithmetic and the Euclidean Algorithm.
Lecture 26: The Extended Euclidean Algorithm
We examine the Euclidean Algorithm and the Extended Euclidean Algorithm.
Week 14: Graph Theory 4/28
Lecture 27: Chinese Remainder Theorem
We prove the Chinese Remainder Theorem and use it.
Lecture 28: Graphs, Graph Tours, and Planar Graphs
We define graphs, and Euler and Hamilton tours. We also examine the Euler
Formula for planar graphs.
Week 15: Review Week 5/5
Lecture 29: Review of Part I
We review the first half of the course.
Lecture 30: Review of Part II
We review the second half of the course.