# 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/)
