The textbook for the course is Introduction to Algorithms by Cormen, Leiserson, Rivest and Stein, fourth edition.
A secondary reference is Algorithms Illuminated by Tim Roughgarden, in particular for exact methods for NP-Hard problems.
Another secondary reference for the course is the book / lecture notes by Jeff Erickson: https://jeffe.cs.illinois.edu/teaching/algorithms/