My favorite class in the cs core! Let me preface this by saying I did not do very well in this class but really enjoyed it and thought Xi was a fantastic professor. He broke down difficult class examples into smaller steps that made sense. The homework was very manageable and taught me a lot. Xi was so good that I'm trying to take another class with him.
This is a strong class. Pretty straightforward, not such easy concepts but very clearly explained in the textbook. Chen is a really good and straightforward lecturer. I find that once in lecture and reading a concept once/twice in the textbook made my understanding strong. TA's super helpful too.
One of the most well taught and interesting courses I took so far. If you thought the P and NP stuff in CS theory was at all interesting, this class will blow your mind with all the different notions of complexity there are. That said be warned that it's really more of a math course: It's more rigorous and definitely more abstract than the algorithms course. Despite this, Professor Chen makes this manageable by giving motivation before going into long proofs and explaining steps along the way and why they are important in the big picture. Sometimes he will even give a "toy" version of the proof first, which mimics the idea but has a few technical holes, and then go back and fix them after, which I thought was nice. He's also very receptive to questions and can answer them well without coming off as condescending. The bad part was the class was from 7:10-8:25p, but the lectures were recorded so you could always watch those if you missed out. There was also tons of written resources (we had essentially 4 textbooks, not to mention all the other stuff you could find online) so you can definitely self teach if that's more your style.
Xi is alright, although his lectures are anything but stimulating/helpful. You can solve all of the problems using the equations in the book. You need to know some weird geometries to set up some of the problems he makes up.
His accent isnt that bad, you won't have trouble understanding him. Lectures move at a decent pace but usually there is no problem keeping up unless the problem is keeping your head up. It's easier to stay awake for the class because its only 50min (though you sacrifice your Friday mornings). His lectures usually guide you through examples, most of which are useful for the homeworks. Some of the theory-ish notes may seem trivial, but these are the things he will test on the 'multiple-choice' portion of the midterms. Midterms are pretty tricky, usually involving a rigorous knowledge of the material. There will be manipulation necessary, so you can't expect to do well just knowing equations or regurgitating homework problems. With a 1 page cheat sheet, the average on the first midterm was under 50%. The final was simple, provided that you knew the answers. 16 questions were given to us in advance and 4 were on the final. FIGURE OUT THE ANSWERS TO ALL OF THEM. He will pick the tricky ones. But make sure you know how to do them all. Homeworks sometimes were really easy, sometimes really hard. There were about 5-8 questions a week, but a few at least were simple copying from a book example or from the notes. No drops, but he is fair, not assigning homeworks during midterm weeks.
First of all, Xi still has a pretty thick accent. You can get used to this. His class is tough though. Homeworks range from not too bad to very difficult. Look to spend a lot of time on them, preferably in a group (this is encouraged by the professor). His lecture style doesn;t help much. He moves VERY quickly, but will always slow doown to answer questions. The book sucks and doesn't help much at all. You absolutely have to go to class and pay attention to even think about doing better than a B in this class. I would recommend writing down all the examples, since the book doesn't begin to tell you how to solve the homework problems. Another pain in the ass is that the class met Mon Wed Fri, at 10am. Learn the material backwards and forwards. The midterms are awful. No numbers and no BS-ing your way through them. Knowing the formulas is nowhere near enough. They are the types of problems where only symbols are given and a number should magically pop out at the end as the answer. The final is weird. 16 problems given in advance. 4 are chosen to be on the exam. Basically by the exam time you had better have solved them all or found someone who has or else you are screwed. You also have to know why your answer works. Another hint: he chooses the trickiest problems to put on the exam. Good luck, you're gonna need it.
His tests are really annoying. In addition to the problems found in all engineering tests, he adds multiple choice bullshit that cost me my grade. Class is like any engineering. You can teach yourself, but go if you feel it helps you. I didn't like the book much. Oh well, it was good enough to learn what i needed, it just took longer than it could have. The final was the only adequate test in the class. He gave you 15 questions a few weeks before, and took 4 questions from those 15 and that was the final.