|
Date | Topic and/or Event | Readings |
|
January 20 | Lecture 1: Introduction and Overview; Lab Meeting #0; Lab 0: Data Structures Refresher; In-class Introductory Topics Handout | Topic Notes: Introduction and Overview; Topic Notes: Fundamental Data Structures; Levitin Ch. 1 |
|
January 23 | Lecture 2: Bubble Sort; Counting Operations; GCD; Bubble Sort Introduction; Summations Practice | Levitin Ch. 2.3; Topic Notes: Counting Operations |
|
January 26 | Lecture 3: Graph Data Structures; In-class Graph Structures Intro Handout | Bailey Ch. 16.1-16.3 |
|
January 27 | Lecture 4: Lab Meeting #1; Lab 1: Counting Operations, Graphs (paper handout only) | |
|
January 30 | Lecture 5: Asymptotic Analysis; Analysis Practice | Topic Notes: Analysis Fundamentals; Levitin Ch. 2.1-2.2 |
|
February 2 | Lecture 6: Asymptotic Analysis | |
|
February 3 | Lecture 7: Lab Meeting #2; Lab 2: METAL Data and Analysis Practice (paper handout and shared document) | |
|
February 6 | Lecture 8: Brute-Force Algorithms; Brute Force Practice | Topic Notes: Brute-Force Algorithms; Levitin Ch. 3.1-3.4 |
|
February 9 | Lecture 9: Brute Force/Exhaustive Search; Exhaustive Search Practice | Topic Notes: Exhaustive Search |
|
February 10 | Lecture 10: Lab Meeting #3; Lab 3: Brute-Force Closest Pair (paper handout and shared document) | |
|
February 13 | Lecture 11: Brute-Force Convex Hull | |
|
February 16 | Lecture 12: Exam 1 Review | |
|
February 17 | Exam 1 During Lab Meeting Times | |
|
February 20 | No Class: SIGCSE 2026 | |
|
February 23 | Lecture 13: Decrease and Conquer Algorithms; Solving Recurrences; Decrease and Conquer Practice | Topic Notes: Decrease and Conquer Algorithms Levitin Ch. 4; Levitin Ch. 2.4; Topic Notes: Analysis with Recurrences |
|
February 24 | Lecture 14: Lab Meeting #4; Lab 4: Brute Force and Decrease and Conquer (paper handout only) | |
|
February 27 | Lecture 15: Decrease and Conquer Wrapup; Brute-Force Convex Hull Wrapup | |
|
March 2-6 | No Classes or Labs: Spring Break! | |
|
March 9 | Lecture 16: Decrease and Conquer Wrapup; Divide and Conquer Introduction; Source Removal Practice | Topic Notes: Divide and Conquer Algorithms; Levitin Ch. 5 |
|
March 10 | Lecture 17: Graph Traversals Intro; Lab Meeting #5; Lab 5: Recurrences Practice and Graph Traversals Intro (handout and shared document) | Levitin Ch. 3.5 |
|
March 13 | Lecture 18: More Divide and Conquer; Mergesort and Quicksort Pseudocode; Mergesort Practice; Quicksort Practice | |
|
March 16 | Lecture 19: More Divide and Conquer; Academic Showcase Project Introduction | |
|
March 17 | Lecture 20: Lab Meeting #6; Lab 6: Divide and Conquer (handout and continuing in shared document) | |
|
March 20 | Lecture 21: D&C Closest Pair | |
|
March 23 | Lecture 22: AVL Trees; 2-3 Trees;Balanced Trees Practice | Topic Notes: Balanced Trees; Levitin Ch. 6.3 |
|
March 24 | Lecture 23: Lab Meeting #7; Lab 7: Search Trees | |
|
March 27 | Lecture 24: Dynamic Programming; Dynamic Programming Practice | Levitin Ch. 8; Topic Notes: Dynamic Programming |
|
March 30 | Lecture 25: Exam Review; Dynamic Programming | |
|
March 31 | Exam 2 During Lab Meeting Times | |
|
April 3 and 6 | No Classes: Happy Easter! | |
|
April 7 | Lecture 26: Lab Meeting #8; Lab 8: Dynamic Programming | |
|
April 10 | Lecture 27: Hashing (Complete On Your Own, No Class Meeting) | Levitin Ch. 7.3; Topic Notes: Hashing |
|
April 13 | Lecture 28: Dynamic Programming Wrapup; Greedy Algorithms; Greedy Algorithms Practice; Warshall's and Floyd's Algorithms Practice | Topic Notes: Greedy Algorithms; Levitin Ch. 9 |
|
April 14 | Lecture 29: Lab Meeting #9; Lab 9: Prim's Algorithm, Dijkstra's Algorithm, Traversals | |
|
April 17 | Lecture 30: Greedy Algorithms; Dijkstra's Algorithm Handout; Heaps Practice | Levitin Ch. 6.4-6.5; Topic Notes: Heaps |
|
April 20 | Lecture 31: Using Hashing; Limitations of Algorithms: Lower Bounds; Revisiting Matching Across Two Arrays; Lower Bounds Handout | Levitin Ch. 11; Topic Notes: Limitations of Algorithms |
|
April 21 | Lecture 32: Lab Meeting #10; Lab 10: Backtracking | Levitin Ch. 12.1 |
|
April 24 | Lecture 33: Limitations of Algorithms: Decision Trees | |
|
April 27 | Lecture 34: Limitations of Algorithms: Problem Reduction; Problem Reductions Practice Handout | |
|
April 28 | Lecture 35: Lab Meeting #11 | |
|
May 1 | Academic Showcase, 1:45-2:45 PM, RB 340 - this is a required part of the course | |
|
May 4 | Lecture 36: P and NP; Wrapup | |
|
May 5 | Optional Review Session, 2-3 PM, RB 340 | |
|
May 6 | Final Exam, 8:30-10:30 AM, RB 340 | |
|
|