CS120: Intro to Algorithms and their Limitations

Semester: Fall
|
Year offered: 2021

An introductory course in theoretical computer science, aimed at giving students the power of using mathematical abstraction and rigorous proof to understand computation. Thus equipped, students will be able to design and use algorithms that apply to a wide variety of computational problems, with confidence about their correctness and efficiency, as well as recognize when a problem may have no algorithmic solution. At the same time, they will gain an appreciation for the beautiful mathematical theory of computation that is independent of (indeed, predates) the technology on which it is implemented.

Links


Class Materials:

Schedule, Lecture Notes, and Assignments

 

Date

Title

Reading

Lecture Notes

Assignments & Other Handouts

Aug 20

Course overview

 

1. Storing and Searching

 

 

 

Sep 2

Sorting; Computational Problems

CS50 Week 3, Roughgarden I Sec. 1.4, 1.5, CLRS 1.3

 pdf
 
   Sep 7
  Measuring Efficiency
  Roughgarden I Ch. 2, CLRS Ch. 2 & Sec 8.1,      Lewis-Zax Ch. 21
 pdf
 ps1
  Sep 9
  Data Structures
  CS50 Week 5, Roughgarden II Sec 10.1 & 11.1, CLRS Ch. 10
 pdf
  Sep 14
  Dynamic Data Structures
  Roughgarden II Sec. 11.0-11.3.2 , CLRS Ch. 10, Sec. 12.0-12.1
 pdf
 ps2
  Sep 16
  Binary Search Trees
  Roughgarden II Sec. 11.2-11.3.7, CLRS Sec. 12.0-12.3
 pdf
 
  Sep 21
  Balanced BSTs
  Roughgarden II Sec. 11.4, CLRS Ex. 13-3
 pdf
  Sep 23
 The RAM Model
  
 pdf
 
  Sep 28
 Randomized Algorithms: QuickSelect
  Lewis-Zax Ch. 26-29, CLRS 9.0-9.2, Roughgarden I Sec. 6.0-6.2
  Sep 30
 Randomized Data Structures: Hash Tables
 CLRS Sec. 9.2, Roughgarden II Sec. 12.0-12.4
 pdf
 
  Oct 5
 Storing & Search Synthesis, Intro to Graph Search
 CLRS Sec 11.3, Roughgarden II Sec 12.3.6-12.4, Roughgarden II Sec 7.1-7.2, CLRS Apdx B.4
 pdf
 

2. Graph Algorithms

 
 
 
  Oct 7
  Graph Search
 Roughgarden II Sec 8.1-8.2, CLRS Sec 12.2
 pdf
 
  Oct 12
  Graph Search (cont.)
  Roughgarden II Sec 7.3-7.4, 8.2, CLRS Sec 22.0-22.2
 pdf
  Oct 14
  Midterm
 
 
 
  Oct 19
  Graph Coloring
  Lewis-Zax Ch. 18, Roughgarden III Sec 13.1
 pdf
 ps6
  Oct 21
  Independent Sets
  CLRS Sec 16.1-6.2
 pdf
  Oct 26
  Matchings
 
 pdf
ps7
  Oct 28
  Graph Algorithms Synthesis, Ethics, Logic
 Lewis-Zax, Ch 9-10
 pdf
 

 3. Logic Algorithms

 
 
 
  Nov. 2
  Satisfiability
  Lewis-Zax Ch. 9-10, Roughgarden IV Sec 21.5, Ch. 24
 pdf
ps8
  Nov. 4
  Resolution and SAT Solvers
 
 pdf

  4. Computability Theory

 
 
 
  Nov. 9
  Program Analysis, Universal RAM Program, Halting Problem
  MacCormick Sec 6.0-6.4, MacCormick Ch. 3, SMT survey
 pdf
ps9
  Nov. 11
  Unsolvable Problems
  MacCormick Ch. 7 
 pdf
 
  Nov. 16
  The Church-Turing Thesis
  MacCormick Sec 5.6-5.7, 7.7-7.9
 pdf

  5. Computational Complexity

 
 
 
 
  Nov. 18
  Computational Complexity
 MacCormick Sec 5.3-5.5, Ch. 10, 11
 pdf
 
  Nov. 23
  NP and NP-completeness
  MacCormick Sec 12.0-12.3
  Nov. 30
  NP-completeness
  MacCormick Ch. 13, 14, 17
 pdf
 
  Dec. 2
  The P vs. NP Problem
  MacCormick Sec 14.4, 14.6, 14.8
 pdf
activelearning8,
ps11​​​​​​​
  Dec. 7
  Review, Synthesis, Conclusions
  Roughgarden IV Epilogue, MacCormick, Ch. 18