Saint Louis University |
Computer Science 314
|
Dept. of Math & Computer Science |
Also note: For each lecture, we denote both a topic as well as the associated reading in the textbook. The live link on the 'topic' leads to a page of my personal notes for that lecture. Those personal notes are not nearly as complete or polished as the associated readings from the text. In truth, they exist mostly to provide a brief outline of the day's lecture. Students are expected to read the associated sections of the text. In cases where my notes include material which is not explicitly in the text, I will add the word "notes" to the explicit reading list.
Week | Day | Topic | Reading |
---|---|---|---|
Jan 22-Jan 25 | Wed | Stable Marriage Problem | Ch. 1; pp. 1-5 |
Fri | Gale-Shapley Algorithm for Stable Marriage | Ch. 1; pp. 5-12 | |
Jan 28-Feb 1 | Mon | Further properties of stable marriages; | End of Ch. 1.1 |
Wed |
Analysis of Gale-Shapley implementation
Basics of Algorithm Analysis |
Ch. 2 | |
Fri | (no school - snow) | (read rest of Ch. 2) | |
Feb 4-Feb 8 | Mon |
Introduction to Graphs
Graph Connectivity |
Ch. 3.1 |
Wed |
Graph Traversals BFS, DFS |
Ch. 3.2 | |
Fri | (discussion of hw2) | ||
Feb 11-Feb 15 | Mon |
Graph Representations
(Adjacency Matrix, Adjacency List) |
|
Wed | BFS and DFS Implementations | Ch. 3.3 | |
Fri |
Detecting Bipartite Graphs Connectivity in Directed Graphs Algorithm for Computing Strongly-Connected Components |
Ch. 3.4
part of Ch. 3.5 |
|
Feb 18-Feb 22 | Mon | Proof of correctness for strongly-connected component algorithm | Notes |
Wed | Topological Ordering | Ch. 3.6 | |
Fri | Interval Scheduling | Ch. 4.1 | |
Feb 25-Feb 29 | Mon | Interval Graphs | notes |
Wed | (more about interval graphs) | ||
Fri | Scheduling to minimize lateness | Ch. 4.2 | |
Mar 3-Mar 7 | Mon | Shortest Paths | Ch. 4.4 |
Wed | Analysis of Dijkstra's algorithm | ||
Fri | Minimum Spanning Trees | Ch. 4.5 | |
Mar 10-Mar 14 | Mon | Implementation of Kruskal's Algorithm | Ch. 4.6 |
Wed | Further Improvements to Union-Find | pp. 155-157 | |
Fri | Midterm Exam | ||
Mar 17-Mar 21 | Mon | No Class: Spring Break | |
Wed | |||
Fri | |||
Mar 24-Mar 28 | Mon | ||
Wed | Mergesort and Recurrence Relations | Ch. 5.51 | |
Fri | More Recurrence Relations | Ch. 5.2 | |
Mar 31-Apr 4 | Mon | Integer Multiplication | Ch. 5.5 |
Wed | Closest Pair | Ch. 5.4 | |
Fri |
Weighted Inverval Scheduling
Dynamic Programming |
Ch. 6.1 | |
Apr 7-Apr 11 | Mon | General view of Dynamic Programming | Ch. 6.2 |
Wed | Segmented Least Squares | Ch. 6.3 | |
Fri |
Subset Sum and Knapsack
(Python code) |
Ch. 6.4 | |
Apr 14-Apr 18 | Mon | Sequence Alignment | Ch. 6.6 |
Wed | Sequence Alignment in linear space | Ch. 6.7 | |
Fri | Shortest Paths | Ch. 6.8 | |
Apr 21-Apr 25 | Mon | Network Flows | Ch 7.1 |
Wed | Ford-Fulkerson Algorithm | Ch 7.2 | |
Fri | Choosing Good Augmenting Paths | Ch. 7.3 | |
Apr 28-May 2 | Mon |
Applications of Network Flow
(Bipartite Matching, Disjoint Paths) |
Ch. 7.5, 7.6 |
Wed |
Applications of Network Flow
|
||
Fri | |||
May 5 | Mon | ||
May 13 | Tues | Take-Home Final Exam Due |