Computing in Context, in case you are unfamiliar, is a class lectured primarily by Adam Cannon but has different sections, much like UWriting. There are three undergrad contexts available: Humanities, Finance, and Biology. I was under the naive and optimistic that, as a biochemistry major, the biology section was going to teach me useful skills and techniques in Python that I could use to both complete the class and do better as a scientist. Unfortunately, Pe'er is the lecturer for the biology context. I should have seen the first red flag for what it was: when Cannon informed us that there was only one recitation section (per week) and one TA for the bio section, while humanities and finance have at least 15 of each, due to the lack of people who choose to take the bio context. I thought it was because not many people in the class are interested in bio, but of course that doesn't make much sense considering CS is a STEM field. Instead, it turned out to be because Pe'er is undoubtedly, unequivocally, the worst lecturer I have ever had the displeasure of witnessing. Of the 6 or 7 lectures he gave throughout the semester, not one was well-thought out or lectured intuitively. He seemed to not know where his own PowerPoint was going, and was entirely too often surprised by what the next slide showed. He has a heavy accent, which in itself would not be a problem if he didn't have a voice that suggests he smokes two packs of cigarettes a day. He truly sounds like his voice is actually two voices, screeching alongside one another a semitone apart. He sounds like he has strep throat, the kind where mucus gathers in the back of your throat, but he refuses to clear his throat. The cherry on top is that he can barely string together two words before adding an obnoxious EHM,,, URHM,,, every 3 or 4 seconds. All of this combined made him the most unbearable person in the world to listen to. Lastly, the material he lectured in class rarely if ever had anything to do with the three projects he assigned in the class. Each project was due two weeks after being assigned, meaning that we had two of Pe'er's lectures and two TA recitations before the project was due. I ended up going only to the recitations, because in lecture Pe'er would go on and on about techniques that were fascinating IF one were interested in his research. We spent maybe 4 lectures on DataFrames and Panda, and neither of those were used in the third project, which I ended up turning in a week after the deadline because I didn't know that we weren't supposed to use those techniques. Apparently, the TA used dictionaries instead, and never made that explicitly clear (he said it in what sounded like an off-handed comment during office hours), but those of us who started from scratch and followed his method finished the project successfully. Pe'er spent all of lecture talking about DNA sequencing and weird, opaque Python commands and it was the most boring class I ever had to sit through. Another thing: the projects were supposed to be relatively easy except for one; for example the Humanities context had the "hard" project on their second one, and the Finance on their third. For Bio, Pe'er made the first almost outrageously difficult, and the other two got exponentially harder.
I took Machine Learning with Professor Pe'er in Spring 2017 - I've been tardy about writing a review, but I feel it is necessary. I am genuinely in awe at how bad my experience in this class was, in seemingly every way. To start: Professor Pe'er. It is fortunate that this man is, in fact, a professor - were I to call him "Instructor Pe'er", one may get the false impression that he is capable of instructing anyone. He is not. I have never seen a human so uniquely unsuited for pedagogy as this man. His classroom delivery is a complete trainwreck - when he's not stumbling over his words or saying "ehm" for 15 seconds, the words he does say are incomprehensible, even when explaining material that is clearly within students' grasp. Unfortunately, most of his lectures did not fall into this category, as the prerequisites for this class grossly understate the necessary statistical background. As a CS student with only an intro-level stats background, I rarely had any idea what the hell was going on in lecture. Professor Pe'er's attempt to bridge this gap was laughably insufficient: he spent one day at the beginning of the semester attempting to speed through all of statistics. It didn't play well. Here is how Pe'er explained what a convex surface was: he brought a muffin into class, and passed it around the room. Here is how he explained differences in dimensionality: he printed out a picture of Antarctica, wrapped it around an apple, and placed it under an overhead projector. He proceeded to stab the apple with a knife, cutting out the outline of Antarctica. I wish I were joking. One gets the impression that he might not know the difference between "preparing for lecture" and "purchasing lunch". The homeworks, while being the only useful part of the course as far as my own learning was concerned, similarly left a lot to be desired. Each problem set was written in impossibly dense and questionable English, requiring several hours of what was essentially decoding by TAs and other students before the meaning became clear. After this, the process of completing the homework wasn't much better. There was a STRONG emphasis on the mathematical background of the material, which I wasn't a fan of: despite having completed a course in machine learning in the computer science department, I feel I've gained almost no intuition for how/when to use the models we supposedly learned. Focusing on the math behind ML seems to be typical of 4705; this could have been fine if the instructor was capable of pulling it off. He was not. Even Pe'er's slide decks were of marginal use, combining incomplete/incomprehensible sentence fragments, mathematical derivations that were somehow both excessively long and too incomplete to actually follow, and completely indecipherable scrawlings done in class. The textbook for the class was also too dense for a beginner in the subject to comfortably consult. In order to be able to complete the homeworks, my classmates and I had to teach ourselves all the material from slides we found online from other universities. Literally nothing the professor provided to us contributed to our learning in any capacity. The only saving grace was that the TAs were all qualified, helpful, and not completely devoid of pedagogical abilities - unlike the professor. I regret this class more than any class I have ever taken in my time at Columbia. I had read the previous Culpa reviews and thought, "Oh, it'll be fine." I flew too close to the sun. It was not fine. Do not take it. Do not take any class with Pe'er.
I cannot stress enough how awful this teacher truly is. He will teach you absolutely nothing. He does not explain anything thoroughly. He cannot answer any questions. His slides are a total mess. If you can avoid taking this class with this teacher, I highly recommend you do.
This review ended up rather long, so TL;DR: this class is hard and confusing- do not take it! Unfortunately, I strongly do not recommend taking this class. It was probably my least favorite class I ever had to take at Columbia (disclaimer: I just took it as a second semester senior so I may be biased, but I still think this is a very honest assessment). I wanted to avoid taking Machine Learning because I was trying to have a chill semester, but I wish I had instead. Professor Pe’er is an extremely nice guy, which makes me hesitant to write a poor review, but I had a very bad experience with this class. The material is hard, but what truly made this class truly difficult is the lack of resources to learn from. Usually, I can rely on the lectures, class notes, or the textbook to learn the material for a class. However, I could not understand the lectures due to Professor Pe’er’s delivery and stuttering, the class notes were confusing and extremely difficult to study from, and there was no textbook. Professor Pe’er has an accent, but it is the stammering and stuttering that made it almost impossible for me to understand what was going on in class. He also spoke through a microphone which further distorted his sentences. I’m not trying to exaggerate, but it took intense concentration and patience during lecture to make sense of each sentence for me (moreso than any lecture I’ve ever had). Eventually, as a second semester senior, it was just too much effort for me and I was mostly zoned out during class. There was no textbook to learn the material from. Thus, I was left with learning from the class powerpoints. The slides did not contain full explanations of concepts and diagrams, so they were very hard to decipher. I mostly ended up googling topics and watching Youtube videos to try and learn the material. This class is a mix of computer science, biology, and statistics and the material is unsurprisingly very hard to understand. The problems sets were long and extremely difficult (8 in total). Most of the questions were worded poorly and required extensive clarification on Piazza before you could understand them. Given that the material itself was difficult and confusing, they took me hours and hours to complete. After a couple problem sets, I just stopped caring and scribbled down whatever work that looked okay because it wasn’t worth the time stressing over it. For the midterm, you had to answer 3/8 questions. Not surprisingly, it was hard as well- the average was a 64. It was open book/note, but I didn’t even use anything I brought in. Afterwards, he gave us an extra credit assignment where we had to solve 3 more of the midterm problems (full credit received half the points between your grade and the highest class grade). If you do take this class, I would just focus on learning on 2-3 of the main topics that will appear on the exam (BWT, HMMs, etc.). The project was okay. I was worried our project was too simple because everyone else’s sounded complicated, but most groups didn’t come close to getting good results so don’t overexert yourself. In conclusion, this was one of the most frustrating and challenging classes I took as an undergrad, and unfortunately it was during my last semester here. Avoid taking it, unless you are truly interested in the subject- just take ML!!!! Sorry Professor!
Everyone kind of sits on the continuum between weeding out people, and helping them learn. Professor Pe'er is definitely on the latter. Here's why: 1) Only 80% completion of your homework is required, i.e. an 80% translates to 100%. Now, I'll caveat this by saying these assignments are done weekly for the first half, and some of them are pretty tough if you weren't paying careful attention in class. 2) Feedback, feedback, and feedback. Every homework assignment you turn in gets notes meant solely for you. Your final project will have presentations, and you will get feedback from both classmates AND the professor and/or TA, each time. 3) A steady/reliable pace with a very welcoming attitudes towards questions. He leaves his cell phone, personal email, and allows skype sessions over the weekend - just to help you learn or get help with your project. 4) Cameron (the TA) is super nice and adopts the same attitude as Professor Pe'er - he only wants you to learn. In addition to that, this course is heavily front-loaded - it's going to be a sprint the first half. I can't speak for everyone else, but I really appreciated this - it gave me more time to work on my project (the last half of the semester), and deal with the impending deadlines for all my other classes. Now, some caveats: 1) His lecture style is pseudo-interactive, or at least tries to be. He asks a lot of questions to check comprehension, and there were plenty of awkward moments where nobody answered a very obvious question (albeit, I'm not sure if it's because we were all scared because it wasn't obvious at the time or because nobody cared. Likely the former). 2) I see other people complain about his voice, his stuttering, blah blah, but if you're interested in the material, then you'll likely pay attention naturally (and you should; it's interesting stuff). 3) The material -can- be hard to follow. It's -a lot- in roughly 2/3rds of the semester. Some of it is almost hand-wavey. This is especially true if you've never had exposure to genomics, or even biology. That being said, I came in here with 0 biology background, and was okay.
Pros: I thought the assignments were good, but super time consuming and there was one every week, that will squeeze all the time out of you, but in a way you learn. Midterm fair and final was ok. Grading was reasonable. Cons: The worst classroom delivery I have ever seen in my entire life including school anywhere. Machine learning is no doubt fascinating but does require some foundation, but his classroom delivery is some of the worst I have ever seen, stammering, stuttering, is ok for CS 101, in a community college but totally unacceptable for a graduate level course in such a esteemed institution where the pay for professors is high and the fees are exorbitant. On top of his inaudible and cringe inducing voice the material is complex but no doubt interesting. Professor needs to desperately address this and take a look at videos of himself on how to improve for future classes or otherwise just stay a researcher and not lecture. Just look at the how well Andrew Ng did his course in Coursera on Machine Learning. Because of the above it felt a waste of the money we spend on course here. I think Jebara would be much better, understandable and you would feel your moneys worth. But if you can bear and listen to him maybe the course is made for you.
Machine Learning is a fascinating subject and is clearly a very valuable subject to know about. However, our class was very unfortunate to have been taught by Professor Pe'er. He is by far the worst professor I've ever had in my academic experience. To add insult to injury, he is very unapologetic about the way he manages things and treats his students unfairly. Assignments: Every assignment included grammatical errors and unintelligible sentences in addition to mistakes in the problem descriptions. As a result, 1-2 day assignment would turn into a week-long affair. Future assignments are also based on answers to previous ones even though the class was not given the solution to the previous assignment. As a result, students who might have had incorrect answers in the previous assignment would unknowingly have errors in the next assignment. Misinformation: Professor Pe'er likes to portray himself as a fair individual but time and time again did he prove us wrong. Our first quiz was multiple choice test where correct answers were given 3 points and incorrect negative 2. However, the class was not told that leaving answers blank would result in negative marks too. Another example of this kind of behavior was demonstrated when he ran a poll to decide whether assignments should be due on a Friday or Wednesday. >80% of students who voted, voted for Friday yet the Professor appeared to have conveniently forgotten to tell the class that over 60% of the entire class needed to participate in the poll for it to be deemed valid. Something he decided to tell us after the fact. Sadly there are many more examples of this kind of behavior which is simply unprofessional. I can't speak to how Prof Jebara might teach this class and whether it's any better. But my main advice would be to stay away from Prof Pe'er, simply because you'll waste more time clearing up any confusions than being able to dedicate time to the actual subject.
Machine Learning by Prof. Pe'er was an excellent class. The course was well structured, however the course load was pretty heavy. Nonetheless, the assignments and mid-term made you learn a lot. cons :- 1. The problem explanation in the assignments were vague at times. The TA's were irresponsive most of the times, thus most of the times went struggling with the problem statements. 2. It was difficult to follow prof in class, but hey, the lectures were recorded on CVN! pros :- 1. The prof was very approachable and cared for his class. 2. He atleast tried to make sure that everyone gets the concepts right. In a gist, i'd recommend this class to anyone who wants to learn machine learning in a way such that the intuition and math behind the concepts is both clear.
Prof. Pe'er is really well-intentioned, and it's clear that he cares a lot about his students. I took a lot away from this class, even though it was a struggle. That said, DO NOT take this class if you're not remotely interested in machine learning - it's _not_ worth it. There are several other breadth/AI track courses that are (possibly) more interesting. If you _are_ interested in the subject, however, I'd definitely recommend taking this class with him instead of with Prof. Jebara. 1) Teaching: If you have trouble staying awake in classes where professors speak really slowly/if you've ever been in one of the Mudd classrooms and know how boring they are, BRING COFFEE/TEA/anything that keeps you awake. Prof. Pe'er speaks really slowly, so much so that when you play his lectures at 1.5x speeds (they're all on CVN, which is great), it sounds like most people speaking at a normal pace. 2) The material: While the class is very math-heavy (as are most courses on machine learning), Prof. Pe'er is very generous with his use of examples to provide better intuitions for the concepts/algorithms covered, and even tries to do live demonstrations to help make the math clearer. Some lectures and topics have a very steep learning curve even if you have the prerequisites covered, but I learned a tremendous amount from this class and I don't think I would have gotten that much from Prof. Jebara's far more theoretical approach. 3) Homework: The homework is time consuming, not because each individual assignment is long, but because there are assignments EVERY WEEK. The assignments are hard, so starting in advance is essential (which means you're usually working on ML assignments 4 days a week at least), and responses on Piazza from the TAs are erratic and come in waves, so they're not reliable. Prof. Pe'er does allow group work with some constraints, so that usually makes working on assignments easier. But START EARLY. The assignments are also usually vaguely worded, which was a pain to deal with. 4) The tests: This was the most confusing part of the class. I think Prof. Pe'er experimented with a lot of testing styles because it was his first time teaching this class. (Either that, or he always throws 4 different testing styles at his students in all his other classes too because he thinks it builds character.) - Quizzes: multiple choice, where any number of choices could be true or false, and you lost points for either answering wrong or not answering at all. (So really, you had a 50% chance of getting it right anyway..) The questions on the quiz were theoretical and just requierd you to know the concepts, and some involved doing some basic calculations/inferences. - Midterm: Easily the best test in this class. It was take-home and entirely programming, with 50% of the grade going towards an explanation of your approach. I think the grading was pretty fair - you got graded on the performance of your approach for the programming part, and the quality of your approach for the explanation. Very straightforward and doable in the 4 day timeframe given. - Final: This came out of nowhere - the questions on the final ranged from proofs to algorithm creation to calculations - basically a very, very difficult exam. He gave us a practice final that, as it turned out, exactly resembled the actual final, but it still gave us no way to prepare, given that all the testing methods we'd had before were so different. It was almost impossibly long (though challenging and very interesting, required you to actually apply knowledge to real-world problems). 5) The curve: VERY generous curve. Another reason to definitely take this class with him and not Prof. Jebara. I think he really recognizes how hard he makes the class (in terms of workload, learning curve, difficulty of final) and curves to a high-ish B+. A large percentage of the class got A-range grades. Again, this is a professor who really cares about his students and the effort they put in, and isn't just looking to make this class frustrating and impossible. In general, he's very very responsive to feedback, even takes reasonable requests for class-wide extensions, and always tries really hard to make sure ever single student understands. I haven't had many 4000-level classes where that's the case, so this was refreshing. The class is still extremely frustrating, but ultimately rewarding if you like the material and put a lot of effort into the work.
If you find Itshack Pe'er teaching Machine Learning, avoid it, unless you know most concepts of ML in advance. Weekly assignments wasted most students hours and hours without any progress. The wording of assignment was very vague. To make situation worse the TAs were constantly unresponsive so you can't get clarification in time (and after the midterm they closed Piazza). The two quizzes, contained T/F questions, suffered same vagueness. The midterm question is interesting and good. although the grading of midterm is not very fair. it was OK. I have not taken the final exam yet, but the mock final seemed completely different to assignments and quizzes, to the extend that you might think it was for another course.
HORRIBLE lecturer (cannot complete a sentence without stuttering and "ehhhh" every other word). Also, he put his one office hour on Tuesday mornings at 8:30-9:30 am. First of all who is gonna wake up that early... not to mention the comp sci building doesn't even open til 9am. So good luck getting help from him in person, and his responses to email were often curt and unhelpful as well. The TAs were alright... nothing amazing and when they made a program to check our programs A LOT of people had to go for regrades that weren't very liberal at all. Most of the grading was done without taking into account how horribly written and ambiguous the problem sets were. Covers recursion and GUIs... which are definitely NOT supposed to be a part of the intro class curriculum. I didn't bother buying the book for the class and ended up with an A-... But that A- was the result of literally 20+ hours each week on the problem sets. And I guess I got REALLY lucky on the midterms and final... Be happy if you can stay average in the class. The class started out with over a hundred students and ended with only 60ish students. In short... try your best to avoid this class at any cost. And if you must take this teacher, don't be afraid to harass the TAs with questions and give yourself PLENTY of time to finish the problem sets!
This guy may be a genius in programming, but has no concept of how to teach properly. He can't finish one sentence without stuttering, loves to pick on students during lecture to make them feel embarrassed, and gives poor/dismissive responses to students' questions and concerns. Good luck surviving his useless, boring lectures - you'll be staring at the room's clock almost every second, dreadfully hoping and praying that the class gets dismissed early or ends soon enough (which takes like a millennium). Time dilation effect, anybody? You will definitely come out of lectures more confused about the concepts than before - attending them was almost a complete waste of time and do nothing to help with his crazy problem sets, in which you're not even allowed to discuss/brainstorm any ideas with classmates before submission. This would make sense if the homeworks were doable alone, and didn't incorporate higher level comp sci topics like recursion and GUI that no other computer science teacher covers in an intro course (for non-cs majors!!!). Ultimately, this may possibly be the most horrible experience ever at Columbia with a professor (not friendly and gives terse replies to emails). Avoid him at all costs or prepare to suffer like never before. Very mentally draining and the only salvation is when the course finally ends (but not everybody can make it to the finish line unscathed). Don't do this to yourself, unless you're a genius at MATLAB of course; even then, I would still think thrice about choosing Pe'er, for he turns a potentially fun class into a complete torture and disaster due to the lack of organization. It's not healthy!!!
All you really need to know about this class is that it's awful. The class started off like this: too many (easily over 100) students crammed into a room struggling to stay awake as Pe'er tries to explain simple programming concepts (like binary and the way computers represent integers) in convoluted terms. The homework started out so easy that nobody really seemed to mind. After a few weeks, though, he transitioned to horrendous weekly homework using MATLAB in ways that no one ever intended. Going to class won't help, and asking the TAs won't help. All you can really do is beat your head against your keyboard for hours on end until a mostly-functioning program comes out. Don't even think about asking your classmates for help; late in the course several people were picked out to complete a special assignment as punishment for cheating. How are the exams? For the midterm he gives you 12 trick multiple choice questions about the fine details of MATLAB syntax followed by 3 pieces of code to correct. The code correction is generally straightforward, but good luck knowing how well you did on the rest! The real tragedy here is that Paul Blaer is the other instructor for this course. Avoid any non-Blaer instructors at all costs, at least for this class. You'll save yourself many a headache.
This class is terrible. If you're in it, you should probably just curl up in the fetal position while listening to Justin Timberlake's "Cry Me a River"--you'll get the same grade that you would have gotten if you had gone to every lecture and slaved your ass off. Unfortunately, while Itshack appears to be a computer science genius, his command of the English language appears to be worse than my command of the Matlab programming language (which thanks to his terrible lecture skills and general lack of teaching abilities, is only slightly better than William Hung's English). He mutters under his breath and seems to be unable to articulate his words beyond mumbles and sighs. Once upon a time, there was a class called Matlab, which was supposed to be for non-computer science majors. However, the material in this rendition of W1005 is comparable to what Stephen Hawkings does for challenge problems.