Overall Rating (2.1 / 5): ★★☆☆☆
Professor Rating (2.1 / 5): ★★☆☆☆
Lecture Rating (1.4 / 5): ★☆☆☆☆
Difficulty (4.3 / 5):
Workload: 20 hours/week
Pros:
1. Prof. Liu has helpful lecture notes/companion materials
2. Somewhat interesting content
3. Gets easier as the course goes on
Cons:
1. Hours of long, dry lectures
2. Prof Klivans lectures have no notes or companion materials
3. Hard Exams
Detailed Review:
I was overall pretty disappointed with this class. It's basically two half classes smashed together - midway through the semester you switch material (from ML algorithms to statistical methods) and professors (Klivans to Liu). The second half was markedly better than the first. Klivans's lectures are just hours of recorded classroom lectures with no notes or any sort of companion material to aid learning. I spent so much time just sifting back through hours of video when studying for the exam trying to find the exact moment when he would cover the relevant topic for me. It feels like a huge waste of the online/digital format to basically have the class be a video dump. Prof Liu was a bit better in that he worked through more concrete examples and also a segment of a text he's writing.
This was a lot of work, perhaps due to the condensed summer semester. I took the linear algebra course last semester (super helpful for this class, btw) and that class felt much more relaxed and collaborative. There was also literally zero engagement with the professors on Piazza. That said, the TAs were helpful.
Overall, I think this class needs some love from the administrators. There should be some sort of additional materials other than just hours and hours of video.
Overall Rating (1.8 / 5): ★★☆☆☆
Professor Rating (0 / 5): ☆☆☆☆☆
Lecture Rating (0 / 5): ☆☆☆☆☆
Difficulty (3.9 / 5):
Workload: 10 hours/week
As stated before the material for this course isn't terribly complex. The lectures are super dry, and sometimes feel disconnected from each other as you switch between the professors, and often only focused on the theoretical side of optimization, skipping showing how to solve actual problems. The problem sets were generally difficult, sometimes almost requiring you to go to office hours to be able to solve them, but this is counter balanced by a generous peer grading system where you get full credit for having the right idea and half credit for just trying a question. The exams are super difficult, focusing on a lot of minutiae that was only breifly mentioned in lecture, and presenting problems in an entirely new format. The course would be greatly helped if they had just one professor handle all the lectures and tune the lectures to their exam style.
Overall Rating (1.8 / 5): ★★☆☆☆
Professor Rating (0 / 5): ☆☆☆☆☆
Lecture Rating (0 / 5): ☆☆☆☆☆
Difficulty (1.8 / 5):
Workload: 10 hours/week
Came in with a strong math background and didn't find it too hard. The multiple choice exams still messed me up though. The content in this course is sort of ridiculous, it's like two separate optimization classes copy and pasted onto each other. I found the current professor's efforts to make the content better helped, but still left the class feeling a little disorganized conceptually. The problem sets seemed to get easier as the class went on, and more and more simply minor variations on problems derived in the lecture. The multiple choice exams will be good for you if you are good at multiple choice exams. I basically just taught myself the content from pdfs from other schools I found online. Compared to those classes, this one is extremely lacking. Take it if your background is math and I think you will find it tolerable, but not very enlightening.
Overall Rating (1.8 / 5): ★★☆☆☆
Professor Rating (0 / 5): ☆☆☆☆☆
Lecture Rating (0 / 5): ☆☆☆☆☆
Difficulty (3.9 / 5):
Workload: 15 hours/week
The lectures were good, the textbook is amazing but still giving it 2 stars coz 70% of the grade comes from projects and the lectures barely relate to them. I found the xv6 projects to be very hard and think that they should have at least explained the xv6 code base in the lecture videos. Being a systems course, there should have been some programming in the lectures but there is almost none and for the most part you have to constantly look up stuff on the internet. I do not have any experience in systems programming and found the course to be quite stressful.
Overall Rating (1.8 / 5): ★★☆☆☆
Professor Rating (0 / 5): ☆☆☆☆☆
Lecture Rating (0 / 5): ☆☆☆☆☆
Difficulty (1.8 / 5):
Workload: 10 hours/week
The content of this course was good. The video lectures were fine, the assignments and exams were not very difficult. It is a good overview of mathematical techniques critical to Machine Learning and other fields as well. It was also a helpful reintroduction to proofs, which made other classes easier.
However, this was just about the worst run class I've ever had. The TA and professor were totally AWOL on piazza. Simple procedural questions about grading went unanswered for the entire semester. Lord help you if you had questions about the actual assignments or what to study for exams. Early morning office hours were rescheduled in the middle of the night with no warning. There was zero guidance on which book chapters were necessary to read, and they were necessary to complete some of the assignments / exams. They literally said to figure it out from the lecture topics, but some of the book topics you needed to read weren't covered or mentioned in any lecture topics.
With a more professional TA and professor, this class would have been okay.
Overall Rating (1.8 / 5): ★★☆☆☆
Professor Rating (0 / 5): ☆☆☆☆☆
Lecture Rating (0 / 5): ☆☆☆☆☆
Difficulty (3.9 / 5):
Workload: 12.5 hours/week
The final exam was complete BS and had a lot of questions that were entirely unfair-- and no partial credit as numerical answers were submitted via an input box. William Macke (TA) was awesome. You can cheese the programming assignments easily because you're just following algorithms in the book (except the third programming assignment -- out of 4 -- which requires a bit of outside reasearch. The homeworks were pretty OK and doable in a few hours of work. Not an easy A as i thought it would be. I recommend NOT taking in the summer because you'll have to do double chapter readings twice because the semester is 2 weeks shorter.
Overall Rating (1.8 / 5): ★★☆☆☆
Professor Rating (0 / 5): ☆☆☆☆☆
Lecture Rating (0 / 5): ☆☆☆☆☆
Difficulty (5 / 5):
Workload: 20 hours/week
The first half was crazy hard. The lectures weren't really related to the assignments. Sometimes optional videos were required to complete the homework. The second half was much more reasonable. Still hard but I could relate the lectures to the homework.
Overall Rating (1.8 / 5): ★★☆☆☆
Professor Rating (0 / 5): ☆☆☆☆☆
Lecture Rating (0 / 5): ☆☆☆☆☆
Difficulty (1.8 / 5):
Workload: 8 hours/week
TLDR: If you want to learn convex optimization, look at Boyd's free edX class; if you're just taking this for requirement, it's probably a tossup between this and Algorithms. Coming from a fairly strong math background with optimization experience (but not convex) the class is easy. The content is fairly simple and straightforward. Homeworks can generally be knocked out in a day or a couple of nights if you watch the lectures. There are a couple of questions that were widely regarded to be impossible with the knowledge presented in class. Went to office hours for these and the TA basically gave away the answers (sometimes literally showing the solutions). As others stated, the tests are where this course falls short. The multiple choice all or nothing format is brutal, especially with the select all that apply questions. The 2 midterms seemed to be about 50% related to what was taught in class and 50% properties of linear algebra that are used to derive the algorithms taught in class whose derivations are never gone over. The final seemed far more relevant to the material but still had a couple of these questions. Every test took all the time that was given and more. The professor stated that "a take home test would be ideal but isn't feasible." I'm guessing this is based upon how grading would happen because even though the tests were automatically graded by the edX platform, students' grades were not available for weeks after the tests were due and well after the solutions were given. The textbook's author now has a free edX class for teaching convex optimization, so checking that out if you're interested in the subject may be a better call. I prefered this over Algorithms but depending on the person I think it could go either way so if your only interest is in the requirements I'd probably steer towards algorithms more due to its more general applicability.
Overall Rating (1.8 / 5): ★★☆☆☆
Professor Rating (0 / 5): ☆☆☆☆☆
Lecture Rating (0 / 5): ☆☆☆☆☆
Difficulty (5 / 5):
Workload: 22.5 hours/week
There was probably around 20% more material covered in the lectures compared to other courses I took this semester. A very theory-heavy course. Some background in algorithms is recommended but not required. First semester homeworks are difficult. Second semester homeworks get slightly better, but not by much. TA office hours will help for homework and conceptual understanding if you are able to attend them.
Overall Rating (1.8 / 5): ★★☆☆☆
Professor Rating (0 / 5): ☆☆☆☆☆
Lecture Rating (0 / 5): ☆☆☆☆☆
Difficulty (5 / 5):
Workload: 30 hours/week
I don't think the instructors did well explaining the concepts. We had to check lectures from Internet to fully understnad it. Homeworks are hard, usually takes me 20 plus hours and still did not get them right. Peer grading is just a terrible idea. People give lower grade them deserved.