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.
To keep it short, Dear is a fantastic lecturer, has very clean slides, is very responsive and helpful, and had problem sets/an exam which were very doable in the scope of what was taught. The topics were very interesting, and the material is also applicable beyond just robotics, with use cases in areas like protein folding. The problem sets were due after two weeks, and always covered material from previous lectures, so there was never a lag between what the hw covered and what was taught. The final exam was basically a hw over a 24 hour period, and was worth 25% of the grade. I personally appreciated this--a rough night of sleep before the final won't be the end of the world. Also, from a personal experience, Dear was exceptionally understanding as a professor. Overall, this is a great class I highly recommend to anyone!
One of the most rewarding courses I've taken at Columbia. If you're interested in Robotics and have some background in linear algebra and probability, you'll learn a lot about robotic algorithms and insight into how they work in the real world. The class covers topics ranging from Bug Algorithms, Localization, path planning, etc. to more details on the kinematics of robot motions, etc. Dear is master class in lecturing and the TAs are very helpful as well. Would highly recommend it!
Hands down one of the best CS profs I've had. He's very nice, his lectures are very straightforward, he answers piazza posts very quickly, and explains the concepts very well. If you're not a fan of theoretical math and enjoy more plug and chug kinda math, then yeah this class will be a bit more difficult but as someone who struggled my way through Multi, I was not expecting to take this class and get As on all the assignments. I also liked how tethered this class was to AI / ML, (especially the labs) and it felt like I was learning practical math that I'd actually use someday.
I remember wondering if I should take this course because all of the old reviews, but I am very glad I chose to take it anyway! I don't know if he has changed things, but this course was my favorite all semester and was not a problem. I really like Dear's teaching style, and the hws were never to hard to finish and he gave us plenty of time to do them. Also, TAs had plenty of office hours, and they would literally walk you through the problem step by step if needed. Labs were a bit more difficult because they were pretty rushed, but prof adjusted and gave us the whole weekend to complete them which really helped out. On hw and labs, averages tended to be high, the midterm was a bit harder bc of the time crunch, but people did not flunk for sure. Overall, one of the better SEAS courses in my opinion.
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.
tl;dr don't take his class unless you're very very good at math and/or have a REALLY good support group of friends to help you with his insanely difficult problem/programming sets. This guy is the definition of "let's make this class harder than what it actually needs to be because this is Columbia and you're all in the Ivy League so you all need to be severely challenged". Don't get me wrong, he's a very nice, sweet, caring guy who is incredibly smart and always willing to help you during office hours, but his homework problem sets are absolutely insane. Most of the time, the TA's have no idea how he got the correct solution because he writes his homework questions in such a confusing, complex, convoluted way it will take you a full day just to understand what he's asking in the question, then another day just to solve the problem (if you can solve it in the first place). His programming labs are essentially the same way. They are brain crushingly hard and will leave you asking yourself, "What is this problem even asking me to do?" Problem sets are about 4 or 5 questions, but they have many, many, MANY sub-parts, making each assignment like 16 or so questions. The book and lectures help, but he mainly repeats the same material as in the book, with almost the same exact example problems. I get it, linear algebra is a very dry topic, and it's hard to make it enjoyable to learn, but I could have basically tried to read the book or watched youtube videos in place of his lectures, as they are just the same problems as in the book. After the whole coronavirus debacle, he uploaded short 10 minute videos for each topic, telling you exactly what you needed to know for that particular section. Those videos were incredibly helpful, honestly, it was a bit of an embarrassment to the university system as a whole because you could simply condense each class to a few minutes, (I wish they would have cut the classes short and paid me back my tuition money!). Exams are challenging, but doable. You REALLY have to understand the material inside and out to get anything higher than a C. I'm OK at math, and did OK on his exams, but I had such high problem set grades that I didn't quite care what I got on his final. Luckily, I had a really good team of "battle buddies" who helped me work through his brutal weekly problem sets. A few of them were VERY good at math, and his problem sets didn't intimidate them the same way it did to me. I hate to leave such a nasty review like this, as he's a very nice, caring guy who is very polite, but his class is sooo much more difficult than what it needs to be, but then again, that's like 99% of the classes at Columbia. This silly school would make "relaxation and stress relief" one of the hardest things you've ever done. go figure.
I've had a different experience than the one presented in the review below. TL;DR: If you're looking to plug numbers into equations, get your miraculously easy A, feel like a math sorcerer for a second, and move on with your life - this is neither the class nor the professor for you. But, if you wish to develop a strong foundation of Linear Algebra -- especially in the context of ML -- I'd highly recommend taking this class with Tony. -Background: I took it during my sophomore year as a Data Science major, had zero prior knowledge of Linear Algebra. -Lectures: Tony's relatively fast pace kept the class very entertaining and engaging (even via Zoom), and his lectures were extraordinarily organized and clear, containing little-to-no extraneous BS. The shift to online modality halfway through the semester was seamless. Tony would upload concise (~10-min) prerecorded lectures conveying the gist of what was to be covered in class beforehand, as a convenient way for us to prepare or revisit the material. I found this combination of short, priming lectures and full, in-depth ones very comprehensive and rarely consulted the textbook. Also, Jupyter notebooks implementing what'd been covered in class were uploaded as a complementary resource. -HW: The written HW assignments were as proof-based and tricky as you'd expect from a math class. But what I loved most about the class was its more applicative facet. Beyond the essentials of Linear Algebra, which you can easily learn from Youtube, Tony introduced ML-related applications as PCA, regression, and Markov Chain, which were later incorporated into the HW assignments. The coding projects were, while challenging, extremely well-crafted. Our penultimate project was to implement data-fitting on and predict the spread of COVID-19 in different countries around the world. -Exams: Tony's exams were challenging; there's no denying it. However, if you make sure to understand the underlying logic of the material, you'll do just fine without spending a single overly-caffeinated night at Butler. The questions were straightforward and fair, nothing pulled from the dark holes of the appendix. I studied for the final by merely reviewing the short prerecorded lectures, and I ended up getting 87 on the exam and a final grade of A (the class was curved s.t. ~90 was an A). To incentivize, Tony offered official letters confirming the final grade to those who obtained a final grade of B+ and above. -TA: I didn't have much interaction with the TAs, but I remember them being welcoming and helpful. All in all, it's still one of the best CS classes I've taken (having completed 1004 thru 4701).
On the surface, this class is great. Professor Dear is organized, nice, and offers a lot of office hours for his students. This will especially be evident during the first week, where the material is trivial. However, I do not recommend taking this class for several reasons. The first is the fact that the lectures just spit out different theorems in a convoluted way, where he is just regurgitating statements from the textbook. So you think you can just learn the material from the textbook or online because this is probably not your first time experiencing terrible lectures at Columbia. In fact, it might seem tenfold better, where you can skip class and do the problem sets and learning yourself. So you try the textbook, and realize it's just as convoluted as the lectures, because well, he was regurgitating those statements. And so you go online to learn the material yourself, which works fine for actually learning linear, until you receive the problem sets and realize it's just as convoluted. I can't emphasize enough that the problem is not the fact that you can linear on your own, but to do well in this class, you have to answer those convoluted questions that you won't find any source teaching you how to do. And so you got the TAs, but they themselves admit that they do not know how to solve the problems. Most people have large groups of friends to try to crack the problems together. If you do not know linear, you will be screwed, because well, you will actually be trying to learn linear and find practice problem sets on your own, before trying his problems. Again the problems are convoluted because of his style, not because of linear itself that will be added as a twist. The workload is a lot, one problem set a week and a lab every two weeks. You will really need a light workload to try his class without any knowledge of linear. The most frustrating part is the fact that you will think "This is great. I love to be challenged!" but then realize you will be slaving away only to solve his specific problems because Professor Dear likes to overcomplicate simple concepts. You will spend so much time but learn nothing new. Only take this course if you know linear and want to be challenged to solve those sets, and perhaps not learn anything new. Save yourself and take the regular linear if you can before the curriculum change. If you cannot because you have to follow the new curriculum, learn linear before taking this class and make sure you know a lot if people in this class to do well.
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.