CS331: Algorithms and Complexity, Spring 2022

Logistics: Lecture: Mon/Wed 2:00 - 3:30, GDC 1.304
Discussion section: Fri 10:00 - 11:00 ECJ 1.308, 11:00 - 12:00 GAR 2.112
Course web page: http://www.cs.utexas.edu/~ecprice/courses/331/sp22/
Unique number: 51320 / 51325
Professor: Eric Price
Email: ecprice@cs.utexas.edu
Office: GDC 4.510
Office Hours: 3:30-4:30pm Monday (over class Zoom while class is on Zoom)
TA: Matjaz Leonardis
Email: matjaz@cs.utexas.edu
Office Hours: TBA
Course Notes: The class will follow Jeff Erickson's book. Lecture notes will be provided after class, but you should keep your own notes: topics will be covered in more detail in class than in the posted notes. If you would like to read ahead, the notes on the 2020 version of the class can be helpful.
DateTopicCorresponding book chaptersProblem set
Jan 19 Multiplication (recording) Chapter 0 and Chapter 1 PS1 due Jan 26
Jan 24 Recursion (recording) Chapter 2
Jan 26 Fibonacci Numbers (recording) Chapter 3 PS2 (Jupyter) due Feb 2
Jan 31 Dynamic programming (recording)
Feb 2 DP exercises PS3 (Jupyter) due Feb 9
Feb 7 More DP
Feb 9 Final DP PS4 (Jupyter) due Feb 16
Feb 14 Greedy algorithms Chapter 4
Feb 16 Stable marriage
Feb 21 Greedy/DP exercises
Feb 23 Test 1
Feb 28 Graph searching Chapter 5
Mar 2 Graph reductions PS5 (Jupyter) due Mar 9
March 7 DFS and topological sort Chapter 6
March 9 Minimum spanning trees: Boruvka, Kruskal, Prim Chapter 7 PS6 due Mar 23
Spring break
March 21 Shortest Paths: Bellman-Ford, Dijkstra Chapter 8
March 23 Shortest Path Exercises PS7 due Mar 30
March 28 A* search and all-pairs shortest path
March 30 Network Flow Chapter 10 PS8 (Jupyter) due April 6
April 4 Bipartite Matching
April 6 Applications of Network Flow Chapter 11 PS9 (Jupyter) due April 15
April 11 Network flow review, min cost matchings
April 13 Test 2
April 18 Linear programming Appendix H
April 20 Linear programming duality PS10 (Jupyter) due April 27
April 25 Complexity theory Chapter 12
April 27 NP-hardness reductions PS11 due May 6
May 2 Larger complexity classes and computability Supplemental chapter
May 2-4 Take-home final
May 4 Approximation algorithms Supplemental chapter
Content: This undergraduate course will cover the basics of algorithms and complexity, including dynamic programming, greedy algorithms, graph algorithms, linear programming, and NP-hardness.
Prerequisites: The following coursework with a grade of at least C-: CS 311, 311H, 313H, or 313K; CS 307, 314, 314H, 315, or 315H; CS 310, 310H, 429, or 429H; M362K or SSC321; and credit with a grade of at least C- or registration for M340L or SSC329C.
Grading: 50%: Homework
30%: Two in-class exams
20%: Final exam
Key dates:
  • Exam 1: Wednesday, February 23.
  • Exam 2: Wednesday, April 13.
  • Final exam: take-home before last class.
Text: The course will generally follow Jeff Erickson's book, which is freely available online.

There will be a homework assignment every week.

Collaboration policy: You are encouraged to collaborate on homework. However, you must write up your own solutions. You should also state the names of those you collaborated with on the first page of your submission.

Late policy: Late submissions without warning are not accepted. Every student may take (with prior notice by email) one day late over the course of the semester. Further flexibility may be available on a case-by-case basis.

Students with
Any student with a documented disability (physical or cognitive) who requires academic accommodations should contact the Services for Students with Disabilities area of the Office of the Dean of Students at 471-6259 (voice) or 471-4641 (TTY for users who are deaf or hard of hearing) as soon as possible to request an official letter outlining authorized accommodations.
Additional Class Policies

You should read the CS Department Code of Conduct. The policies described there will be followed in this class.