[Bowdoin Computer Science]

Syllabus

Useful links, animations, etc:

Other undergraduate algorithm classes on the web:

(Maybe) useful lecture notes (some of the lecture notes adapted from my PhD advisor, Lars Arge):

Tentative schedule

1/21, 1/23, 1/28 Introduction and mathematical review. Asymptotic notation. Sorting (bubble sort, selection sort, insertion sort, mergesort).
Reading: CLRS ch. 1, 2.1, 2.2, 3 | Prologue
Exercises: ex-growth | ex-summations
1/30, 2/4 Recurrence relations.
Reading: CLRS ch. 4
Exercises: ex-recurrences-1 | ex-recurrences-2
2/6 Quicksort.
Reading: CLRS chap 7
Exercises: ex-quicksort
2/11 Priority queues: binary heap. Heapsort.
Reading:CLRS chap 6
Exercises: ex-heapsort
2/13 Sorting lower bound. Linear time sorting (bucket sort, radix sort).
Reading: CLRS chap 8
Exercises:
2/18 Selection.
Reading: CLRS chap 9
Exercises: ex-selection
2/20, 2/25 Problems. EXAM 1.
Reading:
Exercises:
2/27 Divide-and-conquer (Strassen's algorithm, large integer multiplication).
Reading: CLRS chap 4
Exercises: ex-divideandconquer
3/4, 3/6 Dynamic programming (matrix chain multiplication, 0-1 knapsack, job scheduling).
Reading: CLRS chap 15
Exercises:
3/25 Greedy algorithms (activity selection, fractional knapsack).
Reading: CLRS chap 16
Exercises:
3/27 Problems. EXAM 2.
Reading: divide-and-conquer, dynamic programming and greedy techniques.
Exercises:
4/1, 4/3 Graph basics. Traversals.
Reading: CLRS chap 22
Slides: Graphs-basics.pdf
Exercises:
4/8, 4/10 Digraphs. Strongly connected components. Transitive closure. Topological ordering.
Reading: CLRS chap 22
Slides: Graphs-basics.pdf
Exercises:
4/15, 4/17 Shortest paths (SSSP). Dijkstra's algorithm and Bellman-Ford's algorithm.
Reading: CLRS chap 24
Slides: Graphs-sp.pdf
Exercises:
4/22 Minimum spanning tree (MST).
Reading: CLRS chap 23
Slides: Graphs-mst.pdf
Exercises:
4/24 String algorithms.
Reading: CLRS chap 32
Exercises:
4/29, 5/1 NP-completeness.
Reading: CLRS chap 33
Exercises:
5/6 Round-up.
Reading:
Exercises:
5/13 EXAM 3.
Reading: Graphs and NPC.

The third exam will be take-home, due on May 13th at 12pm.