I have never been more let down by a Columbia class....ever. Artificial Intelligence is supposed to be the most interesting field in CS. Programming robot intelligence? Learning about machine learning? Discovering how your video games are so smart? Nope, but we will spend half of the semester on depth-first search, breadth-first search and other search algorithms. And then Stolfo will skim past everything you actually wanted to learn in AI. That being said, Stolfo is the sassiest professor I've ever seen and a blast to watch on x2 speed (online lectures!!). Laughs will be chuckled, but by the end of the lecture you'll have a faint idea of what he was talking about.
I would really avoid taking this course with Stolfo. The subject is fascinating, the programming can be fun, but his lectures are dreadful. Out of a class of 100+, only a handful of students even bothered showing up towards the end. This wouldn't be a problem if we had a remote idea of what material we were responsible for knowing. We were given literally zero resources to prepare for the exams - no sample exam, no list of topics review, not even chapters in the book that would be covered. Multiple questions posted on Piazza about the scope of the exam were left unanswered. This is after not having a single written assignment for the entire course. There was exactly one programming assignment covering material from the second half of class, but it was due the week following the final exam, which is just bizarre. The exams themselves are a frustrating joke - 40% of the material on the midterm came from 4 one-word answers (two yes/no), with no partial credit. Stolfo said this was because it made grading easier. If you do wind up suffering through this course, I really hope you don't give a shit about your grade. The AI tournament is worth as much as the final exam, and involves students programming a game-playing intelligence and playing against each other. While it's a cool idea, 20% of your grade comes form how well your program does in the tournament. It's a single-elimination tournament. Meaning that it's possible to have the second-best program in the entire course, but if you get paired with the first-best program in the first round, -15 points for you (there's a five-point "losers bonus"). Not only that, but half the class is grad students, and there aren't separate tournaments for grad students and undergrads. Meaning you could get paired up with a Ph D student who's been working on their algorithm for a month because it's the only class they're in. I don't know a single undergraduate who made it past the first round. I think the most frustrating part of this course is that all of the above concerns were brought to Stolfo's attention multiple times by multiple students - he seems to either not care or not listen.
This class was a huge disappointment. Stolfo manages to ruin a topic that is actually incredibly interesting and useful. His lectures are mediocre at best, his sample code is buggy and almost entirely in LISP, and no resources are made available to prepare for the midterm or final. If you find yourself enrolled in this course, I suggest you spend plenty of time with the textbook. It's far more useful than any other resource available here.
This class was an incredible disappointment. Stolfo managed to make interesting material difficult to learn through his insufferable lecture style and frustrating programming assignments. He rants and pontificates, only occasionally delivering actual content. He seems to teach this class to have a captive audience for his jokes, which alternate between offensive and inane. Many are posted on his website, reflecting his general unprofessionalism. I found Stolfo so loathsome that I couldn't bring myself to go to lecture for the last month. When I tried to watch the lectures online (they were all posted because the class is offered to CVN students) I couldn't watch for more than 20 minutes. He started one class sulking because the 15 people who still attended class were not being responsive enough to a series of vague/inane questions. He tries to put on a dramatic and inspiring performance (like Gulati perhaps) but since he utterly lacks charisma the result is grating. For example, he asked the class on numerous occasions, "do you remember when you first touched a stove and learned what hot means? do you remember? do you?" He would keep this up until someone pretended like he or she had a memory of this exact experience. To most, this would seem like a rhetorical question but he wouldn't stop until he received confirmation that this very same scenario had happened to each of us. The midterm and final were almost entirely composed of trick questions rather than straightforward questions about material that we had actually learned. I think they were supposed to be easy but I didn't understand what they were asking. Since I got around the mean grade on each, it seems like most of the class was similarly bewildered. Stolfo's approach to teaching Lisp was to reminisce about the early days of computer science when it was just an elite group and make us fix buggy code. While the programming assignments were ultimately the only worthwhile part of the class, I think they could have been less frustrating while still teaching the same important lessons. After being exposed to Lisp for 50+ hours, I felt like I had learned how to conquer it and work around its structure rather than actually feeling comfortable. While Stolfo's introduction to the language was certainly inadequate, Lisp is basically just a frustrating language. If you can tolerate these jokes (http://www.cs.columbia.edu/~sal/notes/y13.html) or find them amusing then take the class with Stolfo. Otherwise, avoid.
I tried very, very hard to like this class. Here's my dilemma: when Stolfo teaches this course properly, it's a blast. He's an engaging, funny lecturer, the material is interesting, and the homework is a genuine pleasure to code. Most of the time, though, he doesn't teach it properly. Stolfo seems to have gotten it into his head that AI ought to be conducted like a Socratic seminar; as a consequence, you will spend most of your time in this class in awkward silence people do their best to avoid making eye contact. To make matters worse, he has a particularly nasty tendency towards extreme vagueness, so his questions tend to be things like "so what is it about this problem?" or even "what was the thing that you learned during the first half of the course?". That may fly CC, but in a computer science class (and particularly one requiring an above-average level of formal rigor) it's hard to imagine a less effective teaching style. The real problem here is that because nobody answers his questions, the lectures creep ahead very slowly, and class falls further and further behind schedule while trying to get through basic material. Then, he realizes how far behind we've fallen and skips ahead over all the tricky stuff. As a result, we ended up spending a week and a half on BFS and a day on alpha-beta pruning, and two weeks on symbolic logic followed by fifteen minutes about Bayesian inference. That same vagueness also seems to manifest itself on just about every exam question, which might explain why the average on both midterm and final was below a 60% (and mind you, this is a class made up of half MS and PhD students). What's really maddening is that on the handful of days he says "Fuck it, I'm just going to lecture today" the class is great. If he could be somehow persuaded to do this all the time I would have no hesitation at all in recommending this class; as things are right now, my feelings are mixed. Other random thoughts: The TAs were some of the best I've ever had -- friendly, approachable, and (with the exception of one disastrous mistake that made the midterm quite literally 25 times harder) very knowledgeable. I came into this class with the rather unique advantage of already knowing Lisp. Regardless of what the syllabus may say, they will teach you no Lisp at all, but you will be expected to know it. If you, like 90% of the class, have never seen it before, you might be well-served by picking up a copy of SICP to read over winter break. Make a real effort for the gameplay tournament. Five or ten points is nothing to scoff at when everybody fails the midterm (and it's fun). tl;dr. The short answer is that I don't see any good reason not to take this class over Pasik's, and if Stolfo cleans up his act for next year it may even wind up being your favorite.
Prof. Stolfo knows the subject well, but couldn't deliver it well and control himself. He would beat the same dead horse over and over again until he realizes that he is too far behind and would start rushing through important topics (and as a result, miss important details). He would also ask questions in the final exam from topics that were not covered in the class just because PhD students were taking the final as their comp exams.
He is definitely one of the better professors in the CS dept. He has a good sense of humor (a lot of jokes about his mother-in-law), and he's wonderfully friendly. His tests are mad hard, and but his programming projects are okay. You'll probably get lost in some of his lectures, but glancing through the text should clarify a lot of things that he talks about in class. He tries to get the students to get involved during class, asking questions and trying to match faces with names. Overall, his class is worth taking!
Prof. Stolfo is a wonderful and knowledgeable teacher, although his wry teaching style can be off-putting at times. He also has a pretty good sense of humor for a CS prof - he ended the first lecture with the comment "Intelligence is like pornography; you know it when you see it." It helps that he co-created the course, so he not only knows the material inside and out but he is also passionate about it. On top of that, he is incredibly friendly and easy to talk to. He is also the only professor I've had who gives you buggy code on purpose (this can be good or bad depending on what kind of CS student you are).
I have to put in my two cents here, because the only review on this guy is very misleading. Everyone I spoke to that took the AI class with this guy, hated life. He acts like he has better things to be doing that teachign the class, and at one point he said "Life is not fair, tough" He started off great but his quality just went downhil very fast as the semester went on.
Stolfo is probably one of the best professors in the CS department. His lectures are entertaining, informative, and funny. He enjoys teaching and loves giving amusing assignments. He occassionally makes fun of students in class, but is also willing to allow his students to poke fun at him. The workload is medium, and the professor is very easy to talk with.