TLDR: Take him if you want to have a good mathematical intuition of stats and like challenges. If you hate math and thinking, then take the others. The Good: Professor Cunningham is the best professor to have if you're genuinely interested in Statistics. He makes sure that the class understands the mathematical intuition behind concepts like linear regression and hypothesis tests. He's extremely good at answering questions. I once asked a completely nonsensical question in class and his answer somehow made complete sense. His jokes are as dry as the subject material, but they're still funny. He's also always willing to talk with students. Stay after class and sometimes you can ask him about his time in Wall Street or general career advice that's very helpful. It's very obvious he cares about teaching and he goes out of his way to make very good practice finals and study guides. I've also heard that he's pretty good looking; so that's an added plus if that helps you pay attention during lecture. The midterms and finals are a set of easy questions (reworded versions of problems explained in class) followed by a question that nearly no one gets and requires you to extrapolate from concepts in lecture. Finally, there's a great curve. So even if the class is kind of hard, the class will still inflate your gpa. The Bad: The homework is really random and obnoxiously tedious. Zero tolerance for late work. Also homework had to be uploaded to courseworks which was a bother. You have no idea what your grade is throughout the course.
The worst class I've ever taken at Columbia! First of all, the homework material does not reflect what we cover in class (when we asked him if we have to know the material that was covered in the homework, Cunningham had no idea what the hell we were talking about because he is not the one assigning the homeworks--the TAs do that). Secondly, he mostly covers proofs and concepts in class rather than solving problems. Although I am perfectly okay with that, as a consequence of his homework not being reflective of the material we must know for the class, we get absolutely no practice for preparing for the exams (Oh btw, his exams are probably one of the most hardest exams I have ever taken at Columbia so far). It's a sign that there's something wrong with the professor when he covers concepts like Poisson distributions, ANOVA, logistic regression that even people taking higher level statistics classes right now had not yet learned or had just covered them in their 4000 level classes. If you want to keep your sanity, avoid Cunningham. His class is five times harder than intermediate level CS and Econ. classes I'm taking right now, COMBINED.
Comparatively speaking, this course has been a superior experience in terms of imparting knowledge and tools in introductory statistics from any predecessor that I have taken. Professor Cunningham possesses an unmatched passion for his field that is as refreshingly tangible as it is infectious. The curriculum is crafted in a structured, organized, and accessible manner and Cunningham’s lectures are delightfully animated by his witty antics and desire to thoroughly communicate the topics at hand. Through adjustments implemented during the semester, Cunningham has demonstrated that he is both receptive and encouraging when it comes to feedback from his students. There was, however, an illusion at certain points in the semester, (that existed predominantly in the first half) that I was taking two courses instead of one due to the large disparity between what we were being taught in lecture and what the readings and assignments were on. By its nature, this class is oftentimes heavily bogged down with mathematical proofs and intricate notation. Cunningham was mostly able to navigate this well, though he tends to sacrifice simplicity by heavily embellishing points that could otherwise be delivered far more optimally. If he were to thoroughly follow through on some of the exercises he had inventively illustrated in his lecture slides, I feel students would be better able to intuit concepts. Cunningham broadens the scope of the topics he teaches to be applicable and useful outside of the classroom which is an invaluable and highly recommendable quality.
This class was easily one of my favorite classes I have taken at Columbia. As an undergrad who is not in the statistics department, I sometimes had to play some catch up on some of the statistical background, but it was totally worth it. Cunningham is, in my view, the ideal Columbia professor. He expects a lot of his students, he won’t be easy on you, he doesn’t put up with student bullshit (turning in homework late, cheating on exams, etc.), but is extremely good at teaching the material, and always happy to answer questions. He is also insanely hot. The pace of the class is heavily dictated by students asking questions to slow him down. For the first 3 weeks or so, people wouldn’t raise their hands when Cunningham stopped for questions, so he would move on assuming we were ready to go. Once people got comfortable asking questions in a large classroom, the pace slowed, he reviewed stuff that people were confused about, and things hit their stride. He is extremely good at explaining the concepts of the various algorithms through examples, diagrams, demonstrations, etc. As such, one walks away with a very good understanding of what the pros and cons of various algorithms are. His slides are quite detailed, and if you take the time to understand everything on there you will be golden. He supplements the slides with hand written examples and notes when necessary. This isn’t a proof based class but you definitely need to be capable in linear algebra and basic statistics to do some of the math with the algorithms provided. HW 0 should be a good indicator of whether you have the appropriate math background or not. If you are an undergrad in this class, you will have to take some time to tackle the material outside of class. He tries to scare you on the first day of class, but if you’re willing to put in some work for this class, don’t let it deter. Cunningham covers a LOT of material, and in a decent amount of depth, so I would usually walk out of the classroom overloaded, but after going back through the slides and thinking through things, I was generally good to go, and this process resulted in me getting a very high grade in a mostly graduate class. The way he phrases the key takeaways of each algorithm are a godsend so if you just right those down in class, that will help you work through things on your own. His exams are fairly conceptual, with one problem involving an in-depth mathematical derivation. In our case, he made the midterm a bit too long (which he told us before we started), but overall the class performance was lower than I expected, so I think the grading was quite fair. Cunningham does his best to emphasize the learning in the classroom rather than the grades, and his bravado combined with his young age makes for a really awesome and energetic classroom environment. On a slight tangent, it is also nice to see a teacher who is willing to call out a student for opening an exam early, as stuff like that seems go unnoticed for many professors here. Overall this an interesting course, covering a lot of material, with useful assignments, taught by a great professor. If you want an easy class, look somewhere else, but if you want to learn a lot and really understand the material, then sign yourself up.
Cunningham is a pretty good professor. His explanations are generally very clear, and he cracks some jokes occasionally. One thing that isn't so hot is how he is so unresponsive to emails and has half an hour office hours right after lecture. Just be sure to look over the slides and ask questions in class - he is very open to questions. Be sure that you are comfortable with linear algebra, calculus III, probability and statistics (at least Linear Regression Models), and programming in R. Homework 0 is the homework that Cunningham gives to see if you can hack the course or not. It's also a good idea to pick up LaTeX to format your homework - otherwise, you'll have to scan everything to submit on CourseWorks. Be warned that a good portion of the class comprises of Stats MA students, so you must do significantly better than the average (which is usually pretty high) to get an A. Otherwise, the average is curved to a B+.
Fun class, manageable workload, great professor, interesting topics and no textbook. He really encourages people to ask questions in class so do take advantage of his willingness to answer questions, no matter what other people think of them. Do learn some linear algebra and R beforehand. All programming assignments are done in R. As well, he strictly requires people to hand in pdfs for written assignments, and since it uses a lot of math, it's worthwhile to learn LaTeX. Also, be aware that this class is usually populated with graduate students mainly from the Statistics Department, so if the midterm or final is heavy in math and stats calculations or proofs, you will need to nail those tests or else get beaten by the curve. Also, TAs are helpful and often provide hints on Piazza, so look forward to that.
I really enjoyed Stat ML with Cunningham. Having taken COMS 4771 Machine Learning with Pe'er, I think Cunningham's class was clearly superior. His lecture style was, in my opinion, really good. He was primarily working off slides (posted online at the beginning of the semester). He supplemented it with the blackboard for equations and graphs, which I found to be a good mix. At least on Fall 2014 he was lecturing based on Orbanz' excellent slides (with some updates, I think), so if you see those online you'll get a sense of what the class will look like. Content wise, we covered some basic statistical review, including MLE, risk and loss; then linear classification with perceptron, leading to SVM; we then side stepped to discuss optimization techniques; then generalizing SVM with multiclass and kernels; then discussed trees, boosting, bagging, and random forest for classification. Then we had the midterm on all that. Post midterm we did regression, with a review of linear algebra and eigenvectors, which led to shirnkage with ridge and LASSO; then to usupervised learning with PCA and clustering (kmeans and EM). Then an unrelated feeling, but interesting, discussion on information theory. Finally crammed at the end was a discussion of Bayesian models. In contrast to 4771, there was MUCH less Bayes/graphical models. However, in exchange I felt like the coverage on everything else was MUCH better. Generally I found Cunningham emphasized the intuition and context behind ML techniques much more than other, similar, classes have. It really helped me understand how different techniques fit together, why you'd use them, and how you'd actually go about setting parameters, etc. There was some discussion about validating results and testing, which I think reflects the statistical approach of the class. If you want to go super, super heavy into deriving equations in lecture, I think 4771 is more your style. Basically no assigned reading, but I think having Elements of Statistical Learning, and/or Murphy or Bishop was references can be quite helpful if you get to a subject you're either confused about, or interested in learning more about. The TA, Ben Reddy, lectured about 3 times in Cunningham's place, and did a good job. He was helpful, but clearly overloaded and neither he nor Cunningham were especially responsive outside of lectures. Cunningham didn't offer standard office hours, for example. And the Piazza was very quiet, but they weren't especially responsive, either. The class needed at least another TA or two, in my opinion.