professor
Ansaf Salleb-Aouissi

Apr 2021

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.

Apr 2021

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.

Jan 2021

Hands down the most annoying class I've taken so far. A lot of students are saying this is an easy class but I have to respectfully disagree. I will agree with one thing from other reviews: Prof Ansaf is a really nice person. Grading literally took ages, with no communication from the TAs or the Prof on why it took nearly a month to get our assignments graded. This made it difficult to see what I needed to work on, and also strategize if I should skip the last assignment or not (since the lowest assignment is dropped). The Head TA for this semester was, to put it nicely, rude. That is the nicest word that comes to mind based on their class-wide announcements and personal interactions. I'm sure they're smart and are very knowledgeable on the subject matter at hand - but their communication skills when interacting with students are poor. That said.. there are some things I really enjoyed: Generous final grade, +2 pts if you submit something on time, implementation of Python coursework is a great addition to the course, allowing 'coding group' to work on a coding assignment together was a great way to meet new people in a virtual environment. Caveat: I took this class in Fall '20 in the middle of the pandemic. While I faced a heavy workload due to this course I'm sure the teaching staff did as well.

Jan 2021

Ansaf is one of the kindest professors you’ll meet at Columbia, but she’s a mediocre teacher; she’s too prone to glossing over the meat of the material. Everything you need to know can be easily found in the lecture notes she posts at the end of each week, so attending lectures is pointless. I think attendance trickled down to 20-30 students after the midterm. I will say that the course felt rushed near the end. Discrete was recently bumped up from 3 credits to 4 credits because the syllabus was revised to add more targeted prep for classes like AI. However, it’s clear that Ansaf was not ready for this change. We went through the first three chapters at a snail’s pace before the midterm, and then Ansaf had to cancel a full week’s worth of lectures because she got COVID. As a result, the second half of the semester felt strapped for time, and we blitzed through the rest of the material. It got to the point where I don’t feel adequately prepared for classes that require Discrete as a prerequisite even though I got an A in this class. On the TAs: it seemed like most of them were TAing for the first time. Piazza posts took forever to get answered, and it usually took a few weeks for graded work to be returned. I never attended their Friday recitations, but the problems they made were generally harder than the homework or exams. Being able to solve these problems means that you truly understand the material, so be sure to do them if you know you’ll need Discrete in the future. At the end of the day, I’m not sure if I can recommend Ansaf’s version of Discrete. It’s one of the easiest classes at Columbia and doesn’t require a ton of work, but don’t expect it to sufficiently prepare you for higher-level math or theoretical CS classes. If you have the option of testing out, I think doing so and taking a more advanced course in its place would be a better use of your time unless you desperately need the GPA boost.

Jan 2021

This was a great class. Ansaf is an excellent professor and cares a lot about her students. I took the fall 2020 version of the course which was entirely online. Ansaf did a terrific job adapting the course to an online format. I am talented at math (A+ in the course) but still got a lot out of the course. I think prior reviewers do future students a disservice by saying the class is too easy. So here are the exam stats for my semester: midterm average was 88.6 and the final exam average was 78.4. Clearly many students struggled with the material on the final exam. It was a very fair exam -- my point is that the class is not trivial if you really want to master it. Some students have said that it is easy to hurt your score by making a careless mistake. The class is not akin to a heavy computational Ordinary Differential Equations course where a single mistake is easy to make and will throw you off. If you are making mistakes on the problems in this class, you generally do not have a perfect understanding of the concepts. And these are key concepts in mathematics. If you actually pay attention in lecture, read the notes, and also read the text (the Scheinerman text is solid), you will learn a few important concepts even if you have a solid math background. And these are very key concepts in math. The coding assignments are good Python practice. Even if you place out of the course, I would recommend taking it. It's a very crucial course in one's intellectual development and it's enjoyable.

Dec 2020

I was really disappointed with this class. Professor Salleb-Aouissi is probably one of the nicest professors I've had at Columbia but the curriculum for this course was a joke. We went extremely slowly, not in-depth at all for any unit, and had to condense graphs (one of the hardest units) into a single lecture and didn't even touch on the harder concepts in graphs. Nonetheless, if you want an easy A, take this course. What really irked me more than anything though was the TAs. It seemed like they did not communicate at all with one another. Frequently, you would get two completely different answers if you went to two different office hours. Furthermore, the grading was sooooo slow. I get that TAs are also students but most of these exams were multiple choice and the coding is run through an autograder... so taking three weeks to grade the assignment is a bit of a letdown.

Dec 2020

Very very easy. Ansaf is a lovely human, and the class proceeds slower than my high school precalc class. If you want 4 points' worth of an A, go for it.

Apr 2020

Do not take this course if you are decently great at mathematics. I absolutely learned NOTHING in this course. I tested out this course but I decided to take it anyway to graduate in time. It was the worst mistake I had in Columbia. The problem is that the professor did not go over anything in-depth and I am not even sure she knows the content well.

Oct 2019

I took this class Spring 2018 Professor: I think that professor Ansaf is great. Really, despite all the comments written below I still think that it is unfair to moke professor only because she is a naturally kind person. She was always approachable and her course was extremely well organized. Organization: - first of all, you can see all the topics she is going to cover on courseworks from the very first day of the class - you can also see the dates of upcoming exams/midterms to organize your schedule (you may think that it is always the case but once you get more experience with Columbia, you may realize that it is NOT) - there were always availability of lecture notes handwritten and typed (also very helpful and rare at Columbia) - there are two books for this class which cover all the material but students usually do not notice the existence of the second one: it is only for "inference topic" but you do not have to buy it. All of them are always available at the library OHs: I personally never went to OH and I cannot say anything about TAs for this class, but the overall organization was so great that I even didn't have to! Everything was in books and lecture notes. Exams: Midterms were great: you can have a cheat sheet with formulas you may forget. Then you do not need to study formulas: you basically have to UNDERSTAND the material. Moreover, it consists of numerous small problems: it never happens that the problem is worth 40-50-60% of the exam (as it happens in other classes: but you realize it again only with more experience at Columbia). That is why when you cannot solve something - you still will be fine. Overall feeling: It was the only course where you didn't need to stress out and be scared as hell before exams if you missed a lecture because everything was organized so well that another student even didn't need to go to a lecture. Probably, that is why everybody decided not to attend lectures and then to complain. Teaching style: This class is big: one section is around 150 students. And it is always hard to explain material if there are so many people. If you go to the lecture and keep attention to what the professor explains - you will definitely enjoy her teaching style. If you stay in the last row and spent half of the lecture on facebook - you probably will not enjoy her teaching style. That is why to enjoy this class I would suggest to go to the lecture and try to listen to the professor, to attend her OHs: it is the only way you will really enjoy the Discrete. Believe me, Ansaf is great: you just have to keep attention to what she is saying. In any case, if compared to other classes, you always will be well equipped with all the materials needed.

Mar 2019

Professor Ansaf lies somewhere in between awful and good. Extremely friendly and approachable but very mediocre when it comes to teaching the actual material. This is not really a big deal because discrete maths (as taught in Columbia anyways) is a very easy class, lacking all the rigour that makes discrete mathematics actually useful for CS. My biggest problem, however, are the ridiculous midterms , designed not to test someone's knowledge and understanding but rather how careful one is in avoiding silly mistakes. If you are taking this class, you better hope you are the type of person that does not make dumb oversights or else you really are in hard for a hard time

Mar 2019

Professor Ansaf lies somewhere in between awful and good. Extremely friendly and approachable but very mediocre when it comes to teaching the actual material. This is not really a big deal because discrete maths (as taught in Columbia anyways) is a very easy class, lacking all the rigour that makes discrete mathematics actually useful for CS. My biggest problem, however, are the ridiculous midterms , designed not to test someone's knowledge and understanding but rather how careful one is in avoiding silly mistakes. If you are taking this class, you better hope you are the type of person that does not make dumb oversights or else you really are in hard for a hard time

Jan 2018

Don't take this class - it isn't worth the paper you will write notes on. Overall, one of the worst classes ever. Ansaf is very nice which is a redeeming factor for her but her TAs are lazy and never graded an assignment on time - we got the midterm back two weeks before the final and homeworks were continuously regraded because one of the TAs decided that the class is "too easy" and said to a few of us that he will take it in his own hands to make the class tougher- completely graded off rubric should never be allowed to TA. Ansaf is lazy as fuck and would be disorganized. Her iPad never works but she insists on projecting it to everyone.

Jan 2018

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.

Jan 2018

I took this Fall 2017. Lecture: I know that most students stopped going to lecture at the end of the semester because they found it useless, but I disagree. Although she does post power point slides summarizing what she teaches in lecture, they are a fair amount of helpful examples that she goes over in class which are not included in the power points. These in-class examples are also closely aligned with what she puts on the exams. The overall consensus within the department is that Ansaf is a nice person, but a so-so teacher. This is true. Her lectures were average in every respect: organization, clearness, etc. I was a student that always asked questions in class and she was always willing to stop what she was doing, unlike other professors, to answer my question and make sure I understood. Homework: Took me about 5-7 hours for every homework assignment. If I got stuck, I would go to the TA office hours for help—at OH, the TAs (at least the ones I went to) were incredibly helpful and often just gave me the answer. Homework is doable if you pace yourself, ask for help from your friends/TAs at OH/TAs on Piazza. Exams: The exams are EASIER than the homework, and as I said before the questions on the exams are closely aligned with the ones she goes over in lecture (again, go to lecture). Overall, I would recommend this class. Ansaf's kindness/approachability, combined with a generous curve, make this class worth taking despite the fact that her teaching is so-so. You will learn.

Dec 2017

Ansaf is nice. That is the best thing I can say about her. I had her for Python last year, and she has improved since then, but her Discrete Math class remains disorganized and frustrating. Ansaf has the basic skills of a teacher. She is able to introduce and explain new concepts and provide examples to clarifies what she means. Beyond that, though, she becomes very repetitive. She teaches at an extremely basic level without any breadth or depth. Her lectures could be condensed to fifteen minutes. Her lectures are organized and simple, which made them worth going to rather than just reading the textbook, but not extraordinary or even excellent. Ansaf's exams are a nightmare. Not that they're hard - they're actually quite easy, according to the nonexistent curve. Which means that if you make a mistake, there will be no "safety net" to catch you. Her exams simply aren't rigorous enough. You need to be careful and achieve perfection. Watch out for the TAs: their grading is arbitrary and aggressive. You will lose a large number of points on small mistakes. The quality of class is subpar but you will survive. You'll just be miserable while you're there.

Dec 2017

Ansaf is so, so kind and helpful, but tends to oversimplify concepts in class.

May 2017

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.

May 2017

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.

May 2017

I took this in Fall 2016. Disclaimer: I got an A+. Discrete math is an easy topic, but the professor is a bad, boring, slow lecturer, and the TAs are neither very friendly nor understanding (although very responsive). They all seemed to think they were much smarter than every student--and I'm sure they all A+'d the class and think this is easy stuff, but that doesn't give them an excuse to talk down to us. I have friends taking this now (Spring 2017), and they also think the TAs are very full of themselves and have times gotten into little spats with students on Piazza. They're constantly arriving late to office hours, sometimes unable to solve the homework problems that they make and assign themselves, and overall just incredibly pretentious. Take this class with a different lecturer--or just different TAs--if you can.

Dec 2016

Ansaf is a strange breed at Columbia. I've never seen a teacher care so much about the academic and personal well-being of her students. Step into office hours and she exudes warmth and happiness. Her and the TAs were very responsive on Piazza, and also very willing to listen to arguments for grading changes. Lots of partial credit on exams as well. Overall pretty easy class. However, the actually teaching quality has a high variance. I think she does a fine job of explaining stuff, but she goes extremely slowly and there is almost 0 value to actually showing up to class, when you can just skim the entire week's powerpoints in 20 minutes and have caught up on the material. Overall, I would definitely recommend this section. However, if you want a rigorous understanding of Discrete, and also to be challenged in class, I would look elsewhere. Jessica Ouyang taught a concurrent section the semester I took the class, but she was less popular simply because she offered those things and people (including myself) were too lazy and just wanted to get out of a requirement.

Jan 2015

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.

Jan 2015

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.)