Prerecorded lecture material hosted at MiVideo
Data Structures and Algorithms in C++. Let's GO!
Lecture  Topic  Video Playlist 

Lecture 1  Stack, Queue, and Priority Queue ADTs  playlist 
Lecture 2  Complexity Analysis, Math Foundations  playlist 
Lecture 3  Measuring Performance and Analysis Tools  playlist 
Lecture 4  Recursion and the Master Theorem  playlist 
Lecture 5  Container Data Structures; Arraybased containers  playlist 
Lecture 6  The Standard Template Library  playlist 
Lecture 7  Heaps and Heapsort  playlist 
Lecture 8  Ordered Arrays and Related Algorithms  playlist 
Lecture 9  Elementary Sorts  playlist 
Lecture 10  Quicksort, including average case analysis  playlist 
Lecture 11  Mergesort  playlist 
Midterm Exam  
Lecture 12  Intro to Hashing  playlist 
Lecture 13  Hashing and Collision Resolution  playlist 
Lecture 14  Tree ADT, Searching in Trees  playlist 
Lecture 15  Binary Trees and Binary Search Trees; AVL Trees  playlist 
Lecture 16  (finishing trees, usually goes over 2 lectures)  N/A 
Lecture 17  Graph ADT, Review Algorithm Families  playlist 
Lecture 18  MST Algorithms  playlist 
Lecture 19  Algorithm Families  playlist 
Lecture 20  Backtracking and Branch & Bound (Traveling Salesperson Problem)  playlist 
Lecture 21  Dynamic Programming: Binomial Coefficients and Others  playlist 
Lecture 22  Knapsack Problem, Greedy Single Source Algorithms  playlist 
Extra Lectures (Time permitting) 
Strings and Sequences Computational Geometry 

Final Exam 
Course content and supplementary materials in video and PDF formats
Prerecorded lecture material hosted at MiVideo
Project and IDE tutorials plus lab videos and any livestreamed content
PDFs of PowerPoint slides shown in lectures
Overview of our beloved programming projects
The topics emphasized in each of the four projects remains the same from semester to semester, but the theme or story is selected from a rotating list of options.
Graph search and route tracing using breadth first search (BFS) and depth first search (DFS)
Using priority queues and implementing templated containers, inheritance and interface programming, streaming algorithms
Working with hash tables, managing and creating larger data structures through composition
Implementing optimization algorithms (eg. Traveling Salesperson and Knapsack)
mmdarden@umich.edu
hjgarcia@umich.edu
paoletti@umich.edu
rosendon@umich.edu