### ECS 20 - Lecture-by-Lecture Topic Summaries

Lecture Topic
Lect 1 - F 3/31 Introduction. Three example problems. Problem 1: computing the sum of the numbers 1 through n. Problem 2: Number of moves necessary and sufficient to solve the Towers of Hanoi problem. Problem 3: sqrt(2) is irrational. Material from [Goodaire-Parmenter, Chap 0]. and [Graham-Knuth-Patashnik, Chap 1].
Lect 2 - M 4/3 Problem 4: What is the maximum number of regions that n lines can divide the plane into? Problem 5: x^2 - 4x + 17 has no real-valued solution. Problem 6: For every n>=1, 2^n+1 is prime or 2^n-1 is prime (false; counterexamples). Logic. Sentential logic: a recursive definition for well-formed formulaes. Translating English statements into sentential logic. Material from [Graham-Knuth-Patashnik, Chap 1] and [Enderton, Chap 1]. [Closest match in your book: Chapter 2]
Lect 3 - W 4/5 Translating another English sentence into sentential logic, and review of recursive definition of wff. Review of the meaning of implication. Definition of a truth assignments. Extending a truth assignment to the language of wffs. Definition of a tautology. Example tautologies. Using truth tables to decide if a formulae is a tautology. Distributive law, De Morgan's law. Representing (some) wffs using logic gates.
Lect 4 - F 4/7 Tautologies and satisfiability. There is no efficient algorithm for deciding either. Are there "efficient proofs" for Tautology, Satisfiability? Logical completeness: {AND, OR, NOT} are complete; so is {AND, NOT}. The Compactness Theorem. The Tiling Problem. There is no computer program that solves the Tiling Problem. Using the Compactness Theorem to see that if the plane is not tile-able (with a certain set of tile-types) then there exists a proof of this fact. (Note: most of this lecture isn't in your book.)
Lect 5 - M 4/10 First order logic: adding universal and existential quantifiers, constant symbols, predicates, and function symbols. Examples. Pushing negations across quantifiers. The language of set theory. The language of number theory.
Lect 6 - W 4/12 Set theory. Well-known sets. Cardinality of finite sets. The empty set. Sets that contain sets. Being "type correct" when you make statements about sets. Venn diagrams. Defining equality, subset, union, intersection, difference, complement, xor. Unions and intersections of infinitely many sets. De Morgan's law, and other properties from the algebra of sets. [Kolman, Busby, Ross 1.1, 1.2]
Lect 7 - F 4/14 More operators on sets: power set P(A), cross product A x B, two-element subsets, (V & V). Alphabets, strings, and languages. The empty string. The length of a string. Bit extraction. Concatenation. Reversal. Extending concatenation to languages.
Lect 8 - M 4/17 Review of strings, languages, and the concatenation operator. The Kleene closure operation (*). Regular languages: definitions and examples. Representing a regular language using a regular expression. [Kolman, Busby, Ross 10.1, 10.2]
Lect 9 - W 4/19 Quiz 1. Review of regular expressions and how they each denote a regular language, and each regular language is denoted by a regular expression. Finding a regular expression for various languages. Deterministic Finite Automata (DFA), how a DFA decides whether or not to accept a string, and the language that a DFA accepts. Theorem (no proof): a language is DFA-acceptable iff it is regular. [Kolman, Busby, Ross 10.3, 10.5]
Lect 10 - F 4/21 Review of DFAs and how they work, and the (claimed) theorem above. Relations. Definitions and examples for relations. Reflexive, symmetric, transitive properties of a relation. Equivalence relations. Equivalence classes. A partition of a set. Blocks. An equivalence relation gives rise to a partition, and a partition gives rise to an equivalence relation. [Kolman, Busby, Ross 10.3, 10.5; 4.1-4.5]
Lect 11 - M 4/24 Review of vocabulary associated to relations. The reflexive, symmetric, and transitive closure of a relation. The quotient set. The digraph of a relation. Functions. Checking that your functions are well-defined. Definitions for injective (one-to-one), surjective (onto), and bijective functions. The floor functions. [Kolman, Busby, Ross 4.5, 4.7, 4,8, 5.1]
Lect 12 - W 4/26 Review of common language associated to functions. The inverse of a function. Some well-known functions: ceiling, floor, exponentiation, lg, ln, log. The asymptotic growth of functions: O and Theta notation. Some growth rates that appear frequently in the analysis of algorithms. [Kolman, Busby, Ross 5.2, 5.3.]
Lect 13 - F 4/28 The pigeonhole principle and various applications of it: among three people, some two have the same gender; among 20 people, some two have the same number of friends; among 6 people, 3 mutually know one another or mutually do not know one another (uses the "strong form" of the pigeonhole principle). Notes on the pigeonhole principle. Countable and uncountable sets. Definitions for countability. Examples of countable sets: proofs for evens countable, integers countable, rational countable. [Kolman, Busby, 3.3; the countable/uncountable stuff is not in your text; see, for example, Goodaire and Parmenter 2.3]
Lect 14 - M 5/1 Teaching survey. More on countable and uncountable sets. Diagnolization: the interval (0,1) is not countable. The reals are not countable. Using countability to prove that there is a non-regular language, and that any "describable" class of languages does not include all languages. The Continuum Hypothesis.
Lect 15 - W 5/3 Survey results (I look like Rick Moranis). Properties of integers. The well-ordering principle. The division algorithm. Definition of the divisibility relation, a|b. Some basic properties of the divisibility relation. Quiz 2.
Lect 16 - F 5/5 More properties of integers: if d|a and d|b then d | ax+by for any integers x,y. Definitions of primes and composites. The Primality testing problem (easy) vs. the Factoring problem (hard). The fundamental theorem of arithmetic. (unique decomposability into a product of powers of primes). The definition of gcd, and why it is well-defined. How to compute the gcd of two numbers using Euclid's algorithm. How to find x, y such that gcd(a,b)=xa+by.
Lect 17 - M 5/8 Review of some definitions and facts about numbers. The Prime Number Theorem. Review of Euclid's theorem. A proof that Euclid's algorithm for finding gcd(a,b) terminates in O(lg a + lg b) iterations. Various ways of thinking about mod n, including Phil's favorite, that we are working in a group, Z_n, of the integers modulo n. Another group, Z_n^*. Why Z_n^* really is a group: finding inverses of group elements using Euclid's algorithm. Here is the group theory of today's lecture and Wednesday's. Also [KBR 9.4].
Lect 18 - W 5/10 Review of the definition of a group. Examples of groups (and things that fall short). Lagrange's theorem. Concluding Fermat's Little Theorem. A usually-right test for primality based on Fermat's Little Theorem. Induction and recursion. Example: A store sells envelopes in packages of 5 and 12. Show that the store can exactly fill any order for 45 or more envelopes.
Lect 19 - F 5/12 More examples of induction: tiling the punctured chessboard with "trominoes"; 2^{2n}-1 is divisible by 3; and the sum of off numbers 1 to 2n-1. Formal statement of the Principle of Mathematical Induction. The "strong form" of this statement. The cake-cutting problem and its solution.
Lect 20 - M 5/15 Midterm
Lect 21 - M 5/17 Guest lecture by Zhaojun Bai. Counting. The addition rule. The multiplication rule. Various examples counting problems. Permutations. The function P(n,r).
Lect 22 - F 5/19 Recurrence relations. Review of the Tower of Hanoi problem. Solving recurrence relations by guessing and verifying by induction. Solving recurrence relations by repeated substitution. Analyzing a variant of the Towers of Hanoi problem where you may not move directly between pegs A and B. 1 + a + ... + a^n = (a^{n+1}-1)/(a-1) (for a<>0). Mergesort and its analysis. Practice solving recurrence relations by repeated substitution.
Lect 23 - M 5/22 More examples of recurrence relations. Binary search and its analysis. Now back to counting -- mostly Permutations. List of counting examples I did in class.
Lect 24 - W 5/24 More examples, lots of examples, of counting problems. (The same) list of counting problems. The definition of P(n,r). Intentionally over-counting. Intentionally under-counting. Combinations - the definition of C(n,r).
Lect 25 - F 5/26 Still more counting; see the same list.
Lect 26 - W 5/31 Quiz 3. Probability. Notions of a probability space, an event, and some examples. I have prepared brief notes on probability.
Lect 27 - F 6/2 More examples from Probability. The probability of getting an 8 when you roll a pair of dice. The probability of getting two even numbers when Alice chooses two random distinct numbers between 1 and 10. The birthday surprise. Random variables and their expectation. The expected value of a roll of a die, of the square of the roll of a die. The linearity of expectation. The unfair subway problem. The Monty Hall three-door problem.
Lect 28 - M 6/5 Graph theory. Lots of terminology on graphs: graph, adjacent, incident, degree, path, cycle, component, connected, tree, forest, Eulerian, etc.. Some basic propositions about graphs, like that half the sum of the degrees is the number of edges. Euler's Theorem: a graph G on n>=3 vertices is Eulerian iff every vertex of G is of even degree.
Lect 29 - M 6/7 Evaluations. Proof of Euler's theorem. Hamiltonian graphs. Examples of graphs that do and do not have Euler cycles and Euler paths, and Hamiltonian cycles; the Peterson graph is not Hamiltonian. The complexity of deciding Eulerian-ness vs. the complexity of deciding Hamiltonicity. Final remarks: the value of this course will become clearer in time, study for permanent retention, not just for our exam!