Date | Topic and/or Event | Readings |
January 17 | Lecture 1: Introduction and Overview; Lab 0: Data Structures Refresher | Topic Notes: Introduction and Overview; Topic Notes: Fundamental Data Structures; Levitin Ch. 1 |
January 19 | Lecture 2: Bubble Sort; Counting Operations; GCD; Summations Practice | Levitin Ch. 2.3; Topic Notes: Counting Operations |
January 22 | Lecture 3: Graph Data Structures | Topic Notes: Fundamental Data Structures: Graphs; Bailey Ch. 16.1-16.3 |
January 24 | Lecture 4: Lab Meeting #1; Lab 1: Counting Operations, Graphs (paper handout only) | Knuth article: NYT Site or Library Archive also in Canvas |
January 26 | Lecture 5: Asymptotic Analysis; Analysis Practice | Topic Notes: Analysis Fundamentals; Levitin Ch. 2.1-2.2 |
January 29 | Lecture 6: Asymptotic Analysis | |
January 31 | Lecture 7: Lab Meeting #2; Lab 2: METAL Data and Analysis Practice (paper handout and shared document) | |
February 2 | Lecture 8: Brute-Force Algorithms; Brute Force Practice | Topic Notes: Brute-Force Algorithms; Levitin Ch. 3 |
February 5 | Lecture 9: Brute Force/Exhaustive Search; Exhaustive Search Practice | |
February 7 | Lecture 10: Lab Meeting #3; Lab 3: Brute-Force Closest Pair (paper handout and shared document) | |
February 9 | Lecture 11: Brute-Force Convex Hull | |
February 12 | Lecture 12: Decrease and Conquer Algorithms; Recurrences; Decrease and Conquer Practice | Topic Notes: Decrease and Conquer Algorithms; Levitin Ch. 2.4, 4 |
February 14 | Lecture 13: Lab Meeting #4; Lab 4: Brute Force and Decrease and Conquer (paper handout only) | |
February 16 | Lecture 14: Solving Recurrences | |
February 19 | Lecture 15: Decrease and Conquer Wrapup; Review | |
February 21 | Exam 1 During Lab Meeting Times (alternate time: 2 hours between Noon and 3 on Tuesday 2/20) | |
February 23 | No Class: February Break | |
February 26 | Lecture 16: Decrease and Conquer Wrapup; Divide and Conquer Introduction | Topic Notes: Divide and Conquer Algorithms; Levitin Ch. 5 |
February 28 | Lecture 17: Exam 1 Recap; Graph Traversals Intro; Lab Meeting #5; Lab 5: Graph Traversals (shared document only) | |
March 1 | Lecture 18: Divide and Conquer Closest Pair | |
March 4 | Lecture 19: More Divide and Conquer; Academic Showcase Project: [HTML] [PDF] Introduction | |
March 6 | Lecture 20: Quicksort Wrapup; Lab Meeting #6; Lab 6: Recurrences and Divide and Conquer | |
March 8 | Lecture 21: Lab 6 Wrapup; AVL Trees | Topic Notes: AVL Trees |
March 11 | Lecture 22: AVL Trees; 2-3 Trees | Topic Notes: 2-3 Trees; Levitin Ch. 6.3 |
March 13 | Lecture 23: Lab Meeting #7; Lab 7: Search Trees | |
March 15 | Lecture 24: Dynamic Programming | Levitin Ch. 8; Topic Notes: Dynamic Programming |
March 18 | Lecture 25: Dynamic Programming | |
March 20 | Exam 2 During Lab Meeting Times | |
March 22 | Lecture 26: (Virtual Lecture) Hashing | Levitin Ch. 7.3; Topic Notes: Hashing |
March 25-April 1 | No Classes or Labs: Happy Easter! | |
April 3 | Lecture 27: Lab Meeting #8; Lab 8: Dynamic Programming | |
April 5 | Lecture 28: Greedy Algorithms | Topic Notes: Greedy Algorithms; Levitin Ch. 9 |
April 8 | No Class: Eclipse Day! Get in the Shadow! Work on your Problem Sets! | Levitin Ch. 6.4-6.5; Topic Notes: Heaps |
April 10 | Lecture 29: Lab Meeting #9; Lab 9: Prim's Algorithm, Dijkstra's Algorithm, Traversals | |
April 12 | Lecture 30: Greedy Algorithms Wrapup | Topic Notes: Dijkstra's Algorithm Handout; |
April 15 | Lecture 31: Backtracking | Levitin Ch. 12.1 |
April 17 | Lecture 32: Lab Meeting #10; Lab 10: Backtracking | |
April 19 | Lecture 33: Limitations of Algorithms | Levitin Ch. 11; Topic Notes: Limitations of Algorithms |
April 22 | Lecture 34: Limitations of Algorithms | |
April 24 | Lecture 35: Lab Meeting #11 | |
April 26 | Academic Showcase: 1:45-2:45, RB 340 - this is a required part of the course | |
April 29 | Lecture 36: P and NP; Wrapup | |
May 1 | Final Exam, 4-6 PM, RB 340 | |
|