Lecture Schedule

Note that the final exam is on the last day of lecture, not during finals week. It is not comprehensive, but only covers material since the midterm (also given during lecture).

This schedule is tentative and may change as the quarter progresses. I will try not to change scheduled days of quizzes and the midterm, however.  The topics listed for each lecture are an estimate. After the lecture, I will alter the topics to reflect what we actually covered. In particular, I originally designed this for a MWF lecture, but now it's TR, so although the weekly topics are not likely to change, I'm guessing a bit how it will be distributed between the days.

Any section/subsection in the lecture notes labeled "Optional" is something we will not cover. Topics from those sections will not appear on homework, quizzes, or exams.

Lecture 0 is not covered in class when teaching in person. It is a review of prerequisite discrete math concepts that will be used in the course. It will be covered in discussion the first week.

Pre-recorded lectures

I pre-recorded lectures the first time I taught this course online during the COVID-19 pandemic. The recorded lectures cover the same material that we will cover in live lecture. I've made them available through links below for students who wish to have a recorded version of what is covered in lecture that they can watch on their own time.

Generally I've tried to break up each video into smaller chunks than a long 50-minute thing (although without interaction, most of these are 30-40 minutes instead of the full 50). A few of the videos have errors, which are noted as "errata" in the text Details below the video, for example: this video.

The day of week (e.g., 1b, 2a) might be off since the quarter I recorded these has a different schedule than the current quarter.

The AggieVideo site provides automatic transcription of my voice in the lectures, which you can see by clicking on "Show transcript" at the bottom of the video. Since they are automatic, they are not completely accurate, especially for mathematical terms, but they can hopefully help you follow along if English is not your native language.

There's a some errata in a few of the videos, which are explained at the pages at the links below with the individual videos.

lecture date videos reading assignment
0 discrete math review; not covered in lecture, but covered in discussion the first week

sets

sequences

functions and relations

equivalence relations

graphs and trees

Boolean logic

pigeonhole principle

combinatorics

1.1

1.2

1.3

1.4

1a 1/9

introduction to course

course policies (watch on your own)

string theory

intuitive overview of DFAs

formal models of computation

formal definition of DFA syntax

intuitive overview of DFA semantics

syllabus

intro-slides.pdf on "Lecture Notes" page

2.1

2.2

2.3

3.1

3.2

3.3

1b 1/11

examples of DFA state diagrams

example DFAs deciding input length congruence

example DFA deciding binary number congruence

formal definition of DFA semantics

 

3.4

3.5

2a 1/16

regex introduction

regex formal definition

conventions and the tree view of regex's

small examples

example of regex matching double literals

CFG introduction

formal definition of CFG syntax

4.1

4.2

2b 1/18

formal definition of CFG semantics

right-regular grammars

NFA introduction

formal definition of NFA syntax

example NFA and states it could reach

listing transitions versus defining transition function

formal definition of NFA semantics

4.3

3a 1/23

automatic transformation of regex's, NFAs, DFAs

roadmap for next two chapters

DFA union (product construction) example

DFA union proof

DFA intersection (two ways)

gotchas: multiple union or intersection, closure only goes one way, and difficulty of showing closure for concatenation and Kleene star

5.1

5.2

3b 1/25

NFA Kleene star example

NFA union proof

NFA concatenation proof

NFA Kleene star proof

introduction to computational equivalence, NFAs can simulate DFAs

example of DFA simulating NFA (subset construction)

 5.3

4a 1/30

proof DFAs can simulate NFAs with no ε-transitions

handling ε-transitions

alternative choices in subset construction

RRGs can simulate DFAs example

RRGs can simulate DFAs proof

NFAs can simulate RRGs proof

right-regular versus left-regular grammars

NFAs can simulate regex's proof

NFAs can simulate regex's example

6.1

6.2

4b 2/1

NFAs with "isolated" start and accept state

expression automata

regex's can simulate NFAs

why we need rigor to argue that a language is not regular

definition of separating extension and L-equivalence

example of separating extension

statement of Myhill-Nerode Theorem

corollary of Myhill-Nerode theorem we use and its proof

6.3

7.1

5a 2/6

examples of using the Myhill-Nerode Theorem

proof of non-regularity using closure properties

more examples of using Myhill-Nerode Theorem

a non-regular unary language

introduction to Turing machines (TM)

example TM

formal definition of TM syntax

formal definition of TM semantics

 

7.2

7.3

5b 2/8

languages decided/recognized by TMs

multitape TM transition function

single-tape TMs can simulate multitape TMs

other variants of TMs

TMs versus code

8.1

8.2

8.3

8.5

8.6

6a 2/13

measuring running time

asymptotic analysis, definition of O() and o()

rules-of-thumb for comparing function growth rates

definition of Ω(), ω(), and Θ()

 

 

 

Appendix A

9.1

6b 2/15

time complexity classes and the Time Hierarchy Theorem

definition of P, encoding of data structures

P is the same for most encodings and programming languages

example problem in P: EulerianGraph

example problem in P: RelPrime

example problem in P: Connected (note: this assumes Path is in P, discussed in the optional video on that problem)

(Optional) example problem in P: Path

polynomial-time verifier for HamPath

polynomial-time verifier for Composites

definition of NP

decision vs. search vs. optimization

9.2

9.4

9.5

10.1

10.2

 

7a 2/20 midterm
7b 2/22

example problem in NP: Clique

example problem in NP: SubsetSum

the P vs. NP question

exponential-time algorithms for NP problems

P versus NP versus EXP

10.3

10.4

 

8a 2/27

introduction to NP-completeness and Boolean formulas

implementation in Python and the Boolean satisfiability problem

ranking the hardness of problems

reducing IndSet to Clique

definition of polynomial-time reducibility

using reductions to bound hardness of problems

how to remember which direction reductions go

definition of the 3SAT problem

 

 

 

10.5

10.6

8b 2/29

3SAT is reducible to IndSet

reduction between two problems is an algorithm, but it doesn't solve either problem

definition of NP-completeness

Cook-Levin Theorem: if PNP, then no NP-complete problem is in P

 

10.7

10.8

9a 3/5

halting problem definition and Turing-recognizability

reducibility

no-input halting problem is undecidable

recipe for showing undecidability

acceptance problem is undecidable

empty language problem is undecidable

rejecting problem is undecidable

how to spot undecidability

11.1

11.3

11.4

9b 3/7

comparing sizes of sets

ℕ vs. ℤ

ℕ vs. ℚ+

ℕ vs. ℚ

ℕ vs. {0,1}*

ℝ vs. (0,1)

11.5

 

10a 3/12

diagonalization to show a set is smaller than its power set

the real numbers are uncountable and the Continuum Hypothesis

diagonalization to show the halting problem is undecidable

11.6
10b 3/14 final exam