Table of contents

  1. Course Info
  2. Realistic Prerequisites
  3. Subject Matter
  4. Course Staff
  5. Lectures
  6. Problem Sets
  7. Exams
  8. Resources
  9. Grading
  10. Advice to Future Students

Course Info

Class Size 39
Hours/Week 8.8 (13 responses)
Instructors Ronitt Rubinfeld (Lecturer), Damian S. Barabonkov (TA), Linda Z. Gong (TA)
# of Responses to Course 18 Underground Questions 6/39

Realistic Prerequisites

  • It is recommended to have some background in graph theory and algorithms (6.006 and 6.042 material).
  • Some experience with writing proofs is also helpful.

Subject Matter

  • Course content is theoretical and foundational.
  • “Very theoretical, but it is crucial to the CS field as a whole.”

Course Staff

  • Students found the course staff very approachable, accommodating, and engaging.


  • The lectures were well-paced and contained good examples that were helpful to understanding the material.
  • “Lecturer did a good job focusing on key things to know and making sure we were learning them.”

Problem Sets

  • The course had biweekly psets.
  • Students found the psets challenging and requiring some creativity, but generally very doable.


  • Most students found the exams to be of reasonable difficulty. Some problems were challenging, but could be solved by studying and understanding the principles presented in class.
  • Students recommend going through practice problems to prepare for the exam.


  • Detailed lecture notes were available.
  • Many students found readings from the textbook, Introduction to the Theory of Computation by Prof. Sipser, to be very useful.


  • Students found the grading to be fair but not very transparent.

Advice to Future Students

  1. “Ask questions and go to office hours”
  2. “I liked the class, I hope you do too!”