Algorithms and Complexity
CS 331, Fall 2026

Description

This course is a comprehensive introduction to the design and analysis of algorithms. Our goal is to investigate strategies for answering: how efficiently can we complete a given computational task? After this course, students should be equipped to tackle this question for a wide range of fundamental tasks arising in the practice of computer science.

The first three units of this course cover common algorithmic paradigms, familiarizing students with the principles of recursion, dynamic programming, and greedy algorithms. The next three units introduce toolkits for designing graph algorithms, continuous algorithms, and randomized algorithms, emphasizing real-world applications. The last unit, complexity theory, develops techniques for reasoning about fundamental limits on computational efficiency.

Course information: Here.

Time and location: 2:00 to 3:30 PM, Mondays and Wednesdays (GDC 1.304).

Instructor: Kevin Tian, kjtian (at) cs (dot) utexas (dot) edu
Office hours: 3:30 to 5:00 PM, Mondays (GDC 4.720)

TA: Hubert Yang
Discussion section: 1:00 to 2:00 PM, Fridays (CBA 4.344)
Office hours: TBD (GDC 4th floor bridge)

TA: Nathan Mardanov
Discussion section: 12:00 to 1:00 PM, Fridays (CBA 4.330)
Office hours: 11:00 AM to 12:00 PM, Wednesdays (GDC 4th floor bridge)


Assignments

Assignments will be posted below when they become available.


Syllabus

Dates Topic Notes Announcements
BackgroundReading
Week 1  ·  Aug. 24–28
8/24 LectureRecursion
8/24 Mini-lectureProofs
8/26 LectureRecursion
8/26 Mini-lectureAsymptotics
8/28 Mini-lectureData structures
Week 2  ·  Aug. 31–Sept. 4
8/31 LectureRecursion QuizWeek 1
9/2 LectureDynamic programming
Week 3  ·  Sept. 7–11
9/7 Labor Day (no class)
9/9 LectureDynamic programming HWHW 1 due
9/9 Mini-lectureGraphs
Week 4  ·  Sept. 14–18
9/14 LectureDynamic programming QuizWeeks 2–3
9/16 LectureDynamic programming
Week 5  ·  Sept. 21–25
9/21 LectureGreedy algorithms QuizWeek 4
9/23 LectureGreedy algorithms
Week 6  ·  Sept. 28–Oct. 2
9/28 LectureGreedy algorithms QuizWeek 5HWHW 2 due
9/30 MidtermMidterm 1 (in class)
Week 7  ·  Oct. 5–9
10/5 LectureGraph algorithms
10/7 LectureGraph algorithms
Week 8  ·  Oct. 12–16
10/12 LectureGraph algorithms QuizWeek 7
10/14 LectureGraph algorithms
10/14 Mini-lectureProbability
Week 9  ·  Oct. 19–23
10/19 LectureContinuous algorithms QuizWeek 8HWHW 3 due
10/21 LectureContinuous algorithms
10/21 Mini-lectureLinear algebra
Week 10  ·  Oct. 26–30
10/26 LectureContinuous algorithms QuizWeek 9
10/28 LectureContinuous algorithms
Week 11  ·  Nov. 2–6
11/2 LectureRandomized algorithms QuizWeek 10HWHW 4 due
11/4 LectureRandomized algorithms
Week 12  ·  Nov. 9–13
11/9 LectureRandomized algorithms QuizWeek 11
11/11 MidtermMidterm 2 (in class)
Week 13  ·  Nov. 16–20
11/16 LectureComplexity theory
11/18 LectureComplexity theory HWHW 5 due
Week 14  ·  Nov. 23–27
11/23 Thanksgiving (no class)
11/25 Thanksgiving (no class)
Week 15  ·  Nov. 30–Dec. 4
11/30 LectureComplexity theory QuizWeek 13
12/2 LectureComplexity theory
Week 16  ·  Dec. 7
12/7 LectureComplexity theory HWHW 6 due
TBD Final exam

External resources

Linear Algebra Done Right (Axler). Available here.
Introduction to Algorithms (Cormen, Leiserson, Rivest, and Stein). Available here.
Algorithms (Erickson). Available here.
Patterns, Predictions, and Actions (Hardt and Recht). Available here.
Mathematics for Computer Science (Lehman, Leighton, and Meyer). Available here.
Algorithms (Kleinberg and Tardos). Available physically through the UT library.
Algorithms Illuminated (Roughgarden). Available for purchase here.

Feedback

Please provide feedback on lectures or notes using the provided links.