Overall Rating (2.9 / 5): ★★★☆☆
Professor Rating (5 / 5): ★★★★★
Lecture Rating (5 / 5): ★★★★★
Difficulty (5 / 5):
Workload: 20 hours/week
Pros:
1. Two lowest quiz scores are dropped
2. Practice problem sets are provided
3. Lecture videos are helpful
Cons:
1. Quiz average makes up 100% of the overall grade
2. TAs grade the quizzes at a very slow pace
3. Zero programming assignments
4. Quizzes have very restrictive time limits
Detailed Review:
The only assignments in this course are 12 timed quizzes. You take one quiz each week and must complete each of them within 70 minutes of starting them. All of the quiz questions require the answers to be written proofs. I personally thought that the 70 minute time limit was not enough to take the quizzes given the depth of the questions that were asked and also the depth that the answers were expected to have. The TAs also took forever to grade the quizzes, which made it where we had no clue where we stood in the class for a long period of time. It was also frustrating that the quizzes could only be taken on the weekends.
To keep your head above water in this course, you will definitely need to have some mathematical maturity. I would say that it is essential to have a background in discrete math, probability, and algorithms beforehand. I thought that the quizzes were very inconsistent in difficulty. One week they would be manageable and then the other week they would suddenly have what felt like PhD-level questions. The good news is that the two lowest quiz scores are dropped at the end of the semester.
I was disappointed that there were zero programming assignments since I think that they would have helped better reinforce the material. I think that having CS students do nothing but write proofs for an entire course is an ineffective way to emphasize the importance of the material being taught. I understand that this is supposed to be a theoretical course, but ALA and ML are also theoretical courses, and even they have programming assignments. If you are into CS theory, you will probably enjoy this course. However, if you are hoping to become a better programmer, you will almost certainly be underwhelmed by this course.
Overall Rating (2.9 / 5): ★★★☆☆
Professor Rating (2.9 / 5): ★★★☆☆
Lecture Rating (2.9 / 5): ★★★☆☆
Difficulty (3.6 / 5):
Workload: 15 hours/week
Pros:
1. interesting topics
2.
3.
Cons:
1. lectures of Optimization part is very repetitive and slow. Professor is not appreciating that students are watching it online and he should come with half prepared slides and only need to fill in details. Second part was better.
2. Exams do not correlate with suggested importance of topics
3. Peer reviewers - some of them are real j3rks, who deducted point without much explanation. TAs don't care
Detailed Review:
Taking Optimization first is helpful
Overall Rating (2.9 / 5): ★★★☆☆
Professor Rating (4.3 / 5): ★★★★☆
Lecture Rating (3.6 / 5): ★★★★☆
Difficulty (5 / 5):
Workload: 17 hours/week
Cons:
1. Both exams are hard
2. Theory materials and homeworks from Adam are hard
3. They gave a lot of textbooks and supplemental readings but didn't tell us which part were recommended to read
4. Grading policy is extremely harsh
Detailed Review:
This course is very math heavy, if you don't have decent knowledge in math, I suggest you learn all the prerequisite requirements mentioned before taking this course. Before exams, both lecturer gave us exam practice which I still able to solve because it is not that hard. But the exams is on different level, it is different from what you learn on lecture, homework, or exam practice (although there are small amounts of content we learn from lecture shows up at exam). The TAs are sometimes miss/forget/late for the zoom session. This is an application course, but the content of this course seems doesn't represent it, more theory than code. With the high level difficulty of this course, the grading was really harsh even after curved, I scored 87 but only get a B+.
Overall Rating (2.9 / 5): ★★★☆☆
Professor Rating (0 / 5): ☆☆☆☆☆
Lecture Rating (0 / 5): ☆☆☆☆☆
Difficulty (1.8 / 5):
Workload: 10 hours/week
This course can certainly be improved. When comparing with other graduate ML courses you will find this course does not cover traditional ML algorithms including Naive Bayes, LDA, QDA, SVM, KNN, etc (the list is long). See CMU 10-601 for reference. This of course has something to do with the teaching style. If both professors could use slides instead of hand-written scripts then I expect more contents to be covered (and more visual aid to facilitate teaching). The first part gives you a taste of machine learning theory (through PAC learning) but does not go deep. Therefore the course seems to me neither application-oriented nor too theoretical. I would say the workload should increase by 50% to match the graduate-level ML course in the school I am attending full-time.
Expanded Grading:
Workload: 10-15 Klivans, 5-10 Liu
Overall Rating (2.9 / 5): ★★★☆☆
Professor Rating (3.6 / 5): ★★★★☆
Lecture Rating (3.6 / 5): ★★★★☆
Difficulty (3.6 / 5):
Workload: 17 hours/week
Pros:
1. The importance of linear algebra is just not negligible.
2. 2 take home exams including coding.
3.
Cons:
1. Piazza was a nightmare. People ask the same questions over and over again. Other than one, all tutors were basically absent.
2. If you have no solid math background, you will be very likely to struggle to keep up.
3. The course took more students than they could handle.
Detailed Review:
I took this course and somehow expected it to be challenging, and it turned out to be true. It was quite difficult. You need to do a lot of work to keep up with the assignments and exams. Of course, if you have a solid math background, you should be okay. If not like me, be prepared to spend extra time to keep up. I think the professor was helpful a lot of times, but Piazza was just a nightmare. The tutors were basically absent and cancelled/changed office hours too frequently.
There were three exams. One was proof-heavy. The other two were coding + theory. Some of the exam topics were not from the course, so some extra research was necessary. Overall, I do believe that CS students should take this course, despite its apparent difficulty.
Overall Rating (2.9 / 5): ★★★☆☆
Professor Rating (2.9 / 5): ★★★☆☆
Lecture Rating (2.1 / 5): ★★☆☆☆
Difficulty (2.9 / 5):
Workload: 10 hours/week
Pros:
1. Professor Parker’s section on statistics was insightful
2. 2 lowest homeworks and quizzes dropped
3. Fairly broad overview of probability and statistics
Cons:
1. Autograding on short assignments gave very little room for error
2. Low staff engagement
3. Organization - way too many documents, announcements, and other materials distributed via PDF’s and individual posts on EdX
Detailed Review:
My background: It’s been a decade since my last undergraduate math course, though one of my previous jobs involved a lot of statistical analysis in a research setting. It took some effort to get used to mathematical notation again, and I didn’t feel like I always had the strongest grasp on it but still ended up doing well in the course. However, there are plenty of opportunities in later courses to reinforce the material.
Overall, I felt the class was good for easing back into school, and I learned a lot, in probability by sheer volume of content and in statistics because of how it built on previous knowledge.
Mueller breezed through the probability lectures, often skipping steps in the proofs and calculations, and making in infrequent "goofs" on his slides (though he was self-aware of it). His section covered a lot of topics, some of which he overcomplicated. We were quizzed and tested on very few of them, making it hard to know what to study or care about for the first exam.
It didn’t help that the homework assignments were heavy on the proofs (which were easier because they were multiple choice), while the quizzes and exams had none whatsoever. The quizzes were fairly easy. The exams were tough and a bit of a time crunch, but mostly fair with the exception of a question or two. Rounding correctly is really important for the assessments, though the drop policy made up for the draconian autograding.
Parker went more in-depth in her lectures, focusing on the motivation behind and interpretation of statistical analyses and not just rote calculations and definitions, which I appreciated. This section was easier, and she was very intentional about what she tested us on. She did hold office hours, but the staff in general weren't very present on the Ed discussion board. Thankfully, many students in the class were active and helpful.
The only thing that really bothered me about her section was that she provided a lot of miscellaneous materials and reminders scattered in the form of PDF files, EdX “assignments”, and announcements that I felt could have been organized more neatly and concisely. For example, there was a formula sheet we’re supposed to use towards the end of the course, and for some reason, the 6th page is a separate PDF.
Overall Rating (2.9 / 5): ★★★☆☆
Professor Rating (2.1 / 5): ★★☆☆☆
Lecture Rating (2.9 / 5): ★★★☆☆
Difficulty (3.6 / 5):
Workload: 5 hours/week
Pros:
1. Teaching staff active and responsive on piazza
2. Reasonable workload
Cons:
1. Some of the homework felt completely pointless
2. Lectures were a cure for insomnia
3. Did not follow any textbook, so anything that I didn't understand in class did not have a clear alternative and required looking through multiple sources to understand.
4. No context was provided for how these types of problems fit in real scenarios and how to apply these techniques.
Overall Rating (2.9 / 5): ★★★☆☆
Professor Rating (4.3 / 5): ★★★★☆
Lecture Rating (3.6 / 5): ★★★★☆
Difficulty (5 / 5):
Workload: 25 hours/week
Pros:
1. Topics and lectures are very interesting
2. Combines theory and coding
3. TA's responded to student concerns
Cons:
1. First Programming assignment was insane
2. Weekly quizzes seem more like midterms, and only 1 attempt to get question right
3. TA's had to keep tweaking misworded questions and moving deadlines
Detailed Review:
I really enjoyed the topics covered in the class, and if you took discrete mathematics and enjoyed it, this class would be a great fit for you. You will learn about how the topics you learnt in that class are used in practice and learn about the latest discoveries in that field. The main issue is the assignments, hw and time commitments for this class. This class ran into the issue many new classes have seemed to run into in my experience. The time given for the hw and the programming assignments were way too intense. There are reading assignments after every lecture, and the questions never seem to be from the lectures, and initially only 1 attempt, however, due to student complaints it became 2 attempts. The weekly quizzes are worth half the grade, and each one is extremely intense, as you are afforded only 1 try, and half the time the problem is understanding what the question is asking. You can ask ta's on piazza, however, it is inconvenient having to wait for a response each time. Also the fact that there is no explanation for why the answer to the question is what it is also made it hard to learn sometimes, as I didn't know why that answer was what it was. The PA's (programming assingments) are worth 30% of the grade. While assignments 2 and 3 were challenging but doable, assignment 1 was a nightmare, I spent >75 hours and wasn't able to complete it. Due to student complaints they gave partial credit for pa's for putting an honest attempt. The deadline for said assignment was pushed back many times. I am hoping that in the future they add more balance to the class as it is a genuinely interesting subject, however, the classwork associated it was a bit ridiculous.
Overall Rating (2.9 / 5): ★★★☆☆
Professor Rating (3.6 / 5): ★★★★☆
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (0.7 / 5):
Workload: 8 hours/week
Pros:
1. Low time commitment
2. Most of the assignments/lectures were fun and engaging
3. Could be relevant to SWE work, at least more than other classes
Cons:
1. A bit too easy, especially if you know kotlin or java
2. Many assignments, need to keep up to date (HWs are time consuming second half of the semester)
3.
Detailed Review:
It was interesting but not super challenging. Lectures were fun to watch but not essential to most of the assignments. If you know Kotlin or Java some of them could easily be skipped. There is no theory in this class and the assignments and home works mimic what a software developer might be working on. You utilize several public APIs and Google cloud services (auth, db, etc). I found the work load to be pretty light, but the second half of the semester there is definitely more work. If you don't prioritize starting the homework's early they will bite you. The FC assignments are rather short (1-2 hours) and assigned every week. The homework's towards the end can take 10-20 hours. The final project is completely up to you as long as you satisfy a few requirements.
Overall a good class that I would recommend, but it is probably more undergraduate level in difficulty.
Overall Rating (2.9 / 5): ★★★☆☆
Professor Rating (4.3 / 5): ★★★★☆
Lecture Rating (5 / 5): ★★★★★
Difficulty (1.4 / 5):
Workload: 5 hours/week
Pros:
1. Useful lectures
2. Doable projects/homework assignments
3.
Cons:
1. Mandatory Piazza participation crowds page
2.
3.
Detailed Review:
This is a good class to combine with a hard one. I took this and Probability and Simulation and worked full time in a demanding job and was okay. The lectures explain all you need to know about R. You learn how to make good visualizations. Watch out for projects-- worth a lot more.