Here are links to some useful resources for cs3102. If you discover other resources you think would be helpful for students in the class, please let us know to add them here.
Course Book
Github (if you have corrections or suggestions for the book, submit them to Boaz Barak here; useful contributions will be worth bonus points in the course, so let us know if you have a pull request accepted or start a useful issue)
Background
Mathematics for Computer Science (free PDF) by Eric Lehman, F Thomson Leighton, Albert R Meyer. (This is the book that is sometimes used in cs2102: Discrete Math.) Some other useful resources for material that is covered in cs2102 are here.
forall x (Solutions Booklet from University of Calgary) (P. D. Magnus and Tim Button)
Here are some other materials from cs2012/DMT1 courses that may be useful:
 Sets Primer (from Luther Tychonievich)
 Proof Techniques
 Proof Style Guides
 Glossary of Terms
Harry Porter’s Theory of Computation: Background Knowledge (video) (you may find his other videos useful for some of the topics we cover also  playlist)
Other Classes
Courses similar to this one include:

Harvard’s CS 121: Introduction to Theoretical Computer Science (Madhu Sudan and Adam Hesterberg), and earlier versions (Boaz Barak, the textbook author)

UCLA’s CS181: Introduction to Theoretical Computer Science (Raghu Meka)

Our previous cs3102 courses at UVA: Fall 2019 Course (Nathan Brunelle and David Evans)
Spring 2020 Course (Nathan Brunelle)
Suggestions
More resources will be added here as the semester progresses. If you find something you think would be useful to other students in the class, please let us know.