Overall Rating (4.3 / 5): ★★★★☆
Professor Rating (5 / 5): ★★★★★
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (5 / 5):
Workload: 15 hours/week
Pros:
1. Lecture goes into depth on ML
2. Work load is balanced
Cons:
1. Very minimal implementation, huge on theory
2. Exams are brutal
Detailed Review:
The lectures were great, the two professors went into detail on the theory and proofs behind ML concepts. The first half of the class was much harder than the second half. The exams were brutal but the curve is very generous, i.e a 73% was like a B- at the end.
Overall Rating (4.3 / 5): ★★★★☆
Professor Rating (3.6 / 5): ★★★★☆
Lecture Rating (2.9 / 5): ★★★☆☆
Difficulty (1.4 / 5):
Workload: 4 hours/week
Pros:
1. Homework 100% prepares you for tests and quizzes.
2. Professors/TAs are very active on Piazza.
3. The coding work in R is straightforward.
Cons:
1. Plenty of typos in the slide deck.
2. A few concepts have no examples in the lectures to work before jumping in on the homework.
3. The textbook is a waste of money.
Detailed Review:
This was my first course and first every graduate level course and I was pleasantly surprised. The early homeworks take plenty of effort and I averaged about 7hrs a week on them. The quizzes and tests are very chill. If you got a 100 on your homeworks and understand the problems you'll finish ur quizzes and test with over half the time to spare. If you don't like the explanation of a certain concept there is an extreme amount of material out there to help you out.
Overall Rating (4.3 / 5): ★★★★☆
Professor Rating (4.3 / 5): ★★★★☆
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (4.3 / 5):
Workload: 10 hours/week
Pros:
1. Really interesting material
2. Great lectures and textbook
Cons:
1. Difficult homework and exams
2. Some of the homeworks needed some QA/QC before being released
Detailed Review:
This was probably my favorite course on the stats side of this program. The material was really interesting, and I felt it did a really good job covering how to properly view data analysis from a casual lens. The professor lectures were great and the textbook was very approachable and not written at a too academic level.
The homeworks and exams were both pretty tough, definitely the toughest on the stats side of this program. Many of the questions relied on using the course knowledge and applying it to situations that are not very intuitive how one would apply the casual framework. On the exams you are given 24 hours and 48 hours respectively, so fortunately time doesn't play a factor on them.
There were a couple homeworks with some errors in the solution key, which lead to effectively none the answers being truly correct. The course staff went back and corrected them after the due date, but it definitely made these couple of assignments a much more frustrating experience than necessary.
The quizzes were changed to completion grades. They still ended up being useful as study material for the exams though.
Overall Rating (4.3 / 5): ★★★★☆
Professor Rating (3.6 / 5): ★★★★☆
Lecture Rating (3.6 / 5): ★★★★☆
Difficulty (5 / 5):
Workload: 20 hours/week
Pros:
1. Rigorous statistical machine learning course - you will learn a ton
2. well organized class
3. interesting topics
Cons:
1. You need expertise in Probability, Statistics, Calculus, Linear Algebra, and Complexity Theory to be successful.
2. programming hws should be harder
3. compressed 12 week schedule
Detailed Review:
I really enjoyed this class and learned so much about statistical machine learning. The workload is very heavy if you are aiming for an A and don't have a math degree. The first 2 weeks are VERY heavy, so be prepared to come in on full steam. The class is only 12 weeks long even during the spring and fall when the semester is technically 15 weeks. The class would be SO much more manageable if the course were spread out to be over 15 weeks instead of 12 -- it would make the first couple weeks more reasonable.
The first half of the class is taught by professor Klivans. The theory hws are very difficult. It helps to read the textbook before the lectures because the professor just dives in to the trees and assumes you understand the the forest. The exam for Part 1 was very fair. I think the MSCS students usually do best on this exam
The second half of the class is taught by professor Liu. Students in the MSDS program thinks this half of the class is easy because they have taken courses on Probability, Regression, ++, and topics covered are similar. If you are in MSCS or MSAI, this half of the class will be hard! The exam for the second half covers topics not taught in the class, but I believe must have been covered in the probability/regression classes. This is super frustrating if you are not in MSDSO.
So the exam for the first half of the class favors MSCS students. The exam for the second half of the class favors MSDS students. And if you look at the historical grades received by students taking ML in MSDSO, MSCSO, and MSAIO, you will find that MSAI students do noticeably worse than the other students ON AVERAGE, for whatever reason. (See https://reports.utexas.edu/spotlight-data/ut-course-grade-distributions). Your individual strengths and weaknesses will vary.
To do well in the class you really need to be good at so many things. Linear Algebra, Calculus, Probability, Statistics, Algorithms, etc The topics are so varied that it is hard to prepare to take this class. That being said, I felt the class was rewarding, and I am very glad I took it.
My main criticism is that it felt like the lectures started by the professor focusing on a particular detail, and you might be wondering what the topic is. A minute or two of broad description of the topic, would have been helpful instead of just diving in to a little detail. I suggest pausing the videos and looking up stuff, to make sure you are on the same page as the professor.
I also wish the programming assignments would have been more challenging, particularly for the second half of the class.
Overall a very interesting class. It is not an Intro to ML class. It assumes you already have introductory knowledge. If you don't have a super strong and recent math background, be prepared to put in extra hours.
This is a very rigorous theoretical statistical machine learning class. Don't expect a practical programming class. It was interesting and rewarding for me personally. The drop rate for this class is very high because it is absolutely not a walk in the park or a class you can coast by in (unless you have a math phd).
Overall Rating (4.3 / 5): ★★★★☆
Professor Rating (2.1 / 5): ★★☆☆☆
Lecture Rating (2.1 / 5): ★★☆☆☆
Difficulty (3.6 / 5):
Workload: 15 hours/week
Pros:
1. Course content is excellent for anyone who has never taken the OS before
2. Project is simple at first, and nice for beginners.
3. Midterm and final exams are simple
4. Group project, so you can help and work together with your teammates
Cons:
1. Poor lectures; do not waste time listening to them
2.
3.
Detailed Review:
I have never taken OS before, so I really learn a lot in this course. I would suggest that anyone who has not taken OS before take this one.
Poor lectures and poor slides. I have watched all videos, and I feel confused about most of the lectures. The contents are given without clear logic. Later I spend several days watching an undergraduate OS course video from Remzi on Youtube, and his lectures are much much much better and easier to understand, and his slides are also much much much clearer. DO NOT WASTE YOUR TIME IN THE LECTURE VIDEOS if you haven't taken any OS course before. WATCHING LECTURES FROM REMZI ON YOUTUBE instead.
OSTEP (https://pages.cs.wisc.edu/~remzi/OSTEP/) from Remzi is excellent, and I read it more than 3 times (before lecture + after lecture + before exams), and I really lean a lot in this way. Read all the books instead of just the selected chapters required by the teacher. This book is like a novel, you need to read everything from the beginning to the end.
I like the projects, and I am very lucky to have two teammates, who helped me debug my codes, and criticize my work. I wrote almost all the projects myself, and I really enjoy this process.
Overall Rating (4.3 / 5): ★★★★☆
Professor Rating (5 / 5): ★★★★★
Lecture Rating (5 / 5): ★★★★★
Difficulty (2.9 / 5):
Workload: 7 hours/week
Pros:
1. Lectures are excellent. Not 45 minute ramblings like other classes I've taken. 5 to 15 minutes of good content.
2. Assignments were of reasonable difficulty.
3. Updated yearly with new content like ChatGPT, transformers, and more
Cons:
1. Course is spread out over several websites/services and you can forget things (more below)
2. Majority of the work is front loaded to give you time on the final project (can be a pro depending on your schedule)
3. This course will make you wish all other MSDS courses had this level of care and attention.
Detailed Review:
I felt taking DL before this course was helpful but not necessary, DSA probably should be required.
The only problem with this course is organization in terms of where all of the learning materials are stored. In prepping for the midterm, I completely missed one of the study resources that was on edX and not on Prof Durrett's website. I also watched a lot of the lectures on youtube and almost forgot to do the quiz questions on edX. Submitting assignments is on gradescope which you get to from another service called canvas. I understand this is likely out of the control of the MSDS staff but I feel like this is getting out of hand. Also, I just feel for the TAs who have to answer the same question 4-5 times a week on Ed about these systems.
Other than that, I thought this was probably the best course I've taken in the program so far. Definitely consider taking NLP as one of your elective 2 courses. There were ~500 students in this class so clearly others are doing the same.
Overall Rating (4.3 / 5): ★★★★☆
Professor Rating (4.3 / 5): ★★★★☆
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (3.6 / 5):
Workload: 9 hours/week
Pros:
1. No tests/quizzes
2. Good starter code in the first half
3. Pretty useful if you work with time series or geospatial data
4. Preston the TA was active on Piazza and was pretty open about things
Cons:
1. Kinda crammed into the summer semester, twice during the semester there are two homeworks due within one work week. (monday, friday)
2. Sometimes get docked points for unclear expectations on homework
3. Sometimes R packages/Python Libraries get mixed up and ends up being a waste of time
Detailed Review:
The first half of the course is in R, the second half is in Python. I didn't know much R before taking this course. Some students said that taking data visualization before or during this course would be helpful, but I got the hang of it without viz. Dr. Calder (first half) provides some clear and documented starter code and usually has a lecture devoted to walking you through it. Her topics cover some time series analysis and geospatial which was really interesting to me as my job is pretty much entirely entirely that, so I was able to apply it outside of the class immediately.
Dr. Sarkar's half of the course is more about PCA and matrices, which is just a tad too removed from practicality for me. She doesn't provide any starter code, so knowing some NumPy and Pandas is a big leg up on this section.
The assignments are challenging but pretty interesting and are mostly code-based. I'm pretty confident that almost everyone passed the course.
Getting the right version of the required R packages for each assignment always ended up being a constant annoyance for me. Wish they'd provide a requirements file for all the packages and version numbers needed to do the assignments. Reading the documentation on these packages isn't stated but should be required for understanding all of the parameters that go into particular functions.
Taking this course during the summer was doable but they certainly didn't cut anything out. There are 12 assignments and 10 weeks so, you end up having two weeks where you double up. There's no way to work ahead if you're traveling or really busy during those weeks so it can be hard to plan around. On those weeks, one is due on Monday and the other is due on a Friday, which is pretty awful if you work a demanding schedule. Preston, the TA, allows for a one-time extension if you contact him.
The homeworks are all peer-graded and the rubric is given to you is very detailed. You also get evaluated based on how well you grade homeworks. Doing 5 peer evaluations and following the rubric took at least an hour per assignment. Some open-ended questions wanted really particular answers that were pretty tough to get without reading the minds of the instructors. You do end up getting bonus points for Piazza participation and doing well on evaluations to make up for those, though.
Overall Rating (4.3 / 5): ★★★★☆
Professor Rating (4.3 / 5): ★★★★☆
Lecture Rating (3.6 / 5): ★★★★☆
Difficulty (4.3 / 5):
Workload: 6 hours/week
Pros:
1. TAs are great
2. Practical HWs and final projects
3. Well organized materials
Cons:
1. Time-consuming
2.
3.
Detailed Review:
Overall Rating (4.3 / 5): ★★★★☆
Professor Rating (5 / 5): ★★★★★
Lecture Rating (5 / 5): ★★★★★
Difficulty (1.4 / 5):
Workload: 4 hours/week
Pros:
1. Best lectures in the program
2. Solid material
3. Low time commitment but high reward
Cons:
1. Lots of questions left about theory
2. Repeat material if you've taken CI
3. Surface-level covering of some topics that could've been expanded on
Detailed Review:
First off, Dr. Parast is the best lecturer the program has had so far. Future courses (and redesigns of courses) need to follow her example. Her lecture notes and code examples were also very well done (in stark contrast to some courses in this program).
The course was split up into 4 parts: Survival Analysis, Longitudinal Data Analysis, Observational Studies, and Randomized Studies.
The first two parts are done very, very well. A complaint I have is that there could be a lot more theory. It felt like some topics were just "run this package" and we didn't need to really understand the theoretical principles behind what we were doing. The course assumed a knowledge of probability theory and regression/hypothesis testing but there wasn't really any linear algebra or calculus needed. Similarly, we could've gone deeper into some topics. For example, missing data was covered but the state-of-the-art technique (MICE) wasn't mentioned at all (although MI in general was). The time commitment was overall quite low, so I think there's room to address these complaints.
The last two parts are a complete repeat (and not in anywhere as much detail) if you've taken CI. However, they are a great refresher to the basic ideas if you have taken it. Similarly, there are a few topics sprinkled in throughout that you might be able to skip if you know some machine learning (cross-validation, ROC, etc).
The 6 homeworks were a breeze. I only missed one point all semester due to a silly mistake and one homework was dropped in the end. Exams were also quite easy: 48 hour take-home. The final exam required more thought but in the end wasn't significantly harder than the midterm. Median was around 93% for both. I wouldn't be surprised if over half of the class got an A (no curve, of course).
There could be more difficulty in the homeworks. On the final exam, there was a question that required some thought on a formula that was used in the class. While doing the final I remember thinking "I wish the homeworks had stuff like this" rather than plug and chug.
The TA/LFs were also very good and active on Ed. Prof wasn't active on Ed but was available to field any questions that the TA/LFs were unable to answer. This is the first semester that it's being offered so I wouldn't be surprised if there are a lot of changes before the fall.
Overall Rating (4.3 / 5): ★★★★☆
Professor Rating (2.1 / 5): ★★☆☆☆
Lecture Rating (2.9 / 5): ★★★☆☆
Difficulty (4.3 / 5):
Workload: 12 hours/week
Pros:
1. You need to learn DS and Algos - this will set you up
2. If you're rusty with OOP/Python concepts you'll get better
3. You'll get solid support from course mates and some TAs
Cons:
1. Schizophrenic Professor and grading
2. You'll never figure out, why your test cases failed
3. No support from most TAs (except Ha)
Detailed Review:
Let us face it - If you interview anywhere for a ML/Technical DS role chances are you'll have a coding round that involves knowing Big O analysis. If you haven't done that before then prep before you come to this class and try and get the most of it.
Unless you've a (recent) degree in CS you'll likely want to spend a lot of time in concept land before you take a course like this one - you'll need decent OOPs skills and Python coding abilities to attempt this course; don't lull your way into it. On the other side, this course skips a lot of Sorting and covers some Searching (not exhaustive); BFS/DFS/Djikstra etc. are covered and decent intro; you'll need a lot more Dynamic Programming than here.
Prof Lin’s lectures are useful, though there's a ton more resources on YouTube that are better. Read up all of them in your spare time. The lectures are pre-taped in a Socratic method type format and are okay. More about his idiosyncrasies further down
The quizzes are kind of crazy and you'll need to watch the lectures to attempt the quizzes to do well. Now comes the heartburn - the assignments. In Kaggle style you'll get some known test cases but you'll mostly be evaluated on unseen test cases. They won’t tell you *why you failed* some test cases even after they score them. So mostly you don't know what the heck you did wrong. The Prof. and the TAs claim this will help you "learn". I beg to differ - if one doesn't know why they erred, what exactly have they learned? They've learned they got a zero on some test somewhere. Pedagogical outcomes should be tied to actual learning of students, not in administering clever test cases and leaving people confused and frustrated.
The biggest con – I will go out on a limb and call this out – Prof Lin wrote 2 posts in the entire semester – One in the beginning welcoming people and telling us not to whine. One in the end, where it sounded to the rest of the crowd that he had caught someone cheating. And it seemed like he waited the entire semester to relish his catch. Otherwise, he was MIA with zero participation. It is quite obvious he does not care for you or your outcome. It almost feels like he’s solving some personal issue he’s had with someone cheating in the past or gotten a leg up at his expense etc.
Did I learn anything? Sure. I also learned that I can a lot more on my own and with my course mates. I did get better at coding and algos.
Is Prof Lin's class good for you and useful? Absolutely.
Is he pathologically nuts? Yes. People in authority like him, should contemplate deeply about psychological safety.
Is the way he grades (degrades?!) bizarre? Yep.
Are the TAs generally helpful? Yes. But don't expect much - some of them are astoundingly unhelpful. Ha Thai is the best – he appears to be a human being who cares.
Are the course mates helpful? Absolutely. This is the only forum where you'll get any help - Get on a Discord server for the class and focus on learning from each other. And yes, Leetcode on the side, to get ahead.
Do you need DSA? If you want to succeed in technical interviews then you better get good at this topic. Either with or without this class.