CS331H: Algorithms and Complexity (Honors), Spring 2023

Logistics: Lecture: Mon/Wed 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/331h/sp23/
Unique number: 52240, 52245
Professor: Eric Price
Email: ecprice@cs.utexas.edu
Office: GDC 4.510
Office Hours: 3:30-4:30pm Monday
TAs: Justin Oh
Email: sjo@cs.utexas.edu
Office Hours: Tuesday 1:30-2:30
GDC basement

Matjaž Leonardis
Email: matjaz@cs.utexas.edu
Office Hours: Friday 2:00-3:00
GDC basement

Steph Cheng
Email: stevencheng@utexas.edu
Office Hours: Thursday 2:00-3:30
GDC basement

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 (2021, 2019, 2017) 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 9MultiplicationChapter 0 and Chapter 1
January 11RecursionChapter 2HW 1
January 18Fibonacci NumbersChapter 3HW 2 (Jupyter notebook)
January 23Dynamic Programming
January 25DP ExercisesHW 3 (Jupyter notebook)
January 30More DP
February 1Final DPHW 4 (Jupyter notebook)
February 6Greedy algorithmsChapter 4
February 8Stable marriageHW 5
February 13Greedy/DP Exercises
February 15Graph SearchingChapter 5
February 20Test 1 (JES A121A)
February 22Graph ReductionsHW 6 (Jupyter notebook)
February 27DFS and topological sortChapter 6
March 1Minimum spanning treesChapter 7HW 7
March 6Shortest PathsChapter 8
March 8Shortest Path exercisesHW 8
(Spring break)
March 20A* search and all-pairs shortest path
March 22Network flowChapter 10HW 9 (Jupyter notebook)
March 27Bipartite Matching
March 29Network flow exercisesChapter 11HW 10 (Jupyter notebook)
April 3Test 2 (JES A121A)
April 5Linear ProgrammingAppendix HHW 11
April 10LP Duality
April 12Complexity theoryChapter 12HW 12 (Jupyter notebook)
April 17NP HardnessHW 13
April 19More NP Hardness
April 24Larger 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; credit with a grade of at least C- or registration for M340L or SSC329C; and consent of the honors director.
Grading: 50%: Homework
30%: Two in-class exams
20%: Final exam
Key dates:
  • Exam 1: Wednesday, February 15 in JGB 2.324
  • Exam 2 : Monday, April 3 in JES A121A
  • Final exam: Saturday, April 29, 1:00 pm - 3:00 pm, BEL 328.
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.