CSE191

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.

Moreover, we will move away from a more traditional approach to proof techniques. The ultimate goal of computer science is absraction in the service of automation. We will focus on using constructive logic, and the Curry-Howard isomorphism, to automatically construct proofs. The Coq proof assistant can aid in this process by providing certificates for proofs and keeping a database of previous proofs.

CSE 191 Course Information

Instructor: Matthew G. Knepley

Class times: 9:30am to 10:50am on Tuesday & Thursday

Location: Konx 104

Office Hours: Instructor 11:00am to 12:00pm Thursday on Zoom

PositionNameEmailOffice Hours
GTAFeng-Mao Tsaifengmaot@buffalo.eduB1 B2 B3 B4
UTAWasif Khanwasifkha@buffalo.eduOH T/Th/F 12-1
UTALawrence Yaolyao3@buffalo.eduOH M 11-12, T 12:30-1:30

A course overview and grading policy are available in accordance with Buffalo academic policy.

Required and Recommended Reading

There is one reference text for the course, and a set of comprehensive class notes from the instructor. All material necessary to complete the homework and tests will also be provided in lecture. 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.

Turning in Homework

All homework will be submitted to the Autograder system. Two kinds of assignments will be given. Written assignments, which the students will turn in as PDF or scanned image files, and Proof assignments, which will be submitted as Coq files. The written assignments will be denoted with a {\bf w}, such as Assignment 0w. For all proof questions, you must submit a valid constructive proof. You may not use the following tactics:

except if otherwise indicated in the problem statement. You are encouraged to use the \texttt{ring} tactic and the tactics suggested specifically in the problems.

Syllabus, also in PDF

Course Book

Piazza

Coq Tutorial from Jeremy Kazimer

Homework

AssignmentDue DateProblems
0w2/6I.1
02/13I.2
12/27I.11, I.17, I.18, I.20
23/7II.5, II.6, II.7
3a3/28III.11, III.17
3b4/4III.12, III.13, III.15
44/18IV.5, IV.7, IV.10
54/25V.1, V.2
5w5/2V.5, V.6

Lectures

LectureDateReadingLectureDateReading
2/31.1-2 2/101.3-1.5
2/161.3-1.5 3/32.3
3/103.1.1, 3.3.2 3/173.3,3.3.1
3/313.3 3/313.3
4/54.1-3 4/74.4
4/124.5.1 4/144.5.2
4/195.1-5.3 4/215.3.1
4/265.4 4/265.4
4/285.5 5/35.6-7
5/55.5.3

Diagnostic Quizzes

Terence Tao has developed a wonderful series of diagnostic quizzes that students can use to gauge their understanding of core mathematical topics. We will employ a few of them in this course, listed below.
Logicquiz
Setsquiz
Functionsquiz