Date

Lec #

Topic

Readings/Notes/Slides/Handouts

1/20

1

Intro; Computing Fibonacci numbers

§2; Handout from Dasgupta et al.

1/22

2

Fibonacci numbers contd., Divide & Conquer algorithms: searching and sorting

§2, §5.1

1/25

3

D&C: Mergesort; counting inversions

§5.1, §5.2, §5.3, slides

1/27

4

D&C: counting inversions, closest pair of points

§5.3, Inversion demo, §5.4

1/29

5

D&C: closest pair of points

§5.4

2/1

6

D&C: lineartime selection

Notes on Piazza, Selection demo

2/3

7

D&C: selection continued, integer multiplication

§5.5

2/5

8

Integer multiplication continued; Graphs

§3.1

2/8

9

Basic graph algorithms: BFS, DFS

§3.2, 3.3, BFS demo, DFS demo

2/10

10

Topological ordering, Shortest paths in graphs

§3.5, 3.6, 4.4

2/12

11

Shortest paths (Dijkstra's algorithm)

§4.4, 2.5, Dijkstra's demo

2/15

12

Minimum spanning trees

§4.5

2/17

13

MST continued

§4.5, 4.6, demos: Prim's, Kruskal's

2/19

14

Other greedy algorithms: interval scheduling

§4.1, 4.2

2/22

15

Weighted interval scheduling; Dynamic Programming

§6.1, 6.2, demos: unweighted IS, weighted IS

2/24

16

Dynamic Programming: interval scheduling contd., knapsack

§6.2, 6.4

2/26

17

DP: knapsack contd., segmented least squares

§6.4, 6.3

2/29

18

DP: segmented least squares, vertex cover on trees

§ 6.3, notes on Piazza

3/2

19

DP: longest increasing subsequence

§6.6, notes on Piazza

3/4

20

DP: edit distance (sequence alignment)

§6.6

3/7

21

DP: edit distance in linear space

§6.7

3/9

22

DP: shortest paths: BellmanFord

§6.810

3/11

23

DP: shortest paths: FloydWarshall

§6.810, notes on Piazza

3/14

24

Randomized algorithms: computing Pi

§13.3

3/16

25

Randomized algorithms: probabilities, expectations, and coin flips

§13.3, 13.12

3/18

26

Analysis of Quicksort

§13.5

3/28

27

Quicksort continued

§13.5

3/30

28

Hashing

§13.6

4/1

29

Universal Hashing, Application to string matching

§13.6

4/4

30

String matching continued, network flow

§7.1, 7.2

4/6

31

FordFulkerson algorithm, Maxflow mincut theorem

§7.2, 7.3, FF demo

4/8

32

Correctness of FordFulkerson; EdmondKarp algorithm

§7.2, 7.3, notes on Piazza

4/11

33

Applications of network flow

§7.5, 7.6

4/13

34

More applications of network flow

§7.7, 7.9, 7.10, 7.11, 7.12

4/15

35

More applications of network flow and min cut

§7.77.12

4/18

36

Limits of tractability, lower bounds on sorting and searching

Notes on Piazza

4/20

37

Finish sorting lower bound; Adversarial lower bounds

Notes on Piazza

4/22

38

The classes P and NP; P vs NP

§8.1, 8.3

4/25

39

NPcompleteness; reductions

§8.1, 8.2, 8.3

4/27

40

CookLevin theorem

§8.1, 8.2, 8.3

4/29

41

More reductions and NPComplete problems

§8.48.6

5/2

42

Yet more reductions; Beyond NP

§8

5/4

43

Coping with intractability


5/5

44

Coping with intractability

