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 P≠NP, 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 |
|