COMPSCI 250: Summer 2021


Syllabus and Course Schedule

Instructor: Ghazaleh Parvini

Reading assignments are from David Mix Barrington: A Mathematical Foundation for Computer Science (revised preliminary edition, 2020), available as an e-book from Kendall Hunt.

PART I: Logic and Number Theory

Week1:

Mon 17 May L01 & L02 Sets, Strings, Propositions and Boolean Operations(1.1, 1.2,1.4)

Wed 19 May L03 & L04 Set Operations and Truth Tables, Rules for Propositional Proofs (1.5, 1.6, 1.7)

Thu 20 May D01 What is a Proof? (1.3)

Week2:

Mon 24 May L05 & Lec06 Propositional Proof Strategies, Predicates and Relations (1.8, 1.10, 2.1)

Wed 26 May L07 & L08 Quantifiers and Languages (2.3, 2.5, 2.6)

Thu 27 May L09 (No live lecture) Relations and Functions (2.8, 2.9)

Thu 28 May D02 Conjunctive Normal Form

Week3:

Mon 31 May L10 & Lec11 Equivalence Relations, Partial Orders (2.10, 2.11)

Wed 02 June L12 & L13 Divisibility and Primes, The Chinese Remainder Theorem (3.1, 3.5)

Thu 03 June L14 (No live lecture) The Fundamental Theorem of Arithmetic (3.6)

Thu 03 June D03 Infinitely Many Primes (3.4)

PART II: Induction, Trees, and Searching

Week4:

Mon 07 June L15 & L16 Recursive Definition, Proof by Induction for Naturals (4.1, 4.3)

Wed 09 June L17 & L18 Variations on Induction for Naturals, Induction for Problem Solving (4.4,4.11)

Thu 10 June D04 Practicing Induction Proofs

Week5:

Mon 14 June L19 & L20 Strings and String Operations,Supplementary Induction Topics (4.7)

Wed 16 June L21 & L22 Graphs, Paths, and Trees, Recursion on Trees (4.9, 9.1, 9.3)

Thu 17 June D05 More Induction Practice

Week6:

Mon 21 June L23 & L24 General, Breadth-First, and Depth-First Search, BFS and DFS on Graphs (9.4,9.5, 9.6)

Thu 23 June L25 & L26 Uniform-Cost and A* Search,Games and Adversary Search (9.8,9.9,9.10)

Thu 24 June D06 Comparing Graph Searches

PART III: Regular Expressions, Finite-State Machines, and Computability

Week7:

Mon 28 June L27 & L28 Regular Expressions and Their Languages, Proving Regular Language Identities (5.1, 5.2, 5.4)

Wed 30 June L29 & L30 Proving Properties of the Regular Languages, What DFA's Can and Can't Do (5.4,5.5, 14.1, 14.2)

Thu 1 July D07 Designing Regular Expressions (5.3)

Week8:

Mon 5 July L31 & L32 The Myhill-Nerode Theorem, NFA's and the Subset Construction (14.3,14.5, 14.6)

Wed 7 July L33 & L34 Killing λ-moves: λ-NFA's to NFA's & Constructing NFA's from Regular Expressions (14.7, 14.8)

Thu 8 July D08 Minimizing DFA's (14.3)

Week9:

Mon 12 July L35 & L36 State Elimination: NFA's to Regular Expressions, Two-Way Automata and Turing Machines (14.10, 15.1, 15.6)

Wed 14 July L37 & L38 Turing Machine Semantics ,The Halting Problem and Unsolvability (15.8, 15.19)

Thu 15 July D09 Turing Machines