| M | Tuesday | W | Thursday | F |
|---|---|---|---|---|
|
10
|
Module 1: Computational Complexity & Recursion
11
Before Class:
Chapters 1, 2, 3 (if needed)Class: Introductions Syllabus Algorithm Analysis (exercises) Recursion (GCD.java, BinarySearch.java) Class Notes |
12
|
Module 2: Sorting Algorithms
13
Before Class:
Sections 4.0 Divide-and-Conquer introduction - 4.5 The master method for solving recurrences (if needed) Chapter 6 (if needed)Class: Divide and Conquer (exercises) Heaps (exercises) |
14
Deadline for full refund
|
|
17
|
18
Before Class:
Section 6.4 and Chapter 7 (if needed)Class: Sorting Algorithms (exercises) |
19
|
20
Before Class:
Chapters 8, 9 (if needed)Class: Sorting Algorithms (exercises) Tracing Sorting Algorithms (exercises) |
21
|
|
24
|
Module 3: Dynamic Data Structures & Hashing
25
Before Class:
Chapter 10 - Elementary Data StructuresClass: Sorting Algorithms (exercises) Stacks and Queues (exercises) Linked Lists (exercises) Class Notes |
26
|
27
Before Class:
Chapter 11 - HashingClass: Hashing (exercises) Due: |
28
|
|
31
|
| M | Tuesday | W | Thursday | F |
|---|---|---|---|---|
|
1
Black Box Society Interest Meeting, 12:15 PM, SCCT 233 (Interest Meeting, Discord/csuinvolve)
Before Class: Class: Hashing (exercises) Hash Table Team Research Project |
2
|
Module 4: Binary Search Trees
3
Before Class:
Chapter 12 - Binary Search TreesClass: Binary Search Trees (exercises) |
4
|
|
|
7
Labor Day (no classes)
|
Module 5: Dynamic Programming
8
Before Class:
Sections 14.0 Dynamic Programming introduction - 14.3 Elements of dynamic programming (31 pages)Class: Dynamic Programming
|
9
|
10
Before Class:
Section 14.4 Longest common subsequence (8 pages) (Optional) Section 14.5 Optimal binary search trees (6 pages)Class: Dynamic Programming
|
11
|
|
14
|
Module 6: Greedy Algorithms
15
Before Class:
Sections 15.0 Greedy Algorithms introduction - 15.2 Elements of the greedy strategyClass: Greedy Algorithms (exercises) |
16
|
17
Before Class:
Section 15.3 Huffman codes - 15.4 Offline caching Class: Greedy Algorithms (exercises) |
18
|
|
21
|
Module 7: Elementary Graph Algorithms
22
Before Class:
Sections 20.0 Elementary Graph Algorithms introduction - 20.1 Representations of graphsClass: Elementary Graph Algorithms (exercises) |
23
|
24
Turner College Career Fair 11 am - 2 pm Rec Center
Before Class: Sections 20.2 Breadth-first search - 20.3 Depth-first searchClass: Elementary Graph Algorithms (exercises) Due: |
25
|
|
28
|
29
Before Class:
Section 20.4 Topological sortClass: Elementary Graph Algorithms (exercises) |
30
|
| M | Tuesday | W | Thursday | F |
|---|---|---|---|---|
|
1
Before Class:
Section 20.5 Strongly connected componentsClass: Elementary Graph Algorithms (exercises) |
2
|
|||
|
5
|
Module 8: Minimum Spanning Trees
6
Before Class:
Chapter 21 - Minimum Spanning Trees (19 pages)Class: Spanning Trees (exercises) Minimum Spanning Trees ( |
7
|
8
|
9
|
|
12
|
13
|
14
|
Module 9: Single-Source Shortest Paths
15
Before Class:
Sections 22.0 Single-Source Shortest Paths Introduction - 22.2 Single-source shortest paths in directed acyclic graphs (17 pages)Class: Single-Source Shortest Paths (exercises) Due: |
16
|
|
19
|
20
Before Class: Section 22.3 Dijkstra's algorithm - 22.4 Difference constraints and shortest pathsClass: Single-Source Shortest Paths (LINK: exercises |
21
|
Module 10: Parallel Algorithms
22
Before Class:
Sections 26.0 Parallel Algorithms introduction - 26.1 The basics of fork-join parallelism (23 pages)Class: Parallel Algorithms (slides) Due: |
23
|
|
26
|
27
Before Class:
Section 26.2 Parallel matrix multiplication - 26.3 Parallel merge sort (13 pages)Class: Parallel Algorithms (slides) Due: |
28
|
Module 11: Linear programming
29
Before Class:
Sections 29.0 Linear Programming introduction - 29.2 Formulating problems as linear programs (17 pages)Class: Linear Programming (slides) |
30
|
| M | Tuesday | W | Thursday | F |
|---|---|---|---|---|
|
2
|
3
|
4
|
Module 12: NP-Completeness
5
Before Class:
Sections NP-Completeness introduction - 34.3 NP-completeness and reducibility (31 pages)Class: NP-Completeness (slides) |
6
|
|
9
|
10
Before Class:
Sections 34.4 NP-completeness proofs - 34.5 NP-complete problems (27 pages)Class: NP-Completeness (slides) Due: |
11
|
Module 13: Approximation Algorithms
12
Before Class:
Sections 35.0 Approximation Algorithms introduction - 35.3 The set-covering problem (17 pages)Class: Approximation Algorithms (slides) Due: |
13
|
|
16
|
17
Before Class:
Sections 35.4 Randomization and linear programming - 35.5 The subset-sum program (12 pages)Class: Approximation Algorithms (slides) Due: |
18
|
Last Day of Lecture
19
|
20
|
|
23
Thanksgiving Break
|
24
Thanksgiving Break
|
25
Thanksgiving Break
|
26
Thanksgiving Break
|
27
Thanksgiving Break
|
|
30
Course Evaluation Survey Closes
|
| M | Tuesday | W | Thursday | F |
|---|---|---|---|---|
|
Study Day
1
|
2
|
3
|
4
|
|
|
7
|
8
|
9
|
10
|
11
|
Read Chapter / Section(s) in Introduction to Algorithms, 4th Edition