- Illinois course materials
- Lecture notes, slides, lab handouts, homeworks, and exams are available for several past semesters of algorithms classes at Illinois. For each class, I've listed only the most recent iteration for each instructor, but several older semesters are also available.
- Course materials elsewhere
- Sadly, it has become significantly less common for instructors to post their lecture notes/slides, homeworks, lab handouts, and so on to the open web. Most(?) instructors either lock their course materials inside walled gardens (Piazza, Moodle, Stellar, etc.) or delete them entirely when the course is over. Here are some useful exceptions.
-
Toronto:
Course Notes for CSCB38/236/240 - Introduction to the theory of computation by Vassos Hadzilacos. Excellent coverage of regular langauges and expressions, DFAs and NFAs, and context-free langagues and grammars. Also includes an excellent review of induction, especially for proving correctness of algorithms.
-
MIT
(Fall 2005,
Spring 2008,
Fall 2011) — notes, videos, and problem sets
-
Berkeley
(Spring 2009,
Fall 2014)
— homeworks, occasional slides
-
CMU
(Spring 2013,
Fall 2013,
Spring 2014,
Fall 2014,
Spring 2015) — notes/slides only
-
Stanford (Summer 2013) — slides and problem sets
-
Washington (several quarters) — notes/slides, sporadic problem sets
- UC Davis (videos on iTunes):
- MOOCs
-
Both Coursera and Udacity are offering 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 CS 374 or 473. I have included only MOOCs with videos that are always freely available.
- Algorithms: Design and Analysis Part 1 and Part 2, taught by Tim Roughgarden, loosely based on algorithms classes at Stanford.
- Algorithms, taught by Michael Littman, loosely based on algorithms classes at Rutgers
- Intro to Theoretical Computer Science, taught by Sebastian Wernicke
- Algorithms, compiled by Bhanu Kapoor. Included for completeness, but good only for review of the most basic material.
- Textbooks
- For students who prefer an actual dead-tree reference, we recommend the following textbooks. The campus bookstore probably doesn't have them, but they're cheaper online anyway. I've asked Grainger Library to put copies of all these books on reserve.
-
Recommended:
Algorithm Design by Jon Kleinberg and Éva Tardos (Addison-Wesley, 2005). Based on algorithms classes at Cornell.
-
Algorithms by Sanjoy Dasgupta, Christos Papadimitriou, and Umesh Vazirani (McGraw-Hill, 2006). Based on the undergraduate algorithms course at Berkeley. A complete draft of the book is available online. This is the closest traditionally published approximation to the old CS 473 and the algorithms portion of CS 374.
-
Introduction to Algorithms (3rd edition) by Thomas H. Cormen, Charles Leiserson, Ronald L. Rivest, and Clifford Stein (MIT Press/McGraw-Hill, 2009). Based on algorithms classes at MIT. The first and second editions are also fine. A significant fraction of this book has been transcribed into Wikipedia.
-
Algorithms (5th edition) by Robert Sedgewick and Kevin Wayne (Addison-Wesley, 2011). Based on algorithms classes at Princeton. Focuses on more elementary material (taught in CS 225), with more emphasis on implementation and application than open-ended design and analysis. A crippled electronic version is available through the University library (sorry, only for Illinois folks).
- 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?)
- Programming contests
- ...which (at least at the advanced levels) are really algorithm design contests where you also happen to write some code.
- Other
-
We'll add more links here as we discover them. Suggestions are welcome!