I took this course with Prof Dear but this review is more about the course than the professor. COMS 4701 is very much "plug-and-chug" and leaves very little room for self-discovery. If this does not match your learning style, you will probably feel like you're wasting your time. Because there is so much hand-holding involved, it's easy to score well without doing all that much work. That said, I think this course is a great introductory course for non-majors or people just starting CS. Material--very broad overview of AI and high-level discussions of concepts. To get a sense of what the book is like, you can just check out the Wikipedia page on "Artificial Intelligence" or any of the topics on the syllabus. You will not find much more depth in 4701. Quizzes--the quizzes are mostly multiple choice and it's all open book. Extra study time generally is not rewarded as there's not that much depth involved. Also, expect some wrong multiple choice answers to be adversarial in nature so be prepared to second guess your response all the time. Homework--About 75-80% of the code is written all ready, and the remaining code is not difficult to implement. Most of it was translating pseudocode into python. The short answer responses were also not terribly interesting. "Is this implementation more efficient than the other", "Is this guaranteed to find a solution", etc. Grading--There is a curve, but it's probably not necessary since everyone is scoring in the 80s and 90s. The grading rubric is well defined and expectations for each assignment/quiz are clear. I would recommend this course to people without a background in CS or math. The professor is very knowledgeable and the TA's are helpful. Or, if you want an easy A, go for it.
If you're going to take an intro to AI class, Dr Salleb-Aouissi is the one to take it with. Her presentation of materials is concise and she usually goes over each concept twice, and they build on top of each other. She's a clear lecturer and her slides are pretty in-depth. She's always available for help outside the classroom as well, as are the TAs. Some TAs are hit or miss as they're undergrads.
Didn't learn shit. This class was terrible. A buggy script determines your grade for the coding portion, and the professor just reads off the slides that she got off somewhere else. Recitations were mostly not good either, with most TAs being bad, but there are some exceptions.
Tony Dear is an incredible professor. He is highly organized and is great on staying on task. He is clear and teaches his material very carefully. He is also very nice and kind and will tend to questions and never judge for asking any question. I was very scared for AI but it proved to be my favorite class taken at Columbia. I HIGHLY recommend him!
Professor Dear is probably one of the best teachers I've had at Columbia. He breaks things down clearly and concisely, presenting a couple of concrete examples in-depth for each topic to help things click. The quizzes, while a bit annoying to complete after each lecture, really incentivized me to review the material, which was helpful in that it helped me stay on track (especially crucial in a 6-week course). They were a mix of understanding how to run through the algorithms he presented in class as well as questions that had more to do with your intuitive understanding. So, while not a walk in the park, they were very fair and it's not impossible to do well on most, if not all of them. The homework assignments were also quite fair. They were a mix between programming and short answer responses and generally contained no surprises. I personally thought the programming wasn't too bad, though the short answers could be a bit tougher at times since they relied on truly understanding what was going on (which is a good thing). Make sure you have at least a rudimentary understanding of Python before taking this course. I thought that the quiz portion of the final was a bit tougher than the ones we had throughout the semester, but nothing that was unreasonable to expect. The TAs were great too: extremely helpful in OH and on Piazza, returned assignments in a timely fashion, and graded everything fairly. Overall, Professor Dear's course is highly organized, well-taught, and extremely well-run, even when considering that it was an accelerated course (which was just a bad idea on Columbia's part). The class definitely isn't easy, but it definitely is possible to succeed if you take the time to internalize his lectures. All the praise he received in previous reviews is more than well-deserved.
Awesome awesome class...Tony is so engaging in his lectures and very clear at explaining things. This was one of the most organized classes I’ve taken, even with it being fully online!
This was my favorite CS class by far. Prof Dear is super nice and helpful. He explains everything clearly and really cares about students. You will learn a lot of practical algorithms. I recommend everyone to take this course.
This professor is great! He's such a sweet, caring man and he will do everything in his power to help you understand the class material. Seriously, attend his office hours! He's very very understanding and helpful! His lectures are well organized and are generally very good for solving the homework problem sets. He bases much of the homework/quiz material from his lectures. He writes all of his own problem sets and quizzes. Do be aware though, that as good as this professor is, he is definitely on the harder side. After every lecture, there is a required 5 question quiz. Nearly every question will leave you baffled and scratching your head over concepts that you thought you understood quite well from the previous lecture. This man has a talent for really, REALLY testing your knowledge of the material in a way that forces you to REALLY think about the question and how to get the right answer. His quizzes are tough, and you really need to understand the concepts inside and out to get full credit. His homework sets are not easy either, so you'll want to start as early as possible. Some questions take about 15 - 20 min to understand and complete, while others take hours and hours to understand than code properly. Again, he's going to really test your knowledge of the concepts in class in different ways. Some of the homework questions during the latter part of the course I felt were a bit too challenging at times, such as probability and hidden Markov models, given that this was a short 6-week course. The TAs for this class were AMAZING. If I couldn't get some python code to work right, I'd show one of the TA's and they'd walk me through why the code was not working and possible solutions to get it working correctly. The TA's were very helpful with the coding portions of the homework, and I think generally understood that this class probably should NOT be an "accelerated" 6-week course. As good as this professor is, I can't recommend anyone take this class in its current state. Columbia made this course into a 6-week "accelerated" class, and as nice and sweet as this professor is, the class is simply too difficult and stress-inducing. Why Columbia thought making this class into a short term class was a good idea, I honestly have no idea. The class moves WAY, WAY to fast for a normal human being to fully grasp and understand all the various seemingly complicated concepts in a reasonable manner. If you can delay taking AI until they make this class into a full term, 12-week course, than do it. Otherwise, take this class on a lighter load.
You're significantly better off going through the AI lectures from Berkeley off of which his entire course is based on. The professor is not good at explaining the reasoning behind the mathematics involved in the course and after a certain point, it's hard to follow his lectures when all you hear are math terminology with little to no connection to how they're used for AI. He tries to be as helpful as possible, but when you're that confused - I don't think it'll help. Homeworks are annoying given that there are revisions to the questions 10 days into the assignment - and are fairly difficult when compared to the examples solved in class. They're also weighted weird, with some 5 point questions taking 2 minutes to solve, while some 5 point questions take upwards of 1-2 hours with a ton of calculation involved. The programming sections are nice though, so no complaints there. He's a super nice guy and tries to make everyone understand the subject, but he's not a good professor for this particular course. Especially when compared to the source material from Berkeley
This class is among my favorite CS classes at Columbia, and I've taken some with fascinating course material. Tony is a great teacher, a really nice guy, and tries so hard to make sure you learn what you're supposed to. A huge chunk of the class consists of algorithms and Tony goes through each one really well until you really get it. A lot of the people I know who took a class with Tony stick around to take his next class.
Simply the best professor ever. He also happens to get the best TAs.
I took 1006 with Bauer in Spring 2017 and AI in Fall 2017. He is an incredibly nice person and very organized. His lecture notes are helpful, and as a person who avoids reading the textbook, I found that convenient when reviewing for exams. Bauer does have a German accent but I don't think it is difficult to understand. Although he explains concepts well and respects questions, his lectures can sometimes be a little boring to follow. But if you're willing to pay attention, you will learn enough to do well in the class. He tries to get students excited about AI & ML --there was a simple ML assignment in 1006, and assigned readings in the AI HWs. HW prompts are so detailed to the point where all you need to do is implement it in Python, and exams are straightforward so in terms of difficulty, it's not hard to succeed in his class. 1006 is a required class for many, but whether or not to take AI is a question to consider. Whether you take it with Ansaf or Bauer, the class itself doesn't go very in depth in AI. It's a nice intro and a good class to tack onto some other CS workload--teaches some game theory, deep learning, and a little stats stuff. I had fun but if you're genuinely interested in AI, just go have a conversation with Bauer. Whatever you choose, good luck in your CS career! Overall, I do recommend Bauer and hope to see him improve as a lecturer.
I learned a lot in this course. I didn't really know much about the theoretical underpinnings of AI and in the semester I took the course (Spring 2017), we went through a bunch of unsupervised/supervised learning techniques. The lecture slides were very good and I found her lectures also quite understandable. I thought the exams were quite fair as well, with the Midterm being a bit long but still doable. The Final wasn't cumulative so the amount of material to cover in both tests is actually reasonable. If you go through the lecture slides, you should be fine. The assignments were a different animal. I really underestimated how much time the 1st assignment would take, which was a lesson I learned the hard way (I basically spent Friday-Sunday writing code all day). The 2nd assignment was frustrating because your entire grade was based on 10 test cases (and I thought the times I ran tests on my own computer, I scored better). Thankfully, the last three assignments are definitely easier and took me way less time. Overall, I'd say it was a pretty good introduction to AI. The curve seemed to be fairly forgiving based on the grade I got.
Before I write this review, I would like to preface it: Professor Ansaf is probably the nicest, most committed teacher I have ever had at Columbia. She was incredibly personable, and always had time during her office hours to help or chat. So...I didn't think this was a good class. I know a lot of seniors took this class because it was supposed to be relatively easy where you still learned a lot. Unfortunately, neither of those were true this semester. This could be because this is the first time in two years that this course has been offered, or perhaps because she (very nicely) expanded the class to 275 students, so there was less one-on-one time with instructors. As it was, the Professor would show up late (despite her best efforts) every class because of a meeting directly prior to class. That's unfortunate, because it means the first 5-15min of class were used for setting up instead of lecturing. I think if the Professor knew she would be teaching a class at 1:10pm, she should have scheduled her meeting for another time (or vice versa). Additionally, the class was incredibly disorganized. The homework instructions were generally incredibly vague and because of that on Piazza there would be -- I kid you not -- 50-80 unanswered piazza posts during homework times. The homeworks were also badly managed, as they were more rushed in deadlines towards the end of the semester. Also, there was a time where a homework was due the same time as the midterm, which was incredibly distracting and in my opinion badly managed. Considering how much time the homeworks took, it was relatively disorganized schedule-wise. The exams weren't much better - instead of testing the actual content of the class slides/lectures, they tested your speed in problem solving. If you're able to do each problem in about a minute to 5 minutes you'll be fine -- but that was not typical. If you take the exams, I recommend that you first focus on the highest weighted problems first -- aim for the max points in the least time, not about going in depth. The practice problems are good for general formatting, but not on timing. If the professor had added more practice problems for exams I think that would have helped. Finally, the TAs were generally useless. Of the about 10 TA's, all of whose office hours I went to, only about 3 were consistently able to answer my questions and help me on my homeworks. Jimmy/Ruicong was the best TA so I hope he stays on if this class gets taught again. In general, I wouldn't take this class again. I didn't feel like I learned anything, and the homeworks were just implementing algorithms in a really convoluted way.
As a senior, this is possibly one of the worst classes I have ever taken in the Columbia CS department. Full disclosure: I got an A in this class, so this isn't just whining. Professor Ansaf is super nice but incredibly disorganized. She never showed up to class on time, and every class had "technical issues" that would last the first 15 minutes of lecture time. Furthermore, when she would teach, it would be rushed and very high level, when what you needed to know on the exams and homework were much more detailed. Again because of her disorganization, the first half of the class was very laid back - there was very little work and only two homeworks. Then, for some godforsaken reason she decided to assign homework 3 (the 2048 game, in my opinion, the hardest homework because of the necessary optimization problems) and have the midterm two days apart. It was endless sleepless nights because the homework took so goddam long and so did studying for the midterm. Her practice exam was only slightly helpful, and neither were her lectures for the midterm. Side note: her exams don't test knowledge. They test speed. The midterm exam was absolutely ridiculous because it had about twice as many questions as were possible to answer in that time period. It was super frustrating, especially since none of the students knew that coming in, so a lot of people absolutely bombed that exam when we actually knew the content. When I went to talk to her about it, she said she wasn't going to help because everyone was graded on a curve. Okay, thanks for that nonexistent help. Finally, the last half of the class was incredibly rushed, because she realized she hadn't taught any of the topics she needed for the homeworks. So instead of giving us time for the assignments by spacing them out, she instead gave us an assignment every week. The homeworks are incredibly time-consuming (because you always have to optimize over and over again) so you barely had any time at the end of the semester to do anything. Finally, the final again was ridiculous. All I can say is that I hated this class. Professor Ansaf was disorganized and there were only 1 or 2 TAs that were actually helpful. In essence, take this class only if you're prepared to learn everything on your own, and get no support from the professor besides a curve.
Prof Ansaf is very friendly and the class was interactive. There was a good balance of traditional AI topics such as agents, search algorithms, CSPs and logic with a focus on machine learning in the second half of the semester. The prof mainly used her slides but there were some chalk board sessions as well. The slides were very well prepared and Prof Ansaf takes you through the math in a very simplified manner. The slides are sufficient and the text book can be used for any reference reading. There were four assignments and all of them had Python programming. Basic programming knowledge is sufficient for this class as Python is easy to pick up. There was a Python recitation taken by one of the TAs in the beginning of the semester and it was very helpful to get started. The assignments were interesting (application of AI to games like 2048, mazes etc) but time consuming - as you can keep trying to improve the performance of your program. Definitely the best way to understand the intricacies of the algorithm though and the prof was kind enough to give additional time on the assignments when required. There were a lot of opportunities to score extra credit if you needed to catch up on a bad performance. We had one quiz and a lot of suggested reading material if you were interested. The course covered a lot of topics - AI and ML related. But the midterm and final were both open notes so you could focus on application rather than memorizing formulae or algorithms. The exams definitely made you think but as long as you understood the content it, the problems were solvable. The final grading formula was very generous and took the best performances into account for most students. The TAs were helpful during office hours and on Piazza. Especially close to exam time, the response time of the prof on Piazza was great which helped a lot. The professor balanced heavy course material with lighter "historical moments of the day" and current events in AI which made the two and a half hour class easier to get through. We also had a guest lecturer in the last class. All in all the professor really cared and took great initiative to give us more information than strictly the course content and made the classes more fun.
I took this AI class with Ansaf. I like her teaching style and her class. She focus on the searching algorithm and machine learning for most time which are quite interesting to me. It is not easy to cover all the machine learning algorithms in less than half semester so that she taught a little bit fast in the machine learning part. The after class studying will be necessary if you want to grasp these algorithms. I also like her homework. She have assigned four homework, all programming in python. Most of them are very practical problem(for example to program a AI for 2048 game) and some of them are very challenging. It is hard to say the importance of this class to me. Honestly I expect more in this class because firstly I have taken machine learning before and I want to have a systemic understanding about how to build up an AI. But after taken this class, what I have learn and what I can understanding is not clear enough. I cannot say that I have a clearly and systemic understanding about how to build up a practical AI. Maybe it is because the artificial intelligence is a quite wild field that cannot be cover by only one class in one semester. If I can arrange the topics in this class, I will set this class as a higher level class and the machine learning class should be required before this class. Then the professor may discuss more in AI rather than take most of time to discuss machine learning and algorithm. All in all, Ansaf is a quite instructive teacher. For those students who haven't taken machine learning before, this class is very useful and you can learn a lot in this class. (written by Z.H.)
Radev's a jovial guy and a decent teacher. However, I didn't learn much in this class since Radev focused a lot on useless topics. We literally spent 60% of the class studying logic of some sort. I would rather have learned more about search algorithms and machine learning. Radev coached the International Linguistics Olympiad team so he's a big fan of linguistics and it shows in his teaching. He spent a lot of time talking about gramamars and outlining NLP at a highly impractical level which I really hated. I think you can learn more about AI by taking a MOOC online from Coursera or Udacity. There are 4 programming projects which are all very time consuming. He gives you 2 weeks for each and they take at least 6-8 hrs. There's no upper limit since you can improve the assignments as much as you want in an effort to get the very generous extra credit (up to 20 points on a 100 point assignment that counts for 20% of your grade). Only 2 of the projects had anything to do with AI. The first one was to be coded in LISP which has the dumbest syntax ever - it's like a poor man's Haskell with a lot of parenthesis. All in all, can't recommend taking this class since it doesn't really cover much. Radev's a nice guy and probably the best teacher for AI you're going to find but the class itself is pointless. Tests are ok. If you read all the slides you should be fine. If you understand all the algorithms and definitions, you'll do great - there aren't any questions that require a lot of thinking and being clever. He just test how well you know the material. Be warned that some of the slides kind of stink in which case you might want to refer the textbook. Don't waste time reading the entire textbook like he asks you to - it's just a scape goat for him to ask you anything he wants and for you to not complain that it wasn't covered. Grading was decently generous. He added points on the midterm and final since the average wasn't as high as he wanted.
The rest of the reviews are pretty accurate about this class but I figured I should add in a bit to just explain Prof. Voris. Let me start by saying Prof. Voris is a terrible human being and might be one of the worst people I have ever met. He would often belittle students for asking questions related to class material or about class policies. His assignments were based off what we learned in class with the majority of the difficulty coming from the insane amount of fluff put on top of them. Like he gave us games to encode a solver for and I must have spent 1% of the time on the solving algorithm (the important part of the assignment relevant to the class) and 99% of the time dealing with the absurdly detailed rules of the game that had no reason to exist beside to waste our times. Now back to the real problem Voris. Every time a student asked him for something, like if he could post the blank midterm online after we got it back so we can study it for the final, he would answer in the most demeaning way ever. Every question he felt was a personal attack on himself. Now I am by no means a psych major, but I would say he had a huge fear of being seen as inferior. He would oftentimes go on rants about how in his college, which is some local school that most people have never heard of, he had it so much harder and how Columbia students were entitled and a bunch of cheaters. This rant about how much harder he had it occurred so many times and he would constantly belittle Columbia students as a whole. He clearly was trying to somehow prove his superiority to a bunch of kids who never saw him as inferior in anyway. All I can say is that he has some deep issues and probably would be better suited to teaching at a community college where he does not find the need to always defend himself even if the students are not attacking him. My favorite example of him being an ass if when he was trying to hand out the midterms and basically put them all in one giant pile in the front and told the students to come get it. Of course everyone got up and was gathered around the table. Now what does Voris say? He starts repeatedly yelling (for like 10 minutes straight) "You all are animals and you should be ashamed of yourselves! I never saw this when I was in school". He clearly has no idea what he is doing and I hear Columbia is looking to hire a real AI teacher (Voris can't teach very well either so this is a good thing) so hopefully he will never teach a class again. But Voris if you are reading this please go see a Psychologist you have some issues that need to be worked out.
I have mixed feelings for this course. My final grade is satisfactory but I'm still quite disappointed with the course. AI is supposed to be a fun class, and there are plenty of interesting topics that can be covered in a semester long course. However, at the end of the semester, you would find what you had learned was just a bunch of search algorithms plus some machinery that helps you play with logic expressions. I think if Professor Voris had spent less time(or none at all) on giving pop quizzes, explaining the solutions to the pop quizzes and reiterating some of the petty uninteresting concepts, he would probably have had time to cover some more interesting and important topics such as reinforcement learning and applications of AI in robotics/vision/nlp, etc. But I gotta say this is the first time Professor Voris have taught the course and he did try to teach the course as best he could. He did not come across as a sloppy instructor, it's just that he needs to gain more experience in teaching.
Jonathan Voris was hands down the worst professor I've had in the Computer Science department (although I suppose I use the term 'professor' lightly here, because I believe he was a post-doc who was teaching Artificial Intelligence for the first time), and among the top 3 worst professors I've had at Columbia (which is surprising since he speaks perfect English). The Good: The first day, I was rather excited to be taking this course, because Artificial Intelligence is a subject of great interest to me, and I was pleased to find that Dr. Voris was very enthusiastic about the subject matter, and the first three introductory lectures, while sometimes rambling, were at least engaging. The Bad: Unfortunately it was all down hill from there: it became incredibly difficult to determine what information from lectures was relevant. As a result more than half of the class stopped attending lectures (Voris began giving pop quizzes in class around 3/4's of the way through the semester). The Ugly: Programming Assignments: The programming assignments were long. I mean incredibly long. The assignments consisted of single page pdf files describing a task in vague detail. There were no suggestions for completion strategies (fine, you don't get these in real life) but more frustratingly, there was absolutely no framework given. The projects often required large amounts of infrastructure (e.g. coding of 5 search algorithms) before any part of the conceptually interesting portion of the assignment could be tackled (algorithm design, heuristic/evaluation functions). Voris was a hard-ass about deadlines, which is reasonable, although perhaps less reasonable was his choice to assign the 4th project and the in class final due 4 days apart. Exams: The material on the exams was not very difficult, however the exams themselves were incredibly confusing. The midterm was almost as if he had never before written an exam, for practically every question it was difficult to tell even what the question was asking. On top of this, the TA's couldn't answer questions because only 1 of them could speak reasonable english, and the Professor refused to answer questions because he might give away the answer. The final was in class on the last day, and the questions were more clear, however the exam itself was pretty long and somewhat tedious in nature. Miscellaneous: The professor, in my opinion, had a patronizing tone throughout the class and routinely treated students as if they were stupid. On top of that he did very little listening and a whole lot of talking when students expressed their concerns. No review or example materials were provided for any assignments or tests. And, more of an annoyance compared to the rest of what was going on, the Professor would often engage in pointless discussions (read: arguments) with students about a very specific point of no importance that would last for 10-20 minutes. Jonathan Voris is clearly knowledgeable and passionate about Computer Science, but in no way qualified to teach this course. One Caveat: I don't know how much he changed the material from Professor Stalfo's version of the course. It is possible that the assignments and lecture notes were entirely the same. This does not change the fact that Voris was an insufferable asshole, who seemingly refused to listen to his students and insisted on wasting class time on pointless and pedantic arguments with students. tl dr: Course was horrible, Professor was horrible. If you value your time and sanity I recommend you steer clear (although I don't know if it is being offered again, so it's probably a moo point.) I give this course a 1/10.
After reading the rather poor reviews of Professor Stolfo's AI course, I was excited to take the course with his postdoc. Unfortunately, he failed to meet expectations. Voris is a very nice guy, but was disorganized during his lectures. Also his command of Common Lisp wasn't the greatest, and used code from Stack Overflow in his slides. Thankfully, he only required Lisp for the first assignment. The assignments were a little much. I found that I was working on the implementation more than the actual search algorithms. I spent weeks working on the game implementation for Gomoku and Sokobon, while rushing through the search algorithms hours before the assignments were due. Also, he provides the easiest test cases possible, while using hard ones to grade. Most of my assignments assignments passed all of the test cases, but I ended up doing poorly on them because the test cases used for grading were not even remotely as easy as the examples he provided. The reviews from Stolfo's class mostly say that he skims over everything interesting in AI. Voris wasn't much different, and we actually covered less material than Stolfo usually does. We didn't even get to machine learning, and our last assignment was on logic, entailment via forward and backward chaining (which I thought was an extremely boring project that again, takes more time to write the implementation than the search algorithms). The midterm was fair, but the final was rough. Voris said that chapters 1-9 would be on the final, yet he ended up testing us on topics mostly before the midterm. We did not receive any sample questions or past exams, and were unsure of what to expect on the exams. I though the final was way to long, and Voris said he had planned to make it even longer. We used Piazza as our forum for discussion and questions outside of class. To be fair, some students did ask questions that could have been easily answered from a quick google search. But that doesn't mean the instructor should respond to them in a sarcastic and demeaning way. Some of Voris' answers to Piazza questions were very defensive and sarcastic, including "Uhh, you can run Eclipse on the clic lab machines?" or "I only posted the text file with puzzles because people complained I didn't post any examples" and "Guys, I've already made it rather clear that all of the material in the book chapters that we've covered is fair game." He also would write something like "please see me in office hours if this is unclear" rather than post a response. Basically all the course material (lecture slides, etc.) was given to him by Stolfo. There were mistakes in the slides, and he usually correctly them quickly. Although I did hear him arguing with a student about ambiguity in a final exam question and Voris' response was something like "[Stolfo] has been using these slides for 20 years and I don't think he had this much trouble with grade arguments." Overall, I guess Voris was a better choice than Stolfo, but if you aren't required to take this class, I suggest avoiding it like the plague. At least Voris made the tournament extra credit, and all who participated earned at least 5 extra credit points, even if they lost in the first round.
I took this class with Prof. Jonathan Voris. I'm pretty sure he was roped into teaching the class right before the semester started, if that's worth anything when considering this review. Quick Summary: Good lectures (if a bit dry; depends on your taste) Ranges from very approachable to completely unapproachable Does not deal well with grades. Prof. Voris was a good, solid teacher. He taught the material well, and was mostly light-hearted about the material. He really seemed to enjoy the class when he took it (7 years ago I think), and he definitely transferred that joy over to teaching it this time around. I liked his lectures, though sometimes they were a bit dry (often the material was at fault). Basically, Voris is a good teacher. However, Prof. Voris comes with a special type of schtick. The best approximation of an explanation of it is a mix of ego and paranoia. When it comes to grades, he seems paranoid that every student is willing to kill him if that will give them a better grade. This is not (much) of an exaggeration; he really is paranoid about this. When it comes to anything involving grades, simple questions offend him like the deepest of insults, and he is completely unreasonable. When handing out the midterm, after failing to get students to come up in an alphabetical order, he just dropped all the tests on the table, and sat back, calling the students "animals" and "disgusting" while everyone searched through the mess to get their tests. Not cool. Also, if he can't understand a question, he often assumes that the question is stupid, and sometimes even worthy of mockery. He will always try to explain a question once, but if the explanation is not sufficient for the student, and he thinks that it was, he will make comments like "I don't understand what's not to get." or "This is pretty simple." He is in desperate need of learning the phrase "Why don't you come see me after class? I'll explain it then- we should move on". This ambiguity often translates to the workload- the projects were good, but the formatting was often unclear. Tiny details that made actually finishing the damn things a nightmare. To be fair, many students just seemed to ignore what was actually written in the project assignments in regards to submission details ("Must run on a CLIC machine" seemed to be an oft ignored instruction for many students). All in all though, the details just needed to be crystal clear, and they weren't. His midterm and finals were VERY reasonable. However, the grading of them weren't. He hasn't posted our final grades, so it is unknown whether he will curve or not, but some of the ways he took off points were pointless. The purpose of a test is to test our knowledge of the material, not our ability to decipher certain cryptic instructions. The questions were good- they were actually really good tests. But, like I said, the grading was off. All in all, he was good for learning the material, and terrible for anything to do with grades. Just a bit of a nightmare to deal with the schtick. Not a bad person, just not adjusted to teaching (yet). If he shapes up on the grading thing though, he could definitely be a really great prof. in the future!
I had AI with him. He is the least organized instructor I've ever had. He believes everything he said was right and is extremely vague on assignment instructions. He would make up tons of extra requirements about the projects in addition to the project instruction posted online and you wouldn't know them unless you keep track every post he answered on Piazza. The exams are unfair in the sense that he would test on very trivial points and if you don't know them, you are screwed. Never take any course with him.
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.
AI with Creamer is completely useless. I will admit that he tries very hard to teach the material and he is a genuinely nice person, but that will not dismiss the poor teaching and unfortunate organization of the course. The homework assignments are theory based out of the textbook, which is supposed to be the bible of artificial intelligence. That part is fine - besides for the part that the HW is pretty useless also. The redeeming quality of this course was the final project - this is a matter of how much work you want to put into it: time in = amount learned. The examinations are also fairly worthless. I am sure that this course is easier than Pasik's course. If you have any desire to learn anything, suck it up and take it with someone who is worthwhile.
This was probably the most fascinating course, which is saying a lot given that Pasik is the professor. Learned a lot but only because this is material that I hadn't been exposed to in other classes and I could have learned 3 times as much had Pasik not ended class half an hour early (on average) every class and skipped 8 classes for review sessions/midterms. Additionally, it should not have been required to learn LISP which wasted an additional 2 weeks at the beginning where we didn't learn any AI. He also cancelled a class at the end because he didn't have anything else to teach us. Overall, if you consider that he only used about 2/3 of the allotted class time, we had about 10 lectures on AI for the whole semester. How do courses at CMU, Stanford, MIT and Cornell manage to do fill a whole semester? As stated in other reviews, all of his lectures are taken totally out of the book, except the knowledge representation lectures. In these lectures, rather than covering the interesting material on epistemic logic that the book had, he spent the entire time on algorithms for expert systems which haven't really been used since the 90s. He also arbitrarily set his curve to a B-/C+ which would be fine except no other professor in the department does that. Basically Artificial Intelligence is an extremely interesting field and the fact that I am still interested in it despite Pasik is a testament to the material. However, if you can avoid Pasik, do so.
If tl;dr, just scroll to bottom. Of the three CS classes I've taken so far at Columbia, this was hands down the worst of all of them. Prior to enrolling in the class, I read the reviews here on CULPA and figured that the people complaining about Pasik's teaching style and glossing over LISP and other concepts were simply whiners. It took me 3 lectures to completely reverse my initial opinion. Let me preface this review by saying that I'm not disgruntled because I did poorly in the class (even without the extra credit, I would've gotten an A). I'm bitter about enrolling in this class because it was nothing short of a waste of time and money. Over the course of the semester, I've come to realize that Pasik really doesn't put in that much effort into teaching. Here's why: of the 28 days that the class was scheduled to meet, 8 of them were committed to other activities (6 reviews, 2 exams). Of these review sessions, Pasik shows up to exactly one. While I thought the review session that he conducted was actually the best among all of them (probably because the subsequent reviews were horrific), he prepared no material and basically held an hour-long Q&A section. Moreover, he canceled one additional class, and ended at least 5 classes 20+ minutes early. So all-in-all, instead of using 28 days to teach, he effectively taught for roughly 18. The result of this is that we barely covered any material. A simple google search of Artificial Intelligence syllabi from top institutions like Stanford, CMU, MIT, etc, reveals that we covered about 1/3 of the material they did. And that's a generous estimate. I have one word for that: pathetic. One aspect of Pasik's teaching that many of my classmates found irritating was the fact that he read directly off of his slides. In the past during my undergrad years, and even this past semester, I've had professors that used PowerPoint slides extensively. Sometimes, they even read off of the slides verbatim just like Pasik. This I have no problem with. What annoyed me the most was the dearth of content in those slides and how cryptic most of them were. This can be especially frustrating when some of the material he presents is not covered in the book, and the only source of reference you have is a figure of a rectangle with a few splotches of color that's supposed to represent the effectiveness of parallelism. Finally, a feature of Pasik's teaching that I found to be ineffective and even counterproductive was his insistence on going over code in class. I think the main problem with this is that code in LISP is not readable. The task of keeping track of what all the different built-in functions in LISP do in addition to the user-defined functions Pasik writes results in students being confused as everything becomes just one huge convoluted mess. I think that the time spent in analyzing LISP code would be better spent if the algorithms were presented in pseudo-code (mostly in ENGLISH) rather than actual code. Since the course is comprised of mostly grad students, converting pseudo-code to LISP code should not be hard once the students actually understand what the program is supposed to do. Is Pasik a nice guy? I wouldn't know since he has no office hours and is only transiently available before and after class. I stopped emailing him questions shortly after term started since his responses are one-liners and don't really answer your more complicated questions. Maybe it's because he's involved in many other activities that doesn't give him time prepare and do the material justice. I get it, professors are busy people. But there's a line between being a busy person and simply not giving a damn. Bottom line: if your main objective is to get an easy A, this course is the one for you. If you want to actually learn something, take a different class.
What's not to like about Pasik? He's a good teacher and a friendly guy. He's super patient and all kinds of approachable. If there's ever anything you don't understand he's more than happy to explain it to you. Unfortunately his office hours are practically non-existent, but he's always around for about half an hour before class, and for as long as you need after. The course was taught in LISP, but if you're not familiar with this language, don't worry. He usually spends some time at the beginning of the semester explaining the basics, and none of the assignments require any really advanced level knowledge of LISP. If you get stuck, you can almost always find what you need with a little Googling. His lectures are interesting and if you show up consistently and take thorough notes, you may not even need the textbook. Be warned, you will hear lots of stories about him and his family's zany adventures, but he's a good story teller and there's always an AI related moral in the end. As another person pointed out, there is a lot of discussion about the philosophy of AI, but if you look up, you'll see that the name of this class is not â€œArtificial Intelligence Programmingâ€, it's just â€œArtificial Intelligenceâ€. The history and theory of AI are relevant to the course, even if they're not all that relevant to the grade. There will be some readings on this and probably one question on one test somewhere. If you decide to skip it all together it won't kill you, but it is interesting and might even help you out a little on the homeworks. The assignments are deceptively complex, but they're not very difficult once you figure out what you're supposed to be doing. Give yourself some time. You're not going to bang them out in one night, but you can get them done over the weekend if you don't have much else to do. The tests are sort of cumulative. It's usually around 3/4 new material and 1/4 old material. Expect a coding question, usually just a variation of something from the homework. He expects you to know all the algorithms by name so be sure you've go that down. Pasik will tell you himself that if you do the homework early you'll be pretty well prepared for the test and this is definitely true.
Prof Pasik has a very good presentation style, but unfortunately the AI material, he covers, lacks body. He uses slides, not more than 10-12, and you would have guessed that only some introductory and intermediate concepts are covered. He spends too much time on the philosophical aspect of AI; important it may be, but I would imagine that one lecture would have been more than enough to convey the message. Programming assignments are to be done in LISP. And if one has good enough experience in programming, LISP shouldn't be too hard to adapt to. Good thing about LISP is you don't have to learn it all in order to get started. I did enjoy programming in LISP and assignments were engaging but not too difficult.
I 100% agree with the reviewer from April 15, 2010, and the later ones. I really want to emphasize how insufferable the homework assignments are. The assignment descriptions sound straightforward and manageable, at first. It is when you start to work on it that you realize you know WHAT the homework means (that is all the lectures are good for), but not HOW to implement it. Most of the time will be spent figuring out how the program should work, even in a conceptual way, in order to achieve the algorithm that Pasik wants. This is made harder because (a) You are using Lisp for probably the first time, a language that is not used anywhere outside academia and will never be useful to you again. No other language you have learned or lab you have taken in CS at Columbia will prepare you for understanding Lisp except the concept of recursion (b) You will not learn, during lectures, the Lisp you need to do the homework. After the first couple lectures, Pasik will not continue to teach Lisp and consider everyone a "Lisp expert" (c) You will spend hours reading Lisp primers before you actually work on the program. For this reason (and the fact that you have 3 other CS classes to worry about), the assignments will most likely lead to several all-nighters. Pasik has a 1-point-per hour deduction late policy, which is the most ridiculous policy I've ever come across in a CS class. If a student must resort to submit late, do you really think it will be by a couple hours? For a class like this, 25% deduction per day is much more reasonable. The lectures are brief (usually they take Pasik 30 min to get through), with a focus on definitions instead of Lisp-based, example-driven concepts. Typically, a lecture will have one or two high-level examples (i.e. a diagram or graph), and one or two, if at all, slides of lisp code that do not relate to the homework in any way and will not be useful for exams. As for the exams, I really didn't mind them. They are straightforward. However, each question is usually 1 point out of 10 points, so four points off already puts you at 60. Pasik will not tell you what questions will be on the exam. The best method is to read the slides carefully and focus on definitions. Also, there will be a lisp question on each exam that relates to the homework (i.e. a snippet of code from your hw).
He's an entertaining and friendly guy. Class is always interesting, and he incorporates more philosophical aspects of AI into the class, besides just focusing on algorithms. There were four programming assignments, the first one was extremely easy, as it was just to teach you LISP. The other four assignments did take some time, but they weren't break-your-back difficult. The tests were all very reasonable and short. If you read the textbook and went to class, you couldn't help but score well. Honestly I'm surprised at some of the reviews here. First and foremost, some people seemed to say that he was poor at answering questions. If anything, I'd say the exact opposite! He would always take time to address questions, and would even work them out on the board if he didn't have the answer on the top of his head. He was in *no way* dismissive of questions, and actually was looking for questions from the class more often than we had them. I can understand that some people might dislike his teaching style if they don't want to engage with him, but really, if you pay attention, you learn a lot and are entertained at the same time. And by the way, as some people have mentioned, he really does like LISP and recursion. Overall, I definitely would recommend him, and I think he is deserving of a silver nugget. I think the best thing about him (and this course) is that he inspires interest, because you are exposed to so many new topics.
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.
Pasik is without a doubt one of the worst professors I have had at Columbia. Though his lectures are entertaining, they gloss over the course material and provide little to no insight into the concepts, test material, or homework assignments. He always ends class early, for such reasons as "I'm going salsa dancing!" When asked a question in class, he often doesn't know the answer and responds with some bs, or says he'll answer it next week with an example. Subsumption, for example, is not hard and something that he should be able to define and provide an example for on the spot, but he can't. His lectures have clearly not been updated in several years, and it shows. It seems like there are typos from the 90's that would take 2 seconds to fix, but doesn't bother to do anything to fix them. All your homework is in LISP and Pasik barely covers LISP in class. Your knowledge of this language comes completely from independent study, and the homeworks are very time consuming. You would think that he could at least provide some sample LISP programs or god forbid tutorials that he quickly googled, but no, he leaves that up to you. As for the actual homeworks themselves, that are so vague and non-descriptive that you'll spend half the time trying to figure out what you have to do. Days or even hours before the due dates, TA's will post requirements on courseworks of things that you must include in the homework. He does not provide solutions to the homework, so you're screwed in that sense. He reuses the homeworks every single year, without changing them at all. This turns out to be bad because he could make the homework prompt more descriptive than 3 sentences. Be prepared to spend 40+ hours for each of the 3 homework assignments, and start them way early (you do have plenty of time). He probably has never read his own culpa reviews, and doesn't realize that he needs to REALLY update his lectures, homeworks, and tests. His tests are ridiculous. No amount of studying can prepare you for them. It's not because you don't know the material, it's because you have to predict the answer that he's looking to hear. Even if you're answer is correct, as the TA agreed with me on several occasions, he could not award points because it was not identical to Pasik's horrible solutions. If you know the material and feel prepared, you can still do poorly because you did not mention something in your answer that was not asked for in the question. You will lose points for not writing a novel for each answer. Pasik does not hold office hours and does not care about any of his students. Don't bother sending him emails or trying to get help from him.
Prof Pasik is basically an entertainer rather than a good teacher . His gestures and mannerisms of teaching create humour but at the same time it dilutes the seriousness of the subject . The paper pattern is in no way connected to the teaching in the class. He leaves class about half an hour early in each lecture ; the time duration I thought he could have utilised better by giving more insight about lisp which was alien language to most of the students if not all. Once he even conducted a survey which was his daughters' high school assignment - again a total waste of time . Assignments are not discussed in depth . Avoids answering doubts with cheeky replies . Overall not a good source of knowledge.
I don't know why Pasik has a silver nugget because there is absolutely nothing good about his teaching. It is very clear that he has experience in the field and he is a friendly and intelligent man, but the fact remains: he reads off slides word for word, cannot answer the majority of questions we ask on the spot, and does not care whether or not we learn the material in the slightest. When we ask questions in class, we get one of the following: "well... that's not important to our discussion right now", "uh... I don't know off the top of my head... but I'll look it up and get back to you next class" (he never did), "<nervous laughter> uh, well... that's a good question! We'll get back to that later..." (of course he never does). All of the homework assignments are purely LISP programming projects, and when asked one day in class how one writes comments in LISP, he did not know! He had to look it up online while we sat there staring at him and waiting! I cannot believe that he would require us to write massively complex programs in a language that (1) is not taught in the class and (2) he doesn't even remember the syntax for something so basic! He does not hold office hours, so the only time you can ask him a question is before or after class, but he employs the same techniques he uses in class to brush off your questions (and you couldn't even go to the TAs for help since they had heavy accents and also had difficulty expressing themselves in English)! Even worse, he didn't even come to class on the last day which was supposed to be our final exam review session, but instead had those same TAs run it. We were not notified of this change until one or two days before the class itself. The TAs did an awful job, just pulling up his PowerPoints and letting us stare at the slides which corresponded to our questions for a few minutes (I'm not kidding - this is exactly what they did).
The lectures were definitely entertaining, but I can't say I actually learned anything from them. The professor is definitely skilled and experiences, but almost to a point of not caring about our individual class. The professor does not have office hours, and even if you try to schedule a meeting he will simple tell you to stay after class - this is not very conducive for going over material. Also, the teacher did not show up for the last day of class and instead had the TAs teach a review session. We were not informed of this change until the weekend before the last day of class. Since the teacher doesnt have office hours, we should have known that the second to last class (two weeks before the final) would be the last time we see him. Moreover, the final review was worthless - see notes on the TAs below. Finally (though I am about to comment on the TAS individually), I have never been more frustrated with a set of TAS. Despite spending a significant amount of time trying to better understand the assignments in office hours, the tas would ask questions like "Are you sure there is an exam next week?" The TAs spoke so little english that we were reduced to playing pictionary.
Pasik is an interesting and fun guy. It does help to be the right kind of student (interactive, awake, asking questions). He usually doesn't have a text book and doesn't do much on the board or with notes. He basically talks to you. Attendance is absolutely essential. If you show up every day and pay attention, you can't help but get an A, because he explains everything. If you skip classes, and you don't already know the material, then you're in trouble. While I like him as a Professor, he's not the strongest when it comes to math or theory. He's a pretty practical guy. That works for him though, especially in data structures, which is a practical course. His coding skills are very well practiced. If you want your code to be clear, modular, and work the first time, watch him go through code. If he posts code online, take it and put it in your coding base. It's really well written code. By the way, he loves recursion... really loves it. The main thing I learned from him was how to write concise, elegant, semantically clear, recursive code. Little things to note: 1. He will not accept anything late. He assigns things extremely far in advance. Get them done. 2. Make sure you really get the material. Since he lectures well, the average scores on the tests tend to be pretty high (at least in my experience). So if you want an A, you need to do well on the tests. 3. The tests are really straight-forward (no surprises), but they might require you to actually know what you're doing (not just get the gist). He will make you write code snippets on the spot on exams.
Entertaining and fun, cares about the material and seems genuinely excited to teach people. Really, really likes Lisp and Recursion. Doesn't use a textbook for data structures. My only complaint is that given the time (one full semester) he could have gone into a bit more detail about various, more exotic, data structures. But what he does cover, he does very well. So I recommend him.
A very good class and professor. Taking Artificial Intelligence with Professor Mckeown convinced me to pursue AI and computer science further. Very highly recommended.
I took this course in the Spring of 2004 and found it challenging and useful. The course covered the requisite material thoroughly, and offered intriguing (and sometimes quite difficult) programming assignments. Other reviewers complain about the focus on 'boring algorithmic parts' and lack of attention to philosophical implications. This is both ironic and inaccurate on a number of counts. First, the early part of the course was dedicated to a thorough consideration of the difference between human-like and rational behavior; in addition, a number of readings were posted over the term that addressed just these issues. Second, this course is offered in a computer science department; the capacity of computer scientists to have impact on scientific or philosophical problems is founded in the algorithmic details. Glossing over this material would cheat serious students who are willing to do the work. I enjoyed the course and still discuss and apply the material I learned.
Definitely agree with the first poster, though for a different class. He's one of the best professors I've had at Columbia, and has given me a great passion for AI. His lectures are very interesting; even though it was 9am I always went to almost every class (that's very unusual for me); and though I often brought other work to do, I never got any done. Except for the day or two when he'd go over the homework or test, he had my rapt attention every moment of class. For AI in specific, he not only focused on the computer science of it, but also asked students to read a book called "The Mind's I", and set aside a few days to talk about the more philosophical (and very intriguing) side of AI. He is a hard teacher though, and it's a hard class. Below the mean all get C's theoretically. However, he does offer enough extra credit to shift the curve up to the high B's if you choose to do it. He never accepts late work, but even I (who chronically turns everything in late) made every deadline.
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.
Prof McKeown is a nice lady. Let's say that first. She's a pretty lousy professor, though. It's hard to tell whether she's just bored with the material, or doesn't know how to make it interesting, or just doesn't care. In any event, her classes consist of a series of slides that are pretty much straight from the textbook, and a lecture delivered in monotone. She seems actively disinterested in any of the interesting intellectual, scientific, or philosophical implications of the material, and instead grinds through the most boring algorithmic parts, yet without enough detail or mathematical sophistication to make it worthwhile. Avoid if possible.
A very nice professor who cares enough to learn everyones name in the relatively large class. But I don't think she was born to teach. She is very well prepared in that she has everything on powerpoint, but she's not so great at answering questions that aren't in the powerpoint plan. She's also rather bad at coming up with good test questions, asking students to go through every step of an algorithm that is easy for computers, but painfully tedius for humans, and making that worth almost half the midterm. (And giving a full blue book for it). The subject is fascinating, and if no one else is teaching it, I still highly recommend taking it. Kathleen Mckeown is a great professor if you want a friend and a nice office hours buddy, is knowledgeable and cares, but just isn't a born teacher.
this class was awful! class was rough since there's SO much to write, there are no electronic notes available and although professor kender tells an anecdote about writing and speaking clearly during lecture, he quickly started writing incredibly small on the board. the homeworks are killers and the midterm was really hard. LISP is touted as the language of choice for AI, but having it thrown at us in a couple of weeks was just not helpful. i can recognize LISP code, but i can't tell what it means. apparently professor kender is trying to get a LISP course organized that you can take before AI which would probably fix this huge problem.
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.