COMPSCI 250: Fall 2020

Syllabus and Course Schedule

Instructors: Marius Minea and 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

Mon 24 Aug L01  Sets and Strings (1.1, 1.2)
Wed 26 Aug L02  Propositions and Boolean Operations (1.4)
Wed 26 Aug D01  What is a Proof? (1.3)  
Fri 28 Aug L03  Set Operations and Truth Tables (1.5, 1.6)
Mon 31 Aug L04  Rules for Propositional Proofs (1.7)
Wed 02 Sep L05  Propositional Proof Strategies (1.8)
Wed 02 Sep D02  A Murder Mystery (1.9)  
Fri 04 Sep L06  Predicates and Relations (1.10, 2.1) (END OF ADD/DROP)
Mon 07 Sep L07  Quantifiers and Languages (2.3, 2.5) 
Wed 09 Sep L08  Proofs With Quantifiers (2.6)
Wed 09 Sep D03  Conjunctive Normal Form
Fri 11 Sep L09  Relations and Functions (2.8, 2.9)
Mon 14 Sep L10  Equivalence Relations (2.10)
Wed 16 Sep L11  Partial Orders (2.11)
Wed 16 Sep D04  Practicing Proofs (2.7)
Fri 18 Sep L12  Divisibility and Primes (3.1)
Mon 21 Sep L13  Modular Arithmetic (3.3) 
Wed 23 Sep L14  The Chinese Remainder Theorem (3.5)
Wed 23 Sep D05  Infinitely Many Primes (3.4)  
Fri 25 Sep L15  The Fundamental Theorem of Arithmetic (3.6) 

PART II: Induction, Trees, and Searching

Mon 28 Sep L16  Recursive Definition (4.1)
Wed 30 Sep L17  Proof by Induction for Naturals (4.3)  
Wed 30 Sep D06  Practicing Induction Proofs
Thu 01 Oct X01  FIRST MIDTERM on Lectures 1-15  
Fri 02 Oct L18  Variations on Induction for Naturals (4.4)
Mon 05 Oct L19  Induction for Problem Solving (4.11) 
Wed 07 Oct L20  Strings and String Operations (4.7)
Wed 07 Oct D07  More Induction Practice  
Fri 09 Oct L21  Supplementary Induction Topics
Mon 12 Oct L22  Graphs, Paths, and Trees (4.9, 9.1)
Wed 14 Oct L23  Recursion on Trees (9.3)
Wed 14 Oct D08  Boolean Expression Trees (9.2)  
Fri 16 Oct L24  General, Breadth-First, and Depth-First Search (9.4, 9.5)
Mon 19 Oct L25  BFS and DFS on Graphs (9.6)
Wed 21 Oct L26  Uniform-Cost and A* Search (9.8, 9.9)
Wed 21 Oct D09  Comparing Graph Searches  
Fri 23 Oct L27  Games and Adversary Search (9.10)

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

Mon 26 Oct L28  Regular Expressions and Their Languages (5.1, 5.2)
Wed 28 Oct L29  Proving Regular Language Identities (5.4)   
Wed 28 Oct D10  Designing Regular Expressions (5.3)  
Thu 29 Oct X02  SECOND MIDTERM on Lectures 16-27
Fri 30 Oct L30  Proving Properties of the Regular Languages (5.5)
Mon 02 Nov L31  What DFA's Can and Can't Do (14.1, 14.2)
Wed 04 Nov L32  The Myhill-Nerode Theorem (14.3)
Wed 04 Nov D11  Minimizing DFA's (14.3)  
Fri 06 Nov L33  NFA's and the Subset Construction (14.5, 14.6)
Mon 09 Nov L34  Killing λ-moves: λ-NFA's to NFA's (14.7)
Wed 11 Nov L35  Constructing NFA's from Regular Expressions (14.8)
Wed 11 Nov D12  Practicing Multiple Kleene Constructions (14.9)   
Fri 13 Nov L36  State Elimination: NFA's to Regular Expressions (14.10)
Mon 16 Nov L37  Two-Way Automata and Turing Machines (15.1, 15.6)
Wed 18 Nov L38  Turing Machine Semantics (15.8)
Wed 18 Nov D13  Turing Machines
Fri 20 Nov L39  The Halting Problem and Unsolvability (15.10)

Final Exam (cumulative), TBA, week of 30 Nov - 4 Dec.

Last modified 12 November 2020