# CS 577: Introduction to Algorithms Source: https://wisconsin.twango.dev/fa26-cs577/README # CS 577: Introduction to Algorithms Fall 2026 · UW–Madison Study of algorithm design and analysis, from efficient problem-solving strategies to the limits of computation. ## Topics - Greedy algorithms, divide and conquer, and dynamic programming - Flow problems and reductions - Randomized algorithms - Computational intractability, P vs NP, and NP-completeness ## Notes - [[course-details|Syllabus and Course Details]] - [[lectures/index|Lectures]] - [[lectures/lecture-04|Dynamic Programming unit map]] — foundations, then [[lectures/lecture-05|Lecture 5: DP Choices]] and [[lectures/lecture-06|Lecture 6: Strings and Trees]], with recording explanations. - [[lectures/lecture-07|Lecture 7: BFS and DFS]] — September 24. - [[lectures/lecture-08|Lecture 8: Bellman–Ford and Shortest Paths in DAGs]] — October 1. - [[lectures/lecture-10|Lecture 10: Dijkstra’s Algorithm]] — October 6. - [[lectures/lecture-11|Lecture 11: All-Pairs Shortest Paths and Johnson’s Algorithm]] — October 8. - [[lectures/lecture-12|Lecture 12: Minimum Spanning Trees]] — October 13. - [[lectures/lecture-13|Lecture 13: Greedy Algorithms and Interval Scheduling]] — October 15. - [[lectures/lecture-14|Lecture 14: Ford–Fulkerson and Maximum Flow]] — October 20. - [[lectures/lecture-15|Lecture 15: Applications of Maximum Flow]] — October 22. - [[lectures/lecture-16|Lecture 16: Linear Programming and Duality]] — October 27; enrichment. - [[homework/index|Homework]] - [[homework/hw2|Homework 2: Dynamic Programming]] — due September 24, 2026. - [[homework/hw3|Homework 3: Graph Search and Shortest Paths]] — due October 13, 2026; includes collapsed instructor solutions. - [[homework/hw4|Homework 4: Graph Search, MSTs, and Greedy Algorithms]] — due October 22, 2026; includes instructor solutions. - [[homework/hw5|Homework 5: Flow Reductions and Ford–Fulkerson]] — due November 3, 2026. - [[discussions/index|Discussions]] - [[discussions/discussion-01|Discussion 1: Majority Element]] — includes collapsed instructor answers. - [[discussions/discussion-03|Discussion 3: Bipartite Graph Detection with BFS]] — includes collapsed instructor answers. - [[discussions/discussion-04|Discussion 4: Shortest Paths and Spanning Trees]] — October 7; includes collapsed instructor answers. ## Exams - [[exams/midterm-2/study-guide|Midterm 2: Learn from Zero]] — start with graph basics, then shortest paths, MSTs, greedy proofs, and flow reductions; includes worked diagrams and closed-note checkpoints. - [[exams/midterm-2/index|Midterm 2 information, practice exam, and instructor solutions]] — exam logistics, coverage, 11 primary practice problems, and a separate four-problem instructor set. - [[exams/midterm-1/sample-1/index|Fall 2026 Midterm 1: actual exam with instructor solutions]] — answers collapsed beneath each question and subpart. - [[exams/midterm-1/study-guide|Midterm 1: Learn, Practice, Recall]] — start here for a two-day guided workbook with worked examples and self-checks. - [[exams/midterm-1/review|Midterm 1 comprehensive review]] — topic reference and additional practice routes. - [[exams/midterm-1/dp-from-zero|Dynamic Programming from Zero]] — a first worked example, from state to proof. - [[exams/midterm-1/practice/index|Practice and relearning]] — 30 topic exercises and a 6-question mixed set. - [[exams/midterm-1/index|Midterm 1 practice exam with instructor answers]] — 12 Scantron questions and 13 written problems; answers collapsed for self-testing. ## Resources - [Jeff Erickson's Algorithms](https://jeffe.cs.illinois.edu/teaching/algorithms/) - [Discrete mathematics review](https://pages.cs.wisc.edu/~hasti/cs240/readings/)