[Bowdoin Computer Science]

Csci 231 Fall 2010 Syllabus

Useful links, animations, etc:

(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 6 Introduction KT chapter 1 Why algorithms? (Sedgewick, Princeton)
Sept 8, 13, 15 Mathematical foundations
  • Asymptotic growth.
  • Summations.
  • Recurrences.
KT chapter 2 Program analysis (Princeton)
Zeno's paradoxes.
H1.pdf (due Mon Sept 27)
Sept 20 Priority queues: Heaps. Heapsort. KT chapter 2
Sept 22, 27, 29 Divide-and-Conquer
  • mergesort
  • matrix multiplication, Strassen's algorithm
  • closest pair of points in the plane
  • quicksort
  • linear time selection
KT chapter 5 Merge (Princeton)
Mergesort (Princeton)
Divide-and-conquer (Princeton)
Matrix multiplication (Princeton)
Closest pair (Princeton) | Demo-partition | 3way partition (Princeton)
H2.pdf (due Wed Oct 13)
Oct 4, 6 Sorting lower bounds. Linear time sorting (counting sort, radix sort, bucket sort)
Binary search trees. Red-black trees.
Animations: Binary tree | Binary tree | RedBlack tree
Oct 11 Fall break.
Oct 13 Augmented RB-trees.
Skiplists.
RB Trees (MIT Open Courseware) | Animation | RB-trees (wiki)
Oct 18, 20 Exam review, Exam 1
Oct 25, 27 Graphs
  • traversals (BFS, DFS)
  • connectivity
  • DAGs and topological ordering
KT chapter 3 Graph vizualizations (Sedgewick, Princeton) H3.pdf (due Fri Nov 5th)
Nov 1, 3, 8, 10, 15 Greedy algorithms.
  • interval scheduling
  • shortest paths
  • minimum spanning tree (Kruskal and Prim), union find
  • clustering
KT chapter 4 (4.1, 4.4, 4.5, 4.6, 4.7) Dijkstra/MST animation | another Dijkstra animation | Slides (Princeton) | UnionFind (Princeton) H4.pdf (due Mon Nov 22nd)
Nov 17, 22, 29 Dynamic programming.
  • weighted interval scheduling
  • subset sum and knapsack
  • sequence alignment
  • shortest paths, all-pair-shortest paths, Bellman-Ford algorithm, shortest paths and matrix multiplication
KT chapter 6 () H5.pdf (due Mon Dec 6th)
Nov 24-28 Thanksgiving break
Dec 1, 6 Topics: Amortization or network flow
Dec 8 Review. For other practice exams check links.
Fun read: Pessimal algorithms (Broder, Stolfi)
December ? Final Exam