Computer Science · Columbia University
This is a difficult class. But his teaching style worsen the experience. The book is not very helpful either. If you want to do well, start the assignment early and try to resolve all the compile error issues with the TA in person at least three days before the deadline. Don't bother with emails. They never response on time.
The subject is hard, but Zeph is very passionate about it and works hard for his lectures. He must spend a lot of time preparing for his lectures, his homeworks, and exams, therefore, it is expectected that you will also do your part and work hard to meet his expectations. the homeworks are VERY time consuming!! and you might not be able to solve all of them yourself, some problems could be easy once in a while, but others could require you to be a genious to come up with a unique efficient solution. It is recommended that you form study groups to do the hws and study for exams, it will make the experience less painful. If you master the hws, and the readings of the book and think you are ready for the test, you'll be presented with new problems not seen before that will test how much you internalized the knowledge of the subject . be expected to do a lot of studying on your own, of course that if you are a math person, who loves math and cs theory, you'll be find, but if not, then a lot of work from your part will be needed. I enjoyed the class, is one of those classes that when you finish, you take a lot whole information of the subject with you.
Excellent professor. He's an animated and entertaining lecturer who covers a lot of concepts with in-depth and interesting examples and applications (e.g. counting poker hands during the probability lectures). Everything you learn comes from the lectures-- the text was more of a backup and for homework exercies, and since they go by pretty quick, I'd say you have to be damn brilliant to not have to show up. I'm no math genius, so I found the material pretty difficult-- he'd often cover proofs in class that wouldn't sink in until I went though my notes and thought everything through much more slowly (and even then some never fully did). Even so, it certainly wasn't impossible to grasp the concepts and be able to do well on the homework assignments and quizzes. Exams were really challenging (all in-class, 4-5 questions), consisting of completely original problems that required you to apply in new ways the skills acquired from lecture. Your success on exams, in my opinon, will largely depend on your mathematical creativity-- how flexible you can be in applying the concepts you know to a problem that's pretty different from what you've seen before. In my case, the particular way of working out some exam problems just would never have occurred to me (how to begin a proof, where to go next after you've reached a point, etc.), especially under the stress of an exam, so I did pretty b…
One of the disappointing features of CULPA is that the more passionate students, and thus the more likely to review, will always be the ones who were disappointed in the professor. I found Zeph to be a great professor who always managed to challenge us. His homework assignments tended to look difficult at the start (with the exception of a couple, notably the first and last ones), but then he'd describe in detail in class how to attack those problems. Of course, actually doing the programming would take at least one all-nighter per assignment; but if you really thought the problems through, you could definitely benefit from those assignments in terms of how much you learned about the particular data structure. His teaching style tended to focus mainly on the homeworks, but that did not seem to limit the material he covered. He gave a lot of code in class, though almost always it was pseudocode. I never held this against him - trying to stick to exact syntax in a limited period of time is never worth it, and he more than made up for it with his descriptions of the code he put up. Zeph was clearly coming from a math background, and that really seemed to influence his teaching. He wanted to make his students think (as evidenced by his way of "reviewing" - simply giving us very solvable, though certainly challenging, practice problems), though he always wanted his students to do w…
First let me say: this is a DIFFICULT class. In fact, this is the most difficult non-programming class in all undergraduate computer science classes. Second, Prof. Grunschlag tries hard to explain the material as best as he can, but sometimes gets carried away in long proofs that won't ever be tested. Third, The homework problem sets are very very time consuming and usually you cannot solve all of them by yourself. Group discussions on the homeworks are strongly encouraged. Fourth, the tests are slightly easier than the homework problems, but not a lot. The tests do not usually involve lengthy proofs like the homework does, but there are a lot of tricks in the tests that you need to be careful with. All in all, a difficult class, but with a VERY BIG curve. So even if you feel you are doing poorly, you are probably OK.
First of all this class isn't really for the faint of heart unless you intend to do some theory math or be a computer science major. Even though it is in the computer science department don't be fooled it is a math class, algorithms are involved, but the primary workload will be done in math. Professor Grunschlag, like to be called Zeph often in class, is a very entertaining professor, but the man knows his shit, he has a PHD in some theoretical math that i don't understand. You can look at his papers on his website. His in class style is bell to bell an intense, but he is light hearted and loves to be in front of the class room. Zeph is also very well prepared, and has an interesting way of taking attendance. He randomly calls on just about everyone in the class about 3 times from an attendance sheet to learn your names. If your not there when he calls on you, tough luck, you loose points in participation. He will learn your names. He also has an online email newsletter thing that if you participate in instead of going to class he will accept that as participation. Material is tuff, and he is more the willing to help anybody, because sometimes the class isn't enough. Great guy, awesome professor, and if you are going to take Discrete Math I suggest you take it with him.
Like people say, Zeph is a nice guy, but I don't think he's a great teacher. He tries to explain things, sometimes a little too hard. The book, by Sedgewick, is fairly comprehensive but isn't an easy read. However, if you are comfortable with programming (both language and theory), the class isn't hard at all. Attendance is pretty much optional. You can easily find what you need through Google or Wikipedia. Grading is fairly lenient; the 60% midterm average was curved to 85%. His exams, however, are definitely doable (90%+) if you know your stuff; they aren't meant to be a killer. Overall, I don't see any reason to avoid his class.
Great Professor. Really enjoys the material, and enjoys teaching it. He'll even bring some humor into the class. Also, the subject material is really interesting (turing machines, P vs NP, etc). Also, if you are CS, you have to take the class anyway, and he is pretty much the one that teaches it.
Zeph is a very nice and very likable professor. I don't know why professors are expected to be entertainers these days, but if that's what you care about in getting an education, I think Zeph always succeeds when he tries to be funny. He is as funny as his jokes so either you laugh with him or at him. Teaching-wise he's quite good; he's clear and he makes good lecture notes. The notes contain most materials but not some worked examples, and the materials are easier to understand when lectured to you than when you read them, so I definitely recommend going to class. Exams are generally tough, requiring thorough understanding and rewarding little for rote memorization. So do try to learn the concepts and don't use memorize the techniques. But if you have a solid math background (probably if you plan to do the CS theory track), the course should be easy for you. Others don't need to worry too much because the curve is quite generous. A note of caution: as with Computability as another poster mentioned, the first half of the course in general is much easier than the second half, possibly because the first half covers concepts you have more likely to have picked up in math classes. Also, things like probability seem to be very difficult for some people and very natural and easy for others. Flip through the book in the beginning of the course to get a general idea of the topics, the…
Good lord this class is a miserable mess. None of this stuff is even that hard, but it is presented in such a painfully poor way that you will develop an ulcer or two trying to digest it for yourself. First of all, the book (Sedgewick) is horrendous. I believe it is just a rewritten version of the Java edition, and it shows. The code snippets are written to be compact and brief, but they end up just being impossible to understand. Single-letter variable names, often referencing code from chapters before, are used without any explanation. The mathematical explanations are so hard to understand you will probably end up just skipping them. As mentioned before, Zeph is a nice guy and clearly very intelligent but ultimately he fails to present the material well. First, you will never almost never speak about the contents of the book. Most of the class is presenting a sort of scaled-down, not-quite-there version of the code you will need for the homework. The problem is, Zeph seems extremely unprepared and often forgets vital lines of code. Even when he is satisfied it will work properly on the board, it probably won't compile when you go to do the homework. The other part of class is discussing mathematical issues behind algorithms. I'm not even going to touch on this--it's so difficult to understand, and taught with such little clarity, that you should save your brain cells and sa…