[Bowdoin Computer Science]

Csci 231 Fall 2011 Syllabus

Useful links, animations, etc:

Other undergraduate algorithm classes on the web:

(Maybe) useful lecture notes (some of the lecture notes have been adapted from the notes of Lars Arge):
Date Topic Reading, Notes Other WWW useful material Assignments
Sept 5, 7, 12, 14, 19 Introduction. Mathematical foundations. Asympthotic growth, summations, recurrences. CLRS chapter 1, 2, 3, 4, A.1 Why algorithms? (Sedgewick, Princeton)
Program analysis (Princeton)
Zeno's paradoxes.
Reading on induction.
H1.pdf (due Mon Sept 26)
Quiz 1
Sept 21 Priority queues: Heaps. Heapsort. CLRS chapter 6
Sept 26, 28, Oct 3, 5 Divide-and-Conquer
  • mergesort
  • matrix multiplication, Strassen's algorithm
  • [closest pair of points in the plane]
  • quicksort
  • linear time selection
CLRS chapter 7, 9, 28.1, 28.2, 33.4 Merge (Princeton)
Mergesort (Princeton)
Divide-and-conquer (Princeton)
Matrix multiplication (Princeton)
Closest pair (Princeton) | Demo-partition | 3way partition (Princeton)
H2.pdf (due Wed Oct 12)
Oct 12, 17 Sorting lower bounds.
Linear time sorting (counting sort, radix sort, bucket sort)
CLRS chapter 8
Oct 10 Fall break.
Oct 17, 19 Binary search trees. Red-black trees. CLRS 12, 13, 14, 26 Animations: Binary tree | Binary tree | RedBlack tree
RB Trees (MIT Open Courseware) | Animation | RB-trees (wiki)
Oct 19, 24 Exam review, Exam 1
Oct 26 Augmented Red Black trees. CLRS 12, 13, 14, 26 Animations: Binary tree | Binary tree | RedBlack tree
RB Trees (MIT Open Courseware) | Animation | RB-trees (wiki)
H3.pdf (due Nov 2)
Oct 31, Nov 2 Graphs
  • traversals (BFS, DFS)
  • connectivity
  • DAGs and topological ordering
CLRS chapter 22 Graph vizualizations (Sedgewick, Princeton)| CC | BFS | DFS
Nov 7, 9, 14 Dynamic programming.
  • cutting rods
  • matrix multiplication
  • longest common subsequence
  • [weighted interval scheduling]
  • subset sum and knapsack
  • [sequence alignment]
  • [shortest paths, all-pair-shortest paths, Bellman-Ford algorithm, shortest paths and matrix multiplication]
CLRS chapter 15, 25 H4.pdf (due Nov 21)
Nov 16, 21, 28, 30 Greedy algorithms.
  • interval scheduling
  • shortest paths
  • [minimum spanning tree (Kruskal and Prim), union find]
  • [clustering]
CLRS chapter 16, 24.1, 24.2, 24.3 Dijkstra/MST animation | another Dijkstra animation | Slides (Princeton) | UnionFind (Princeton) Practice-Problems.pdf
Nov 23-27 Thanksgiving break
Dec 5,7 Exam review, Exam 2. For other practice exams check links above.
Fun read: Pessimal algorithms (Broder, Stolfi)