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.
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 well. I loved him as a professor and I would definitely recommend 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.
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 sanity and just zone out. Now we come to the homeworks. Ohh, the homeworks. These monstrosities are surely meant to be sadistic. They only roughly help you learn about data structures, but the projects are so huge and the specifications so poorly, um, specified, that you will spend hours pulling your hair out trying to get the program to do something even closely related to what Zeph had in mind. Not to worry, of course, as with most CS classes the curve is outrageously huge. It doesn't seem as if Zeph cares much about whether we "get it." For the final he gave us plenty of example problems, but no solutions. Days before the exam, he e-mailed us to tell us that no practice exam (as promised) would be coming. Well, the exam questions are much easier than the practice problems anyway. You'll get through it -- probably. Just take my advice and keep some Tums and Prozac nearby.
This course was a disappointment for me. Zeph is a cool guy -- he says words like "gnarly" and gives out loads of extra credit. Unfortunately, he's only an okay teacher. He often gives imprecise or poorly thought out explanations. Furthermore, he was unable to control the class so that we actually learned a lot of material during our limited time. (I get the sense that with a different class, the experience could have been much better.) As for the programming itself, the code he gives us sometimes fails to acknowledge the important (and difficult) parts of the problem at hand. Java also seems to pop up way too often for a C++ class -- most of us hadn't seen Java in a while, so this made things more confusing. Zeph is a Java guy, and it seemed like he would have really preferred to teach in that language. If you are good at learning on your own and a good programmer, this class will be a breeze. Otherwise you might struggle a bit on the programming assignments. For what it's worth, Zeph is a very approachable guy, and the TA's were nice too, so you shouldn't have trouble getting help. Note that the book is a bit confusing and dense at times, although it gets the job done.
Hes a great guy... its just... he can't teach that well. The classes are mindblowing and interesting, but when you have to sit down and code or do homework... may God help you. Not only can't you miss a lecture (because then you loose the code that he gave in class -which most of the times doesn't even work), but none of the language coding issues are discussed. You must become your own teacher when it comes to coding. Its 3 classes in one, all barely related to each other: computer programming, discrete math (HW problems), and stuff covered in lecture. I am sure he could do a better job; this class shouldn't be that hard, but maybe its just done on purpose, to scare off students not sure about computer science.
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.
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.
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 bad on them. But they're curved pretty generously, and if you do well on homeworks, you can still do well in the course (and hard exams are nice-- they really get you to think). More important, though, the class is always interesting, and I think (especially if you haven't taken a course like it) you'll find yourself much better able to look into a problem then before.
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.
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.
Great professor, really seems to like every bit of the class. So, even if you hate the class in the beginning, his enthusiasm might transmit to you as well.
Zeph is a great guy, and he is really interested in you learning, and if he sees you putting in effort into the class he will help you and give you incentive along the way. He is always giving extra credit and stuff. The problem is that this class is hard, and takes a sh**load of time. don't slack off in the begining because those few points you missed on in the begining will come back to haunt you in the end.
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, then gauge your math aptitude/experience to budget your time.
All the other reviews of Zeph are pretty accurate. He does want to help his students and he is not really a natural teacher. He gets lost in his own example problems at times. His lectures are almost entirely from powerpoint slides so they can be kind of boring. On the up side, Zeph is very energetic, always in a good mood, and must have spent hours and hours working on his slides. The homeworks aren't too time consuming and Zeph tries to construct interesting problems. I think there was a big curve in the end. Overall, you should have no worries about taking a class with Zeph as it should be a pleasant experience.
He's not a natural teacher -- without notes, his oral explanations often got a bit confused, and flustered is regular condition for him -- but he really does his best to help students, and it pays off. Classes are PowerPoint, and while he isn't one of the Sleepytime professors who just read off the slides, he sticks quite close to them. This is good, because his slides are really very well done: clear and straightforward with well-chosen examples. All slides are on the course website, which is extremely useful. It also makes attendance very much optional, though lectures are still useful and generally not bad. He's also very accessible, and makes every reasonable effort to help you out.
He's a very nice guy and he really wants to help you, but there's a good chance that by the time you go to him for help it'll be too late. The first half of the semester was extremely easy, which is why the second half hits so hard. Before you know it you'll be weeks behind, and at that point falling asleep in class to his not-so-stimulating lectures sounds like a good idea. The best advice is AS SOON as you don't understand ONE THING, no matter how small, get help with it, or you'll be lost for good. He tries so hard to make the students learn so that if you aren't, you'll feel guilty.
An immovable boulder in the CS major track, CS students usually put this one off as long as possible. While any class in Computability would be rough, Zeph means well and makes a good-faith effort in this huge and unfriendly subject. His lectures are actually decent and clear (the official word is that he has "gotten alot better" since starting a few years ago), but the class is still best-handled by drinking your new "Computability" brain cells to death the minute the final is over, and not stopping until they're good and dead. Seriously, though, the organization and clarity of the course overall are better than they might be. With Zeph, the book is good and you know more or less what is going to be on the tests ahead of time. Students don't look at an the midterm and go "what the fuck, how can he be asking about THAT random thing!?" as they do in so many other classes. A hard, hard class, but with that said it's about the best it could be.