Overall Rating (3.9 / 5): ★★★★☆
Professor Rating (3.6 / 5): ★★★★☆
Lecture Rating (3.6 / 5): ★★★★☆
Difficulty (3.9 / 5):
Workload: 15 hours/week
Pros:
1. Lectures providing deeper insights into the math principles of some classic machine learning algorithms
2. Introductions to some concepts that are not covered in most AI courses
3. Responsive and helpful TAs
Cons:
1. Maths
2. Peer-grading for homework is useless
3. Not easy A, even if curved (but you may get a better grade if you are B- or C?)
Detailed Review:
This is my first semester course. I selected this course because I took an ML course during my undergrad as a minor course. However, this ML course is much more difficult than the ML course I took during my undergrad. I spent a lot of effort and got a marginal A.
Generally, this course is a theoretical course and is math-heavy. This course includes two parts. The first part is Algorithm, which introduces the math principles of some commonly-used algorithms like decision trees, logistic regression, linear regression, AdaBoost, PCA, and SVD. The second part is statistical modeling, which covers MLE, Bayesian Inference, clustering(KMeans, EM, GMM), kernel regression, and neural networks.
The difficulty decreases with the course progress. The first couple of weeks are the most difficult weeks, and some students quit during this period. What really impressed me was the PAC framework studied in the first week, which is a concept very hard to understand. There are 5 theory homeworks and 5 programming homeworks in this course. The first theory homework took me an entire weekend to finish. After solving the first two homeworks, the remaining homeworks would not take too much effort to finish.
All the homeworks are peer-graded. To be honest, this method is useless, as most comments are useless. Some students didn't give you full marks even if your answer was totally correct. You need to request TAs for regrading. Fortunately, all TAs are very responsive, and I often get a higher mark after I submit my regrading requests.
This course also includes two exams, each exam for one part. The exams require you to print all the materials. I think printing all materials is senseless, as the screen is proctored during the exam. The exams are more straightforward than the homework, but they are not easy, and you still need to work hard to get better grades, as the average exam grade is approximately B-. TAs would provide some practice questions before the exam. Answering those questions would be helpful for the exam.
To sum up, this course requires some basic math background, and you would want to brush up on basic calculus, linear algebra, probability, and statistics before taking this course. It will return to you with insights into the foundation of ML. If you are ready for challenges and really want to learn something, this course would be a good course for you.
Overall Rating (3.9 / 5): ★★★★☆
Professor Rating (0 / 5): ☆☆☆☆☆
Lecture Rating (0 / 5): ☆☆☆☆☆
Difficulty (1.8 / 5):
Workload: 10 hours/week
The class was simple. The lectures and homework is understandable. The exam was pretty easy as well. But I did not like how optional lectures were needed during the exams.
Overall Rating (3.9 / 5): ★★★★☆
Professor Rating (0 / 5): ☆☆☆☆☆
Lecture Rating (0 / 5): ☆☆☆☆☆
Difficulty (5 / 5):
Workload: 30 hours/week
I stopped watching the lectures halfway through the class and managed to do all of the assignments. Like everyone is saying, the assignments can take 30-60 hours. You should likely start each one two weeks in advance, but it will likely take a 16-hour coding bender up to the deadline to cement that lesson in your head. Three labs are in C/C++, one is in Go, and another is in Rust. You also learn about CUDA and Thrust in Lab #2. Lab 2 was easily the most involved for me, and it seemed like it was the same way for everyone else at the time I took it. It seemed like only half of the class submitted a completed project. Many of the lab instructions weren't clear on critical details of the assignment, which could cause confusion on requirements even up until the due date. I think you'll have a great experience having had a semester of students to iron out the details and provide feedback. My guess is that they'll revise Lab 2.
Overall Rating (3.9 / 5): ★★★★☆
Professor Rating (0 / 5): ☆☆☆☆☆
Lecture Rating (0 / 5): ☆☆☆☆☆
Difficulty (2.9 / 5):
Workload: 10 hours/week
I really enjoyed the subject matter. Teachers were cool as well. I have pretty heavy experience with C/C++ so the projects were relatively easy compared to the other classes I've taken.
Overall Rating (3.9 / 5): ★★★★☆
Professor Rating (0 / 5): ☆☆☆☆☆
Lecture Rating (0 / 5): ☆☆☆☆☆
Difficulty (3.4 / 5):
Workload: 15 hours/week
The class is taught really well, and the TA (Macke) was extremely attentive and helpful. On weeks projects were due, workload would really ramp up. Especially in the last week with a final and project due. The final exam had a lot of math which would make a minor calculation mistep cost you a lot of points. The programming projects were not extremely difficult, and easy to get full marks on them. But the homeworks can some times be a bit challenging if you're not understanding the text well.
Overall Rating (3.9 / 5): ★★★★☆
Professor Rating (3.6 / 5): ★★★★☆
Lecture Rating (2.9 / 5): ★★★☆☆
Difficulty (3.6 / 5):
Workload: 7 hours/week
Pros:
1. One of the professors in the lectures, makes excellent supplemental lectures that are easy to follow and explain the material well.
2. Multiple choice exams. Fair final exam.
3. Interesting material.
Cons:
1. The other professor in the lectures, who makes the bulk of the lectures is hard to understand and leaves out key points a lot.
2. Lots of the material makes assumptions and elides crucial details that make the point unclear (ie, assuming constraints to a problem without mentioning them at all).
3. Exams and homework couldn't be further from each other: the question styles on the exam were a huge surprise on the first two exams.
Detailed Review:
The first few homework assignments are harder than the rest. The exams really throw you off since the question format & types of questions are very unexpected relative to the homework and lecture material and require a lot of lateral thinking and intuition (especially visual intuition) of the material. Knowing linear algebra is a must, if you don't have a visual intuition for it, the 3blue1brown series helped me a ton. The final exam doesn't throw any curveballs so if you make sure you could do the first two exams confidently, you'll do well. Office hours were medium, hit or miss, didn't find them as useful as in other classes. Textbook was useful sometimes, but had a LOT of unrelated info. Found myself cross-referencing information with other optimization course materials I found online to make sure I understood things. Homework is very leniently peer graded because of a ternary scale. Active and responsive piazza.
Overall Rating (3.9 / 5): ★★★★☆
Professor Rating (0 / 5): ☆☆☆☆☆
Lecture Rating (0 / 5): ☆☆☆☆☆
Difficulty (1.8 / 5):
Workload: 8 hours/week
Good to have a UI class in the curriculum. Teacher is very entertaining. There are short assingments due every week (3hrs each) and longer homework assignments that can sometime be very time consuming while still having a short assignment due at the same time. Plan accordingly. Content was manageable. The teacher expects you to go out of your way to find how to do things, which makes sense for a graduate level course. I found Kotlin to be frustrating as there are things your can do in certain areas of code that you can't do in others, and its not very clear on which. Overall, good course, diverse content, but cohesive and incremental nonetheless.
Overall Rating (3.9 / 5): ★★★★☆
Professor Rating (0 / 5): ☆☆☆☆☆
Lecture Rating (0 / 5): ☆☆☆☆☆
Difficulty (2.9 / 5):
Workload: 15 hours/week
Like the above commenter mentioned, the course is structured around the book, so if you like following textbooks, then you'll probably enjoy that about this course. I recommend fully understanding and working out the examples from the videos. Try to complete as many textbook exercises as you can to REINFORCE your knowledge. Both of these habits will pay off when you take the exam. Taking some time to familiarize yourself with either pytorch or tensorflow before the 3rd assignment hits will pay off as well. I found both the 3rd and 4th assignments very time-consuming, not having taken DL prior. Our TA, Macke was great but you may or may not have the same luck. All-in-all, the concepts were interesting and from a high-level, easy to understand, but slightly more difficult to master.
Overall Rating (3.9 / 5): ★★★★☆
Professor Rating (0 / 5): ☆☆☆☆☆
Lecture Rating (0 / 5): ☆☆☆☆☆
Difficulty (3.9 / 5):
Workload: 20 hours/week
Mostly this is a good class. The lectures are excellent, and the five homework and one extra credit assignments are engaging and really help you learn how to apply the material.
But I hated the final project. It was the single most stressful assignment I've ever had in any class I've ever taken. You're given a nearly intractable problem (given the time/space constraints you have to work with) with no guidance and left to find the best solution you can come up with. This by itself doesn't sound so bad, until you spend 20 hours debugging the C++ code of the simulator you're running in because it doesn't actually work the way it was shown in one of the class videos. And then find that your experiment results are not reproducible and you get wildly different results depending on the underlying hardware of your Colab instance.
Plan to spend more than 2 weeks on it, and plan for your results to look terrible no matter what. You can still get an A in spite of that.
Overall Rating (3.9 / 5): ★★★★☆
Professor Rating (0 / 5): ☆☆☆☆☆
Lecture Rating (0 / 5): ☆☆☆☆☆
Difficulty (1.3 / 5):
Workload: 6 hours/week
The content of the class was great. The lectures were very well done. The textbook is great. I didn't feel very challenged in the course though. It could have either moved more quickly, or required more challenging coding projects, or asked us to write proofs. Sai was a great TA and very responsive. The final was suddenly a lot harder than the rest of the course b/c it was only 2 hours for questions we were used to having a week to work on - watch out for the final!