Lecture Dates Book Sections Comments
05-03, 05-05 none Our penultimate lecture we be on Karp's 21 NP-Complete Problems In the final class session, we will summarize the contents of the course and discuss the final exam.

Videos: 05-03 and 05-05.

04-26, 04-28 7.5 This week we will be using the Cook-Levin Theorem to prove that various problems are NP-complete.

Videos: 04-26 and 04-28.

04-19, 04-21 7.3, 7.4 These sections cover NP and NP completeness. The first proven instance of an NP-Complete problem is 3-SAT, which was proven to be NP-complete by Cook and Levine. We will be covering this proof in-depth, as it is quite famous and is something every computer science student should see at least once.

Videos: 04-19 and 04-21.

04-12, 04-14 7.1, 7.2, 7.3 This week we will begin discussing Time Complexity and the classic complexity classes of P and NP.

Videos: 04-12 and 04-14.

04-05, 04-07 5.3, 6.2 Chapter 5 ends with a formal statement of Mapping Reducibility, which we used last lecture to prove the undecidability of several problems. We then move on to Chapter 6, which we will beging by discussing the decidability of logical theories.

Videos: 04-05 and 04-07.

03-31 4.2, 5.1 We complete our discussion of decidable and recursively enumerable languages before moving on to Chapter 5, covering Karp Reducibility and basic complexity theory.

Video: 04-01.

03-22, 03-24 4.1, 4.2 We will begin discussing Decidability this week by proving that the Halting Problem is undecidable.

Videos: 03-22 and 03-24.

03-08, 03-10 3.1, 3.2, 3.3 This week we will complete last the discussion of Turing Machines and variants before stating the Church-Turing Thesis.

Video: 03-08.

03-01, 03-03 2.3, 3.1 Section 2.3 proves a version of the pumping lemma for context-free languages, which will be our main tool to prove that a language is not context-free. This completes part one of the book, and we begin the second part by discussing Turing Machines.

Videos: 03-01 and 03-03.

02-22, 02-24 2.2 This week we finish discussing Context Free Grammars and Pushdown Automata, including proving their equivalence.

Videos: 02-22 and 02-24.

02-08, 02-10 2.1, 2.2 This week we begin covering Context Free Grammars (CFGs) and their associated machine model, Pushdown Automata. CFGs were first defined by the linguist Noam Chomsky as a way of describing grammar in human languages.

Videos: 02-08 and 02-10.

02-01, 02-03 1.3, 1.4 This week we will prove that regular expressions and finite state automata describe the same class of languages (the Regular Languages). This is a very famous result due to the mathematician Kleene (read more about it here) We will also begin our discussion of the Pumping Lemma, which is our main technique to prove that a given language is not regular.

Videos: 02-01 and 02-03.

01-25, 01-27 1.1, 1.2, 1.3 Section 1.2 introduces the concept of non-deterministic models of computation. You can read more about deterministic finite state automata here and non-deterministic finite state automata here. Section 1.3 introduces regular expressions. Regular expressions are a basic tool that every working computer scientist should be familiar with.

Videos: 01-25 and 01-27.

01-18, 01-20 1.1 We will not cover chapter 0, as this is prerequisite material. If you are unfamiliar with standard mathematical conventions, you should take the time to read it carefully.

Videos: 01-20.