Useful Resources
- Illinois course materials
-
Lecture notes, lecture videos, slides, lab handouts, homeworks, and exams are available for several past semesters of algorithms classes at Illinois. The TV emoji 📺 indicates classes with freely available lecture videos.
- Jeff's Algorithms textbook and other course materials. Direct links to relevant chapters for each lecture are posted on the schedule page.
- Sariel Har-Peled's algorithms notes
- CS 374 (section A unless indicated otherwise):
- 🦠 Spring 2020 — Timothy Chan and Ruta Mehta
- 🦠 Spring 2020 (section B) — Andrew Miller and Haitham Hassanieh
- Fall 2020 — Andrew Miller, Sariel Har-Peled, and Nickvash Kani
- Spring 2021 — Chandra Chekuri, Nickvash Kani, Patrick Lin, and Yi Lu
- 📺 Fall 2021 — Dakshita Khurana and Jeff Erickson
- Spring 2022 — Timothy Chan and Ruta Mehta
- Fall 2022 — Sariel Har-Peled
- Spring 2023 — Chandra Chekuri
- 📺 Fall 2023 — Jeff Erickson
- Spring 2024 — Timothy Chan and Ruta Mehta
- Fall 2024 — Sariel Har-Peled
- Spring 2025 — Chandra Chekuri and James Hulett
- 📺 Fall 2025 — Emily Fox and Jeff Erickson
- CS 473:
- 🦠📺 Spring 2020 — Jeff Erickson
- Fall 2020 — Michael Forbes and Chandra Chekuri
- Spring 2021 — Ruta Mehta
- 📺 Fall 2021 — Sariel Har-Peled and Bhaskar Chaudhury
- Spring 2022 — Michael Forbes
- 📺 Fall 2022 — Jeff Erickson
- Spring 2023 — Timothy Chan
- Fall 2023 — Sariel Har-Peled
- Spring 2024 — Michael Forbes
- 📺 Fall 2024 — Jeff Erickson and Makrand Sinha
- Spring 2025 — Timothy Chan
- Fall 2025 — Makrand Sinha
- Elsewhere
-
It has sadly become much less common for instructors to maintain course materials on the open web. Most instructors (or perhaps more accurately, most universities) either lock their course materials inside walled gardens (“learning management systems”) or simply delete them when the course is over. Here are some useful exceptions.
-
Berkeley (current semester only ☹️)
-
Maryland (Spring 2025, Fall 2024, Spring 2024, Fall 2023, Summer 2023, Fall 2022,Spring 2022, Fall 2021, archive)
-
Michigan (current semester only ☹️)
-
MIT (Spring 2020, Spring 2015, Fall 2011, Spring 2008, Fall 2005, archive)
-
Stanford (current semester only ☹️)
-
Washington (extensive archive)
-
UC Davis — videos on iTunes
- Algorithm Design and Analysis (undergraduate), taught by Dan Gusfield
- Design and Analysis of Algorithms (graduate), taught by Charles Martel
-
- MOOCs
-
Coursera, EdX and Udacity all offer complete algorithms courses, with videos, readings, and automatically graded exercises. By necessity, these courses tend to focus more on implementation and less on proofs and open-ended design than either CS 374 or CS 473.
- Udacity MOOCs are always freely available.
- Courses from Georgia Tech's Online Master of Computer Science program:
- Computability, Complexity & Algorithms, taught by Charles Brubaker and Lance Fortnow
- Introduction to Graduate Algorithms, taught by Eric Vigoda and Arpan Chakraborty
- Algorithms, taught by Michael Littman, loosely based on algorithms classes at Rutgers
- Data Structures & Algorithms in Python taught by Brynn Claypoole and Horatio Thomas at Google.
- Intro to Theoretical Computer Science, taught by Sebastian Wernicke, Sean Bennett, and Sarah Norell
- Courses from Georgia Tech's Online Master of Computer Science program:
- EdX MOOCs are available only for enrolled students when the class is in session.
- All EdX courses on “algorithms”
- MicroMasters Program in Algorithms and Data Structures, a series of eight MOOCs taught by Daniel Kane, Pavel Pevzner, and others, loosely based on courses at UC San Diego
- Algorithm Design and Analysis Part 1 and Part 2, taught by Tim Roughgarden, loosely based on algorithms courses at Stanford
- Advanced Algorithmics and Graph Theory with Python, taught by Vincent Gripon, Patrick Meyer, Nicolas Farrugia, Carlos Eduardo Rosar Kos Lassance, and Ghouti Boukli Hacene at Institut Mines-Télécom
- Algorithms, taught by Deepak Phatak, Nagesh Karmali, Ajit Diwan, and Ganesh Ramakrishnan at IIT Bombay
- Most Coursera classes require a $49/month subscription to access.
(Pfft. Please. One of the O's in "MOOC" is supposed to stand for "Open"!)
But there are a few exceptions:
- Algorithms Part 1 and Part 2, taught by Robert Sedgewick and Kevin Wayne, loosely based on undergraduate algorithms classes at Princeton
- Analysis of Algorithms, taught by Robert Sedgewick, loosely based on a more advanced class at Princeton
- The Coursera algorithms courses from Stanford and UCSD are avialable for free on EdX.
- Khan Academy also hosts a free series of algorithms tutorials by Tom Cormen and Devin Balkcom.
- Udacity MOOCs are always freely available.
- Free Online Textbooks
-
Hopefully this list will continue to grow.
- Recommended: Algorithms (and related course materials) by Jeff Erickson. Written largely for this course.
- Recommended: Introduction to Theoretical Computer Science by Boaz Barak. Non-standard but compelling introdution, using models of computation based on Boolean circuits instead of finite-state machines.
- Models of Computation by John E. Savage. See especially Chapter 4 and Chapter 5.
- Introduction to the Theory of Computation by Anil Maheshwari and Michiel Smid.
- Dead Trees
-
For students who prefer an offline reference made of bleached and stained cellulose, we recommend the following textbooks. The campus bookstore probably doesn't have them, but you can find them cheaper online anyway. And they're all in the library. You remember that big brick building with the coffee shop and the study tables in it? Yeah, believe it or not, they have actual books in the basement!
- You can buy paper copies of Jeff's book on Amazon, if you're into that sort of thing.
- Recommended: Algorithms by Sanjoy Dasgupta, Christos Papadimitriou, and Umesh Vazirani (McGraw-Hill, 2006). Based on the undergraduate algorithms course at Berkeley. Drafts of individual chapters (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10) are freely available. (Thanks, Umesh!)
- Introduction to Algorithms (4th edition) by Tom Cormen, Charles Leiserson, Ron Rivest, and Cliff Stein (MIT Press/McGraw-Hill, 2022). Based on algorithms classes at MIT, and thick enough to stun an ox. A significant fraction of (earlier editions of) this book has been transcribed into Wikipedia. Remarkably inexpensive for a 1300-page full-color textbook.
- There are several other algorithms and theory of computation textbooks we'd love to recommend, but not at the ridiculous prices that their publishers charge. Shame on you, Pearson. Fuck you, Cengage.
- Review
-
For review of prerequisite material, we strongly recommend the following online resources. (This stuff is also covered in several dead-tree textbooks, but really, why bother?)
- Building Blocks for Theoretical Computer Science by Margaret Fleck, written specifically for CS 173.
- Mathematics for Computer Science (local cache) by Eric Lehman, Tom Leighton, and Albert Meyer, written for the Mathematics for Computer Science course at MIT (Fall 2017).
- Open Data Structures by Pat Morin. This really ought to be a standard reference for CS 225.
- A Course in Data Structures and Object-Oriented Design by Don Sheehy. This really ought to be the other standard reference for CS 225.
- Other
-
We'll add more links here as we discover them. Suggestions are welcome!
- Tips to thrive in CS 374 by jfang00007 on Reddit /r/UIUC
- "When doing a whiteboard coding interview and you get stuck, is it okay to explain to the interviewer how you'd use Google to find an answer?" answered by Gayle Laakman McDowell on Quora.
- Algorithm is not a four-letter word by Jamis Buck
- Computer Science StackExchange
- How to rock an algorithms interview by Kevin Simler (formerly) at Palantir
- Reddit: Algorithms