Course info
Lectures
Homeworks
Calendar
Piazza

Course info:
Click here for info on the course
content, text, grading, exams, etc.; See
sidebar for quick links.
Calendar:
This page has information about staff
office hours, review sessions, homework release and due dates, and the
exam schedule.
Online discussion site:
We will conduct discussions via Piazza.
Review sessions:
The TA Gautam will lead review sessions every week discussing
example problems relevant to the previous week's lectures. Review
sessions will be held on Mondays and Thursdays at 6 p.m.; students are
free to attend either one. Discussion contents will be posted on Piazza 34 days ahead of time. Location: CS 1221.
Schedule and readings
The following is a tentative list of topics and a collection of
material relevant to lectures. More information and links will be
added as the semester proceeds.
Date

Lec #

Topic

Readings/Notes/Slides

Handouts/Other Info

9/3

1

Intro; Computing Fibonacci numbers

§2


9/5

2

Divide & Conquer algorithms: searching and sorting

§2, §5.1, §5.2, slides


9/8

3

D&C: Mergesort, sorting lower bound

§5.1, §5.3, notes


9/10

4

D&C: counting inversions, closest pair of points

§5.3, §5.4, slides

HW1 out

9/12

5

Random events and variables

§13.3


9/15

6

D&C: Quicksort

§13.5


9/17

7

D&C: Quickselect, deterministic lineartime selection

§13.5, notes on Piazza


9/19

8

Selection continued

§13.5, notes on Piazza, Selection demo


9/22

9

Hashing

§13.6


9/24

10

Universal hash functions

§13.6

HW1 due, HW2 out

9/26

11

Closest pair of points using hashing

§13.7


9/29

12

Graph connectivity: BFS, DFS

§3.1, 3.2, 3.3, BFS demo, DFS demo


10/1

13

Directed graphs, topological ordering

§3.5, 3.6


10/3

14

Shortest paths in weighted graphs

§4.4


10/6

15

Shortest paths continued

§4.4, 2.5, Dijkstra's demo


10/8

16

Minimum spanning trees; greedy algorithms

§4.5, 4.6

HW2 due, HW3 out

10/10

17

Minimum spanning trees contd.

§4.5, 4.6, Prim's demo, Kruskal's demo


10/13

18

Interval scheduling: unweighted and weighted

§4.1, 6.1


10/15

19

Dynamic Programming: interval scheduling

§6.1, 6.2, unweighted demo, weighted demo


10/17

20

DP: interval scheduling continued

§ 6.1, 6.2


10/20


No lecture


HW3 due

10/22

21

DP: Knapsack

§ 6.4


10/24

22

DP: applications to computational biology

§ 6.5, 6.6, (optional) 6.7


10/27

23

DP: Shortest paths revisited

§ 6.8, (optional) 6.9


10/29

24

More shortest paths

§ 6.8, (optional) 6.9

HW4 out

10/31

25

Finish Bellman Ford

§ 6.9


11/3

26

Network Flow

§ 7.1, 7.2


11/5

27

Ford Fulkerson algorithm

§ 7.2, 7.3, FF demo


11/7

28

Ford Fulkerson analysis, Edmond Karp algorithm

§ 7.2, 7.3, notes on Piazza


11/10

29

Applications of network flow

§ 7.5, 7.6


11/12

30

More applications of network flow

§ 7.5, 7.7, 7.9

HW4 due, HW5 out

11/14

31

Applications of minimum cut

§ 7.10, 7.11


11/17

32

Linear programming

§ 7.11, 11.6 (first half), Notes on Piazza


11/19

33

Reductions and computational tractability

§ 8.1


11/21

34

The classes P and NP, satisfiability

§ 8.2, 8.3


11/24

35

CookLevin theorem, NPCompleteness

§ 8.2, 8.4


11/26

36

Some NPComplete problems

§ 8.5

HW5 due, HW6 out

12/1

37

More NPComplete problems

§ 8.6, 8.7


12/3

38

More NPComplete problems

§ 8.7


12/5

39

Dealing with intractability



12/8

40

More NPComplete problems, CoNP

8.8, 8.9


12/10

41

Fast Fourier Transform

5.6


12/12

42

Review


HW6 due

