| Monday | T | Wednesday | R | F |
|---|---|---|---|---|
|
Module 0: Orientation & Overview
10
Before Class:
Preface (10 pages) (Skim / read) (PDF available in CougarVIEW Announcements) Chapter 1: Introduction: Some Representative Problems (18 pages) (PDF available in CougarVIEW Announcements)Class: Introductions Syllabus Stable Matching (Gale–Shapley) (Demo) |
11
|
Module 1: Algorithm Analysis
12
Before Class:
2.1 Computational Tractability (PDF available in CougarVIEW Announcements)Class: Chat option for asking questions Stable Matching (Gale–Shapley) Five Representative Problems Computational Tractability Class notes |
13
|
14
Deadline for full refund
Due: |
|
17
Before Class:
2.2 Asymptotic Order of Growth 0.6 Analyzing Algorithms (3 pages) (optional) 2.3 Implementing the Stable Matching Algorithm Using Lists and Arrays 2.4 A Survey of Common Running TimesClass: Computational Tractability Asymptotic Order of Growth Implementing Gale–Shapley Survey of Common Running Times (Binary Search Demo) |
18
|
19
Before Class:
2.5 A More Complex Data Structure: Priority QueuesClass: Binary Search Algorithm Analysis Survey of Common Running Times Priority Queues & Heaps (exercises) Class notes |
20
|
21
|
|
Module 2: Graphs
24
Before Class:
3.1 Basic Definitions and Applications Chapter 5: Basic Graph Algorithms (optional) 3.2 Graph Connectivity and Graph Traversal Chapter 6: Depth-First Search (optional) 3.3 Implementing Graph Traversal Using Queues and StacksClass: Heaps (exercises) Basic Definitions and Applications Graph Connectivity and Graph Traversal Class notes |
25
Turner College Welcome Back Event Noon - 2:00 PM (SCCT 2nd Floor Lobby)
|
26
Before Class:
3.4 Testing Bipartiteness: An Application of Breadth-First Search 3.5 Connectivity in Directed GraphsClass: Basic Definitions and Applications Graph Connectivity and Graph Traversal Graph Traversals (exercises) Testing Bipartiteness Connectivity in Directed Graphs |
27
|
28
|
|
31
Before Class:
3.6 Directed Acyclic Graphs and Topological OrderingClass: DAGs and Topological Ordering (exercises) Topological Sorting Algorithm: Running Time |
| Monday | T | Wednesday | R | F |
|---|---|---|---|---|
|
1
|
Module 3: Greedy Algorithms
2
Before Class:
4.1 Interval Scheduling: The Greedy Algorithm Stays Ahead 4.2 Scheduling to Minimize Lateness: An Exchange Argument Chapter 4: Greedy Algorithms (optional)Class: Interval Scheduling (Earliest Finish Time First Demo, Earliest Start Time First Demo) Interval Partitioning (Intuition) Scheduling to Minimize Lateness |
3
|
4
|
|
|
7
Labor Day (no class)
|
8
|
9
Before Class:
4.3 Optimal Caching: A More Complex Exchange Argument 4.4 Shortest Paths in a GraphClass: Optimal Caching Dijkstra's Algorithm (Demos) |
10
|
11
|
|
14
Before Class:
4.5 The Minimum Spanning Tree Problem 4.6 Implementing Kruskal's Algorithm: The Union-Find Data Structure (optional)Class: Certificates Survey Dijkstra's Algorithm Minimum Spanning Trees (Prim's and Kruskal's Demo) Union-Find Data Structure (Class Notes) |
15
|
16
Before Class:
4.7 Clustering 4.8 Huffman Codes and Data Compression (optional)Class: Clustering Exam 1 Preparation Game (Modules 0 - 3) (on Teams) (topics) |
17
|
18
|
|
Module 4: Divide and Conquer
21
Before Class:
5.1 A First Recurrence: The Mergesort Algorithm Section 1.4 Mergesort (optional) 5.2 Further Recurrence RelationsClass: Recurrence of Mergesort (Merge Demo) Master Theorem |
22
|
23
Before Class:
Section 1.8: Linear-Time Selection (optional) 5.3 Counting Inversions 5.4 Finding the Closest Pair of PointsClass: Master Theorem Randomized Quickselect Counting Inversions Finding the Closest Pair of Points (exercise) Due: |
24
Turner College Career Fair 11 am - 2 pm Rec Center
|
25
|
|
28
Before Class:
5.5 Integer Multiplication 5.6 Convolutions and the Fast Fourier Transform (optional)Class: Finding the Closest Pair of Points (exercise) Integer Multiplication Exam 1 Preparation Game (Module 4) (on Teams) (topics) Due: |
29
|
30
|
| Monday | T | Wednesday | R | F |
|---|---|---|---|---|
|
1
|
2
|
|||
|
Module 5: Dynamic Programming
5
Before Class:
6.1 Weighted Interval Scheduling: A Recursive Procedure 6.2 Principles of Dynamic Programming: Memoization or Iteration over Subproblems Chapter 3: Dynamic Programming (optional)Class: Recap Exam 1 Advanced Algorithm Research Project Introduction Fibonacci Sequence Demo Dynamic Programming Intro |
6
|
7
Before Class:
6.3 Segmented Least Squares: Multi-way Choices 6.4 Subset Sums and Knapsacks: Adding a VariableClass: Segmented Least Squares (code) Subset Sums and Knapsacks (code 1, code 2) |
8
|
9
|
|
12
Before Class:
6.5 RNA Secondary Structure: Dynamic Programming over Intervals 6.6 Sequence Alignment 6.7 Sequence Alignment in Linear Space via Divide and ConquerClass: Subset Sums and Knapsacks (code 1, code 2) RNA Secondary Structure Sequence Alignment Due: |
13
|
14
Before Class:
6.8 Shortest Paths in a Graph Chapter 8: Shorts Paths (optional) 6.9 Shortest Paths and Distance Vector ProtocolsClass: Shortest Paths (exercises) |
15
|
16
|
|
19
Before Class:
6.10 Negative Cycles in a GraphClass: Shortest Paths (exercises) Negative Cycles in a Graph (exercises) Due: |
20
|
Module 6: Network Flow
21
Before Class:
7.1 The Maximum-Flow Problem and the Ford-Fulkerson Algorithm 7.2 Maximum Flows and Minimum Cuts in a Network 7.3 Choosing Good Augmenting Paths Chapter 10: Maximum Flows and Minimum Cuts (optional)Class: Maximum-Flow Problem Ford–Fulkerson (Exercises) Maximum Flows and Minimum Cuts (Exercises) |
22
|
23
|
|
26
Seniors can Register
Before Class: 7.4 The Preflow-Push Maximum-Flow Algorithm 7.5 A First Application: The Bipartite Matching Problem Chapter 11: Applications of Flows and Cuts (optional)Class: Maximum Flows and Minimum Cuts (Exercises) Capacity Scaling Algorithm (Exercises) Bipartite Matching |
27
Juniors can Register
|
28
Sophomores can Register
Before Class: 7.6 Disjoint Paths in Directed and Undirected Graphs 7.7 Extensions to the Maximum-Flow ProblemClass: Disjoint Paths Extensions to Max Flow |
29
Freshman can Register
|
30
|
| Monday | T | Wednesday | R | F |
|---|---|---|---|---|
|
2
|
3
|
4
Before Class:
7.10 Image Segmentation 7.11 Project Selection 7.12 Baseball EliminationClass: Image Segmentation Project Selection Baseball Elimination |
5
|
6
|
|
Module 7: Intractability
9
Before Class:
8.1 Polynomial-Time Reductions 8.2 Reductions via Gadgets: The Satisfiability Problem 8.3 Efficient Certification and the Definition of NP Chapter 12: NP-Hardness (optional)Class: Poly-Time Reductions Packing and Covering Problems Reductions via Gadgets: The Satisfiability Problem Efficient Certification and the Definition of NP |
10
|
11
Before Class:
8.4 NP-Complete Problems 8.5 Sequencing ProblemsClass: Course Evaluation Surveys Bonus Credit Explanation NP-Complete Problems Sequencing Problems Due: |
12
|
13
|
|
16
Before Class:
8.6 Partitioning Problems 8.7 Graph ColoringClass: Partitioning Problems Graph Coloring Exam 2 Preparation Game (on Teams) (topics) |
17
|
18
|
19
|
20
|
|
23
Thanksgiving Break
|
24
Thanksgiving Break
|
25
Thanksgiving Break
|
26
Thanksgiving Break
|
27
Thanksgiving Break
|
|
Last Day of Lecture
30
Course Evaluation Survey Closes
Before Class: Class: Advanced Algorithm Research Project Presentations |
| Monday | T | Wednesday | R | F |
|---|---|---|---|---|
|
Study Day
1
Due:
Course Evaluation Surveys (submit evidence in CougarVIEW) |
Final Exam Time
2
Class:
Advanced Algorithm Research Project Presentations (4:15 – 6:15 PM) |
3
|
4
|
Read sections in Algorithm Design
Read sections in Algorithms (optional)