One of the best, and also one of the hardest, most time-demanding classes I have ever taken. Grinspun is a very well known and accomplished professor who is passionate about his work, as well as an enthusiastic and organized lecturer. Take this class late in your CS career - the more programming experience you have, the better. Homeworks are difficult, but you are provided with a code base that provides visual debugging tools, as well as a grading script with numerous tests that gives you an accurate idea of the performance (and final grade) of your code. All homeworks come with a PDF explaining the physics concepts behind the code for that week, and although there were some errors, the PDFs were for the most part very helpful, especially if you happened to miss a lecture. (In the case of mistakes in the PDF, extensions were often given) To prepare: learn linear algebra, refresh your knowledge of differential calculus (mandatory), be a strong C++ programmer, and, although it is not listed in the course requirements, I STRONGLY recommend some kind of physics background. While Grinspun does go over this material in class, if you start with at least one college-level physics class under your belt, the lectures and homeworks will be much more comprehensible, and you won't waste time learning elementary physics. Grading: I include this section to discuss some grading policies I disagreed with. 85% of the homework grade comes from the "bot", or the test suite mentioned earlier. The other 15% comes from a mandatory creative scene, built by you to showcase the elements developed for that weeks milestone. At the beginning of the class, Grinspun said you do not need artistic skill to succeed in this class. However, I disagree. If your code works 100% according to the script, you could still get a B on the assignment if you fail to produce a good creative. These creatives are then judged by your peers, who determine the remaining 15% of your grade. Humorous creatives can outweigh visually pleasing creatives, so if you're in a time crunch, go for that. The professors and the TA's weigh in on these grades, so they may give you more points if they see technical ability not easily recognized by your peers. Extra credit is awarded for the top 5 creative scenes, and sporadic extra credit is offered throughout the semester on the homeworks (when it is offered, it is a lot! Do it!) Exams: None. There is a final project worth the weight of two "milestones"/homeworks, which is left up to you. You could modify the code base to produce an extravagant creative, implement a technical paper, or implement algorithms from the class in an external software - whatever you want. Bottom line: If you have any interest in computer graphics or animation, take this class. It will either weed you out, or light a fire under you to go farther in the field. It's a love-it or hate-it class, since you will have to really commit, but if you want to be in this field, you cant miss this opportunity.
This is the BEST course I've ever taken. Prof. Grinspun is talented, not only on his research, but also on teaching. It seems he can see through your mind, find your weekness and try to fix it with all the material he provides. This course is MUST for students who is in the graphics track or want to enter either the graphics industry or academia after graduation. In addition, I think this course is also a MUST for who want to be a professor in computer science to learn how to be a good lecturer and how to organize your material well in a 1.5-hour presentation. Besides coding and graphics, the course covers a lot in physics, linear algebra and differential geometry. Everything is self-contained so you can start this course even your math is only at high school level.
Professor Grinspun is old school. His classes will punch you in the face and make you learn out of self defense. He's a very good teacher. This class is definitely the closest I've had to "drinking from a firehose" style learning. There's not really a whole lot else to be said The guest lectures were all great and relevant. Almost half the course was guest lectures, partly because we sort of ran out of things to cover partway through. Start the ray tracer early.
The premise of Computer Graphics class is to understand the fundamentals and principles of graphics. How we perceive the world in perspective; how we understand surfaces, shape transformations, and shadows interacting with light sources; how we manage to get millions of triangles described in a text file to be displayed nicely as Nemo in 3D model; how we render stunning images from a merely text file; they are all in one class. I cannot believe I have accomplished so much in one semester, and this class is simply one of the best class at Columbia that exceeds tuition fee that I pay for. In this class you will be exposed to pretty much everything in graphics pipeline. The awesome part is that you gotta have to sit down and implement real graphics program from scratch. It is a great class to let you see how technology and art can strengthen each other. And who wouldn't like a class that he/she can enjoy the two at the same time? Enough said with the class. Prof. Grinspun himself is also an extraordinary teacher. With his exclusive background in math, you will blow your mind to let you see how much graphics and math are inter-connected. In addition, because he is an excellent teacher who explains things from the perspective of someone who knows little about the subject, you can't go wrong with the materials. His humor and energetic teaching style will also motivates you to engage in the class, even if it is two hour class straight at night. There were multiple guest lectures, which feature people from the real industry, like NVIDIA for example, to talk about the technologies that people are engaging out there. After you have taken the class, you are sufficiently well-rounded in graphics. The assignments are heavy. It is pain in the ass; it is self-tortured at times, but the reward can give you a life-time inspiration. My favorite part is that you will have chances to do something creative and get credits for them. By the end of the semester, you have more than flourished programming skills, but also motivation to create digital arts in your own way. Highly recommended class for anyone who's interested in graphics.
Discrete Mathematics, as taught by Professor Grinspun, is a CS prerequisite I am very happy to be taking. Professor Grinspun's computer graphics research is really cool, but that is outside the scope of this review. The main strength of COMS W3203 is clarity. Professor Grinspun's lectures are so understandable that I have not usually needed to read the textbook in depth. If anything, they are too basic and move too slowly, although there is plenty of time to ruminate on the materials in class. The textbook (by Kenneth Rosen) is also excellent, being both engaging and informative. The difficulty and pacing of the course changed relatively little as the semester progressed, a teaching accomplishment in itself. The curriculum focuses roughly equally on proof-writing and problem-solving--a fair division, although I wish there had been more discussion of how Discrete Math can be applied. The homework was where most of my learning took place, and it would have been a mistake not to do it as thoroughly as possible even if each assignment is only 4 percent of the grade. (Not everyone does their homework thoroughly.) Homework is ABSOLUTELY ESSENTIAL for preparing for the three exams, which are long and complicated exercises in problem-solving and proof-writing speed. As a warning, almost no one could finish the second midterm exam. This includes some of the best remaining students. Fortunately, the exams' open-book nature and the grading curve meant they were actually easier than exams in many other classes. The 6 homework assignments were 9 to 20 handwritten pages each, and each one usually took me 10-20 hours to finish. Many questions were difficult, and office hours often saved me. This course has a high attrition rate--perhaps one-third to more than half of the original students choose to drop it after the first lecture, including some of Columbia's best and brightest. There might be several reasons for this. Professor Grinspun calls on students unannounced and does not hesitate to embarrass them (although I never saw him embarrassing anyone unprovoked). Homework 1 was as difficult as the other assignments, which may have led some students to believe the course would be more demanding than it actually was. The heavily proof-oriented nature of Discrete Math may also have scared off some. In my opinion, DROPPING THIS COURSE INSTEAD OF PRESSING THROUGH IS A TERRIBLE MISTAKE. My experience was that around week 4 of the course, proofs suddenly became less intimidating and around week 5 or 6, Professor Grinspun mellowed out. What students contend with is a not especially time-consuming commitment, as CS courses go, and possibly one of the 5 best undergraduate courses in the CS department. I enjoy it, and would strongly recommend it to students with the appropriate background (some introduction to programming such as COMS W1004; pre-calculus or, better yet, calculus; and, if you're really concerned about writing proofs, the supposedly well-taught Introduction to Higher Mathematics).
Great course. Makes a somewhat dry subject incredibly interesting. Very lively lecture... one of the few CS classes I really have enjoyed attending. If you can take this class with Grinspun (he tends to teach in the Spring), so do. Homework is difficult, but not extraordinarily so. Midterms are very difficult, as they are open book so they test not what you could memorize but how adept you are at solving the problems. It is also possible to recover from a bad midterm... I nearly aced the first midterm (missed one or two points), but the second midterm I don't think I managed to get more than 20/90, but with a decent score on the final I still ended up with an A-. Not to mention, the questions on the homework and exams are actually somewhat fun (interesting questions, not dull or boring ones for the most part), which is always a plus.
Good professor overall. Entertaining in class, made a potentially dry subject quite interesting. Overall workload easier than one would expect; while each HW assignment was reasonably challenging and lengthy, there were only 6 of them in the whole semester. Material was pretty easy, and it would have been useful if we could have moved along a bit faster. Midterms were challenging, but were also open-book which means you wouldn't have to memorize stuff. Recommended, but they should probably make the class a bit faster. And maybe spend some time showing where the knowledge can be applied.
Well, everyone else loves him, but I didn't. He's not a bad guy or anything, but this class is so dumbed-down that you'll wonder why the CS department requires it. I could've aced the final before I took the course, and I'm not all that good at CS, even. Meanwhile Eitan is talking to the class like everyone's a seven-year old. It's easy and the curve is great... too bad it's a waste of your time.
Prof. Grinspun managed to make this difficult class at the very least entertaining. His lectures are worth going to, not only because he explains things well but because his jokes are surprisingly funny. He actually learns his students' names and calls on people randomly during class. As for the subject itself, the book is pretty poor and has examples that are ridiculously easy compared to the exercises. This is an often weird and abstract class, but it's curved, so try not to worry about your grades until the end.
Eitan is awesome! I have heard that the older guy who used to teach this course was really dry and boring (and I don't know if Eitan will teach it again in the near future) but Eitan is completely hilarious. We spent half of the time in the course joking around with him and he really listens to his students. The book mostly sucks, the examples are all way over-simplified to really help with the homework, but Prof Grinspun does a good job of getting the whole class to work out more difficult examples during class. The TAs said that Eitan was the nicest professor they've ever TAed for and it seems to me they were right, his tests and homework assignments were very very fair and he encouraged the TAs to be easy graders. It's probably a bad idea to skip the class unless you have a friend whose a good note-taker because he does go over material/ do the aforementioned really useful problems during lecture that aren't in the book. He's almost always a few minutes late to class though. The class is pretty easy if you're a CS/compE major but if you're having trouble with something Eitan's totally accesible and willing to help you. After I did not so great on the first problem set, he was willingly 10 minutes late for a collegue's talk just so he could finish going over example problems for the midterm with me.