Xi Chen is a gem in the CS department. He not only makes occasionally-dense proofs comprehensible, but he motivates them such that you actually want to follow along and hear what he has to say. CS Theory was this dreaded class, but it ended up being one of my favorites this semester. Maybe it helped that his general attitude was very understanding, e.g. "I know this doesn't make a lot of sense but it hopefully will in 5 minutes," said in a way that was in fact understanding and not condescending/outright false. He is understanding just as a person also (accepted HW submitted past late deadline, but don't push your luck). The material is not the easiest of course, but, as with many logic/theory things, if you read the book, pay attention in class, and treat the whole thing as sort of a game, things should be OK.
An excellent professor who taught an engaging class even during the COVID semester. He gave us biweekly psets which were very fun to solve. He was also very capable and was able to simplify complicated proofs and present them in a straightforward manner without sacrificing rigor.
The lectures were very interesting and the course material was well chosen and well presented. The professor's office hours were also very helpful. He does not give away the answers to problems (although students may accidentally do so by asking the wrong questions), but he does provide very useful help if you are stuck.
Done with final, feel I have the right to write the review. First, let me say: Professor Xi Chen is so CUTE! In terms of the class, as people reviewed before me, he is rigorous about proof. He has pre-made slides, which could have some typos, but his lectures can be a little different. He is a good lecturer and very helpful during OH. Algo I covers a lot of topics in just one semester. If you think it's an upper level data structures class, then I want to tell you it's much more than that. It's like C++98 to C++17. I just want to say that we really learn a lot of different algorithms and the proofs about their correctness. The problem sets are mostly exercises from CLRS, our textbook. Some problems on them are doable, some are not (not for me, sad). I had to go to OHs to figure out where to start for some of the homework problems. Midterm and final are about the same difficulty but midterm was given shorter time. I'm not sure about grades, but the amount I learned is enough for me to not care. Although there are much more master students and a few PhDs, I think the number of undergrads taking this class is about 20. Very happy :) Some advice: read the textbook; it takes iterations (for me) to understand things. go to OH if you can; TAs are totally amazing, they see a problem and they solve it already. start the problem sets early because they could literally take 20+ hrs to do; I typed in latex which takes time too. Who might enjoy taking this class: love solving puzzles, when you get to know some underlying reason of how this works (usually related to math) you will get excited, can find connections between different concepts, want to rigorously prove something, etc. Prereq: I was doing okay without CS theory, but I would consider discrete math a must.
I don't have too much to add to Xi's previous reviews, but I did want to emphasize that this course really is very tough. Xi is a pretty good lecturer, and a very nice guy, but do be prepared to spend a ton of time on the problem sets. We had 4 or 5 problem sets throughout the semester. All of them very heavy proof-based. They easily took me 20+ hours each. There were some really smart people taking this class so maybe it took them less time, but the problem sets are no joke. The midterm was pretty easy compared to the problem sets. The final was not; it was basically like the problem sets except you couldn't spend a whole week on it and going to OHs. Overall a solid class, but don't think this is CS Theory part 2. It's more like CS Theory on steroids.
This was the most rewarding class I have yet to take in CS. Extremely interesting material and very good teacher. The first half of the course is more foundational: some basic proofs about Turing machines, time and space hierarchy theorems, NP completeness, non-uniform complexity, and randomized complexity classes. This is all neccessary knowledge for anyone interested in theory of computer science. But after that, we dove into some more recent results: interactive proofs, circuit lower bounds, and probabilistically checkable proofs. These topics were exciting and provide a more in-depth look into complexity theory. This class is all proofs. So clearly do not take the class if you are not ready to do rigorous proofs in class, on the problem sets, and on the exams. But if you have the mathematical maturity to face them, don't let the proofs scare you off! Each class focused on proving a different result from complexity, and each proof was interesting and rigorous. Professor Chen is very good; he always presents clean and rigorous proofs. He doesn't dwell on trivialities, but if someone asks, he will always clarify details, both in class and office hours. He is a very clear and helpful teacher.
Xi is a pretty decent teacher. Going into this class, there were no previous CULPA reviews on him and the only thing I heard about him was that he was "not bad". I would say Xi's a bit better than "not bad". Typically, classes like Algorithms go really fast, leaving most students lost and confused. Xi is good in this sense because he teaches at a slower pace so it's easier to understand the long proofs and sometimes dense material. The drawback of his speed is that we didn't finish the syllabus. We missed 2 classes because of snow days and another 3 classes because Xi was overly ambitious to cover so much material at his teaching pace. He also posts excellent slides online so you don't have to worry if you missed something in class. The class itself is pretty hard. The book CLRS, while excellent, is quite dense and detailed. Homework was almost completely assigned from the exercises in the book, which are nearly impossible the solve. The HW averages were pretty high (around 55/60). This is because solutions to problems from CLRS are available online if you search carefully enough. I highly recommend you don't do this since you will get screwed come exam time. Xi is super helpful in Office Hours and you should go to him if you get stuck on HW (because you will, trust me). He will walk you through any problem and give you an outline of the solution. Sometimes, the problems are so hard, that Xi himself can't solve them on the spot (not knocking on Xi; he's really smart. I'm just saying the problems are that difficult). The midterm was much easier than the problem sets, but still far from easy. One question on perfect hashing which worth 20 points could be solved only if you remembered a proof from his lecture slides. Most people didn't get it, so remember to read his slides thoroughly. Grading was fair, maybe a bit strict. Final was similar to the midterm in difficulty and was a bit longer, but you had 3 hours which was plenty of time. I thought the final was easier, but I ended up getting a lower score on it than the midterm, so I don't know what to make of it. The class had roughly 8 undergrads out of a 100 students, so be prepared to be lonely. There are PhD students in this class, so don't expect to ace it, though getting an A shouldn't be a problem if you put the effort into this class. I'm not sure if he curves undergrads separately. Overall, it's a good class. You will learn a lot and become much better at constructing solid proofs and thinking algorithmically. I think Xi is just as good as Stein, so feel free to take this class with him.