CS331H: Algorithms and Complexity (Honors), Spring 2021

Logistics: Lecture: Tue/Thu 2:00 - 3:30 Zoom link.
Discussion section: Fri 10:00-11:00 / 11:00-12:00
Course web page: http://www.cs.utexas.edu/~ecprice/courses/331h/
Unique number: 52420, 52425
Professor: Eric Price
Email: ecprice@cs.utexas.edu
Office Hours: 3:30-4:30pm Tuesday
Text: We will use Algorithms by Jeff Erickson. The textbook is available for free online at the given ling, but you can purchase a paperback version as well.
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.
DateTopicZoomCorresponding book chaptersProblem set
Jan 19 Multiplication Video Chapter 0 and Chapter 1
Jan 21 Fibonacci numbers Video PS1 due Jan 28 (notebook)
Jan 26 Recursion and Dynamic programming Video Chapter 3
Jan 28 More DP Video PS2 due Feb 4
Feb 2 More DP: Longest Increasing Subsequence Video
Feb 4 DP Exercises Video PS3 due Feb 11 (notebook)
Feb 9 DP: Knapsack Video
Feb 11 Greedy: interval scheduling Video Chapter 4 PS4 due Mar 2 (notebook)
Feb 23 Stable Marriage (optional) Video
Feb 25 Greedy/DP exercises Video
Mar 2 Graphs: Search Video Chapter 5
Mar 4 Test
Mar 9 Graph reduction exercises Video PS5 due March 25 (notebook)
Mar 11 DFS Video Chapter 6
Mar 23 Min Spanning Tree Video: see Piazza Chapter 7
Mar 25 Shortest Paths: Bellman-Ford, Dijkstra, slides Video Chapter 8 PS6 due April 1
Mar 30 Shortest Path Exercises Video
April 1 All-Pairs Shortest Paths Video Chapter 9 PS7 due April 8 (notebook)
April 6 Max Flow-Min Cut 1 Video Chapter 10
April 8 Max Flow-Min Cut 2 Video PS8 due April 15 (notebook)
April 13 Applications of Max Flow-Min Cut Video Chapter 11
April 15 Linear Programming (slides) Video Appendix H
April 22 Linear Programming Duality Video PS9 due April 29 (notebook)
April 27 NP-hardness Video Chapter 12
April 29 NP-hardness reductions Video PS10 due May 13
May 4 Larger complexity classes Video
May 6 Hashing Video
Content: This honors undergraduate course will cover the basics of algorithms. The tentative outline for the course is as follows, with one week per topic:
  • Introduction: interval scheduling
  • Basic dynamic programming
  • Advanced dynamic programming
  • Introduction to graphs; Test 1
  • Shortest paths, minimum spanning trees
  • Network flows, maximum matching, and minimum cut
  • Linear Programming
  • Test 2; Randomized algorithms
  • Approximation algorithms
  • NP-completeness
  • Hash tables
  • Advanced topics
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; credit with a grade of at least C- or registration for M340L or SSC329C; and consent of the honors director.
Grading: 40%: Homework
30%: Two in-class exams
20%: Final exam
10%: Class attendance and participation
Key dates:
  • Exam 1: Thursday, March 4.
  • Exam 2 : Thursday, April 15.
  • Final exam: Last week of classes.
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.
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.