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; Array-based 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
eecs281admin@umich.edu