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 DMT1 and earlier in cs2102: Discrete Math.) Some other useful resources for material that is covered in DMT1 are here.
forall x (Solutions Booklet from University of Calgary) (P. D. Magnus and Tim Button)
Here are some other materials from DMT1 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), Fall 2020 Course (Nathan Brunelle and David Evans) (this was a “full lockdown” course, so all the course materials are available as edited videos), Fall 2021 Course (Nathan Brunelle and David Evans), and Fall 2022 Course. For a different approach (using a different textbook), see the Spring 2008 course (David Evans).
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.