Course Home | Assignments | Peer Assessment Procedures | Schedule & Lecture Notes

Saint Louis University

Computer Science 314

Michael Goldwasser

Fall 2014

Dept. of Math & Computer Science


Please note that the schedule for future classes is tentative.

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.

We consider most of Chapters 1, 2, 3, 6, 7, 10, and 12 to be prerequisite knowledge entering this course (although you may still wish to review).

Week Day Topic Reading
Fundamental data structures, asymptotic notation, sorting algorithms, binary search trees Ch. 1, 2, 3, 6, 7, 10 12
Aug 25-29 Mon Introduction, Course Administration
Wed Bounding comparison-based algorithms Ch.  9.1 Exercises 9.1-1, 9.1.2, handout
Fri Review of asymptotics; comparison-based sorting lower-bound; linear-time sorting Ch. 8
Sep 1-5 Mon No Class: Labor Day
Wed Divide-and-conquer algorithms; linear-time selection algorithm; recurrence relations Ch. 9.3, 4.3
Fri Continuation of linear-time selection algorithms; solving recurrences Ch. 4.4
Sep 8-12 Mon Solving Recurrences; Master Theorem Ch. 4.4-4.6
Wed Introduction to Dynamic Programming
Rod cutting problem, Memoization
notes, Ch 15.1
Fri Bottom-up Dynamic Programming, Reconstructing a Solution, General Principles of Dynamic Programming Ch 15.1, 15.3
Sep 15-19 Mon More Dynamic Programming examples:
Matrix Chain Multiplication
Optimal Binary Search Tree
Ch. 15.2, 15.5
Wed More Dynamic Programming examples:
Longest Common Subsequence
Ch. 15.4
Fri More Dynamic Programming examples:
Programming Contest Problems
Sep 22-26 Mon Greedy Algorithms
Activity-Selection Problem
(unweighted and weighted variants)
Ch. 16.1,
Exercise 16.1-5
Wed Greedy: Activity Partitioning, Knapsack Problem Exercise 16.1-4, Ch. 16.2
Fri Greedy: Huffman Codes (demo), Minimum Spanning Trees Ch. 16.3, 23.1
Sep 29-Oct 3 Mon MST: Kruskal's Algorithm, Prim's Algorithms Ch. 23.2
Wed Data Structures for Disjoint Sets Ch. 21
Fri No Class: Presidential Inaguration
Oct 6-10 Mon Amortized Analysis
(e.g., multipop stack, counters, dynamic tables)
Ch. 17.1 - 17.3
Wed Dynamic tables with insertion and deletion Ch. 17.4
Fri Priority Queues with Fibonacci Heaps: Definition and Operations Ch. 19
Oct 13-17 Mon Priority Queues with Fibonacci Heaps: Analysis Ch. 19
Wed Graph Representations Ch. 22.1
Fri Graph Traversals: Breadth-First Search (BFS) Ch. 22.2
Oct 20-24 Mon No Class: Fall Break
Wed Graph Traversals: Depth-First Search (DFS) Ch. 22.3
Fri Strongly Connected Components Ch. 22.5
Oct 27-31 Mon Shortest Paths: Bellman-Ford Algorithm Ch. 24.1
Wed DAGs: Toplogical Order, Shortest Path in a DAG
Dijkstra's algorithm (with non-negative weights)
Ch. 22.4, 24.2
Ch. 24.3
Fri SSSP: Gabow's Scaling Algorithm CLRS Problem 24-4
Nov 3-7 Mon All-Pairs Shortest Paths:
Floyd-Warshall algorithm
Johnson's reweighting algorithm
Ch. 25.1, 25.2, 25.3
Wed Introduction to Maximum Flow Ch. 26.1
Fri Ford-Fulkerson Algorithm
Max-Flow, Min-Cut Theorem
Ch. 26.2
Nov 10-14 Mon Edmonds-Karp Algorithm for Efficient Maximum Flow Ch. 26.2
Wed Variants/Applications of Maximum Flow Ch. 26.3, additional notes
Fri Variants/Applications of Maximum Flow
Nov 17-21 Mon Introduction to Complexity Theory
Polynomial Reducability
Example: Vertex Cover ≤P Hamiltonian Cycle
intro to Ch. 34
read Ch. 34.5.3
Wed P, NP, NP-Completeness
Circuit Satisfiability
Ch. 34.1-34.3
Fri Tour of Famous NP-Complete Problems Ch. 34.4-34.5
Nov 24-28 Mon Subset Sum Problem
Weakly NP-Complete Problems
Pseudo-Polynomial Time Algorithms
Wed No Class: Thanksgiving
Dec 1-5 Mon Coping with NP-Complete problems
Case Study: TSP
dynamic programming, heuristics, approximation algorithms
Intro to Ch. 35
Ch. 35.2
additional notes
Wed Approximation Algorithms: Vertex Cover, Set Cover Ch. 35.1, 35.3
Fri Fully Polynomial-Time Approximation Scheme
Ch. 35.5
Dec 8 Mon Review for Exam

Dec 15 Mon Final Exam

Michael Goldwasser ©2014
CSCI 314, Fall 2014
Last modified: Thursday, 22 September 2016
Course Home | Assignments | Peer Assessment Procedures | Schedule & Lecture Notes