Computer Science · Columbia University
The professor is just not good at teaching. He will put up some slides on an algorithm, haphazardly show an example and maybe some proofs, but it's incredibly easy to get lost in trying to follow him. I ultimately stopped going to class because his lecture style is just awful or at least not useful for me. The homework assignments aren't terribly long but there is no division conceptually and the graders expect correctness proofs for everything. I don't feel my work was graded fairly, as the TAs would just skip over certain problems saying they weren't present even when they were (pagination was off in Gradescope) and declined my regrade requests. Exams have low median scores despite high medians on the HW. Didn't learn much here, unfortunately, and will have to go back and re-learn it on my own. Do not recommend this professor or his TAs.
This is a hard course, if I were to compare it to AP, the content is harder but less tedious. Personally, I spent fewer hours in CS theory but it was harder to conceptualize. He is a good teacher, I like how he explains things and it makes sense. I would advise to skim the textbook right before class to either get a refresher or read the chapter for the day's lecture. Going to OH really helped confirm my understanding and for the homework. Great TAs! You might need to sit in the front just in case his mic isn't working because he mumbles a little bit. He is great at answering questions and providing examples as well.
This was not the most interesting theoretical computer science course I have taken. Sure the material is very canonical: approximation algorithms for all of the standard problems, lower bounds, and reductions. However, it just did not hold my interest. The algorithms were all presented well, but they just were not that interesting. Perhaps part of the problem is I had seen most of the material before. But moreover, because each class we looked at new algorithms, it did not feel like the class was going anywhere, but rather starting over with a new problem each week. Overall, not a bad class. Teaches you all the approximation algorithms you would want to know. Most of the material you would need to get started in the field of algorithms.
Computational Complexity with Professor Yannakakis is an excellent class. This was my second class with him, the first being CS Theory in the fall, and with that said, I am confident that he is a good choice for any class he is teaching. I will definitely take another class with him if the opportunity comes up. While he might not be a dazzling speaker, he is always well-prepared with very structured lecture plans and does a great job presenting the material. The material is very well-motivated and he involves the class in his lectures by frequently asking questions. He is able to thoroughly answer any question that comes up from the class. There are few to no errors in the lectures, and detailed lecture notes are posted on Courseworks. The textbook is the bible for the subject and it is well-written, but he doesn’t strictly follow it, so it’s really not necessary for the course. The homework assignments were also very well-written and unambiguous, and ultimately at the heart of the course. I definitely learned a lot from working through them. While this class is the natural follow-up to CS theory, one difference is that there are fewer formulaic problems that simply require following an algorithm. Usually a bit of thought is required for most of the homework problems, but they’re manageable as long as you don’t leave them until the last minute. Hints are generously provided fo…
I really enjoyed taking this class with him, and would highly recommend it despite the amount of work that I had to put in - I learned a lot and it was worth it. 1) he understands the material, and explains it clearly and elaborately. 2) It takes a little bit of time to adjust to his accent, but after that you'll find he's an engaging lecturer who always comes prepared and has no problem answering any questions that come up. 3)He's done a lot of theory work so be prepared to tackle that aspect of the algorithms and data structures as well as simply knowing them and how/when they work. 4) Besides being a prolific and accomplished researcher he can teach, and he's a nice guy, which in this case also means very fair grading.
Expectations going into class: Heavy courseload - gaining a general understanding of different algorithms and their complexities. Professor's Teaching style: Lectures are well organized, but Prof quickly covers concepts. Keeping up with the class is really important because catching up is a little difficult with this course (especially in the second half of the semester). Content was as per expectations - an introduction to as well as analysis of different algorithms with a focus on where algos can be applied.
I think Yannakakis might be the best, or one of the best, professors to take CST with at Columbia. Lectures are not recorded so I'd recommend going to class, but if you can't make it, the slides are pretty helpful and so are the TAs. TAs are SOOOO helpful, seriously some of them are some of the smartest people I've ever met. I honestly loved the content!! I think he teaches just the right amount that is digestible and interesting.
This was one of the best classes I have taken at Columbia. It is a topics course on approximation algorithms, mostly for NP-Complete optimization problems, and there is a brief discussion of online approximation algorithms at the end of the course. The emphasis is on the design and analysis of approximation algorithms, and some time is also spent on hardness of approximation results. This is a definitely great class to take if you enjoyed Analysis of Algorithms 1. Professor Yannakakis is an excellent instructor who has an unbelievable command of the material. He always has comes to class with a very well-structured lecture plan, and is able to give very thorough answers to students’ questions. He also posts great lecture notes online, which are very helpful, as is the recommended textbook “Approximation Algorithms” by Vazirani. For many of the lectures, he begins the lecture by introducing an optimization problem (or a family of closely related optimization problems) and then spends the lectures going through different approximation algorithms for the problem in increasing order of sophistication. The class met once a week for two hours, and while these lectures were a bit long, it allowed for the material to be covered with a good amount of depth. He is also very up to date with the material and able to put the results we cover in context, sometimes telling us about recent im…
(I'm the author of the December 17, 2013 review of CS Theory with Yannakakis.) In general, my take on this semester is the same as my review of CS Theory with Yannakakis, though this time the lecture hall wasn't so sleep-inducing. Yannakakis is not exactly an exciting lecturer, but charisma aside, he does everything he should: he chooses a good textbook, assigns homework that reinforces and expands a bit on the material, has a TA who grades fairly, provides good lecture notes online, and so on and so forth. My only real complaint is that the class overlapped a lot for the first month with CS Theory, but given how many people were confused by really basic issues about Turing Machines, I guess that wasn't Yannakakis' fault. I'd definitely take a third class with him if the opportunity presented itself.
6 Hw's - 40/60 theory/programming. The theory questions range from mechanically easy to very theoretically difficult and will take a bit of time. The programming assignments also range, with some straight forward get 'em done in a night to a couple taking an extensive amount of time, and I mean a lot. Midterm/Final were easier than expected considering the theory oriented lectures and hw, make sure you know the basics of how all the algo/ds work and can reproduce the process, as well as which to apply for a given problem