[Bowdoin Computer Science]

Schedule

This schedule is tentative, and will be updated as the semester progresses.

WEEK DATE TOPIC READING ASSIGNMENT LAB
0 9/4 Class intro. Warmup with searching (linear and binary) and sorting (bubble sort, insertion sort, selection sort).
Notes: L0.pdf | bbsort.pdf | selsort.pdf
CLRS 1
1 9/9 Analysis: The RAM model. Asymptotic analysis and asymptotic notation. Case studies.
Notes: Analysis.pdf | inssort.pdf | e1 | e2
CLRS 2, 3 Lab 1
9/11
2 9/16 Analysis: Summations and recurrence relations. Mergesort.
Notes: Summations.pdf | e1 | Recurrences.pdf | e1 | e2 | e3 | e4
CLRS A, 2.3, 4.4 Lab 2
9/18
3 9/23 [More recurrences.]
Heaps and heapsort.
Notes: Heaps.pdf | e1
CLRS 6 Lab 3
9/25
4 9/30 Quicksort.
Sorting lower bound and sorting in linear time.
Notes: Quicksort.pdf | e1 | sortLB.pdf | e2 | linsort.pdf
CLRS 7, 8 Lab 4
10/2
5 10/7 Selection.
Notes: Selection.pdf | e1
CLRS 9 Lab 5
10/9
6 10/14 FALL BREAK Exam 1.
10/16 Divide-and-conquer algorithms (Strassen, maximum sub-array)
Notes: Divide-and-conquer.pdf | Max-subarray.pdf
CLRS 4.1, 4.2
7 10/21 Dynamic programming.
Notes: Board.pdf | Rod.pdf
CLRS 15.1 Lab 6
10/23
8 10/28 Dynamic programming and greedy algorithms.
Notes: LCS.pdf | Weightedinterval.pdf | Greedy.pdf
CLRS 15.4, 16.1, 16.2 Lab 7
10/30
9 11/4 Graphs: BFS, DFS.
Notes: Basics.pdf | BfsDfs.pdf | Applications.pdf | KevinBaconGame.pdf
CLRS 22.1 - 22.3 Lab 8
11/6
10 11/11 Graphs: Topological sort. Strongly connected components.
Notes: topsort.pdf | SCC.pdf
CLRS 22.4, 22.5 Lab 9
11/13
11 11/18 Graphs: Minimum spanning tree (Kruskal and Prim's algorithms).
Notes: MST.pdf
CLRS 23 Lab 10
11/20
12 11/25 Union-find structure.
Pessimal algorithms.
CLRS 23
11/27 THANKSGIVING
13 12/2 Graphs: Single-source shortest paths (Bellman-Ford and Dijkstra's algorithms).
Notes: sp.pdf
CLRS 24.1-24.3 Lab 11
12/4
14 12/9 NP-completeness.
Last class: Questions from technical interviews.
CLRS 34
12/11
Exam 2 will be take-home, due on December 17th at 5pm.