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 3-4 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 linear-time 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, F-F 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
|
Cook-Levin theorem, NP-Completeness
|
§ 8.2, 8.4
|
|
11/26
|
36
|
Some NP-Complete problems
|
§ 8.5
|
HW5 due, HW6 out
|
12/1
|
37
|
More NP-Complete problems
|
§ 8.6, 8.7
|
|
12/3
|
38
|
More NP-Complete problems
|
§ 8.7
|
|
12/5
|
39
|
Dealing with intractability
|
|
|
12/8
|
40
|
More NP-Complete problems, Co-NP
|
8.8, 8.9
|
|
12/10
|
41
|
Fast Fourier Transform
|
5.6
|
|
12/12
|
42
|
Review
|
|
HW6 due
|
|