EECS 281: Data Structures and Algorithms

The University of Michigan

Data Structures and Algorithms in C++. Let's GO!

Syllabus

Current EECS 281 Students

Get course resources and info on Canvas

Schedule

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

playlist

playlist

Final Exam

Videos & Slides

Course content and supplementary materials in video and PDF formats

Projects

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.

Project 1

Graph search and route tracing using breadth first search (BFS) and depth first search (DFS)

Themes
Word Morphing, Pirate Treasure Cartography, Football Recruiting, 2D and 3D environments and puzzles
Project 2

Using priority queues and implementing templated containers, inheritance and interface programming, streaming algorithms

Themes
Zombie Tower Defense, Stock Trading, Star Wars Battles
Project 3

Working with hash tables, managing and creating larger data structures through composition

Themes
Logfile Management, Database Query Language
Project 4

Implementing optimization algorithms (eg. Traveling Salesperson and Knapsack)

Themes
Donut Delivery, Pokemon Hunting, Vote Counting, Campus Travel

People

Reach us at eecs281admin@umich.edu

Marcus Darden head shot
Marcus Darden
Faculty

mmdarden@umich.edu

Hector Garcia head shot
Hector Garcia
Faculty

hjgarcia@umich.edu

David Paoletti head shot
David Paoletti
Faculty

paoletti@umich.edu

Rose Sherry head shot
Rose Sherry
Administrative

rosendon@umich.edu