CS331: Algorithms and Complexity, Spring 2024

Logistics: Lecture: Tue/Thu 2:00 - 3:30, JGB 2.218
Discussion section: Fri 10:00-11:00 / 11:00-12:00
Course web page: http://www.cs.utexas.edu/~ecprice/courses/331/sp24/
Unique number: 50960, 50965
Professor: Eric Price
Email: ecprice@cs.utexas.edu
Office: GDC 4.510
Office Hours: 3:30-4:30pm Tuesday (probably)
TAs: Matjaž Leonardis
Email: matjaz@cs.utexas.edu
Office Hours: See Piazza

Daniel Yang
Email: daniel_yanger@utexas.edu
Office Hours: See Piazza

Jeriah Yu
Email: jeriah@cs.utexas.edu
Office Hours: See Piazza

Text: We will use Algorithms by Jeff Erickson. The textbook is available for free online at the given link, but you can purchase a paperback version as well. You can use prior years' websites (2022, 2020) to preview (mostly) what's coming up.
Course Notes: 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. The class will also follow Jeff Erickson's book.
DateTopicCorresponding book chaptersHomework
January 16MultiplicationChapter 0 and Chapter 1
January 18RecursionChapter 2HW 1
January 23Fibonacci NumbersChapter 3
January 25Dynamic ProgrammingHW 2 (Jupyter notebook)
January 30DP Exercises
February 1More DPHW 3 (Jupyter notebook)
February 6Final DP
February 8Greedy algorithmsChapter 4HW 4 (Jupyter notebook)
February 13Stable marriage
February 15Greedy/DP ExercisesHW 5
February 20Graph SearchingChapter 5
February 22Test 1
February 27Graph Reductions
February 29DFS and topological sortChapter 6HW 6 (Jupyter notebook)
March 5Minimum spanning treesChapter 7
March 7Shortest PathsChapter 8HW 7
(Spring break)
March 19Shortest Path exercises
March 21A* search and all-pairs shortest pathHW 8 (Jupyter notebook)
March 26Network flowChapter 10
March 28Bipartite MatchingChapter 11HW 9 (Jupyter notebook)
April 2Network flow exercises
April 4Test 2HW 10
April 9Linear ProgrammingAppendix H
April 11LP DualityHW 11 (Jupyter notebook)
April 16Complexity theoryChapter 12
April 18NP HardnessHW 12
April 23More NP Hardness
April 25Larger complexity classes and computabilitySupplemental chapter 7
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: February 22 in class
  • Exam 2 : April 4 in class
  • Final exam in standard final exam period: Friday, May 3, 10:30 am-12:30 pm in UTC 2.112A.
Homework
policy:

There will be a homework assignment every week. Your lowest homework grade will be dropped.

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
Disabilites:
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.