Overall Rating (2.1 / 5): ★★☆☆☆
Professor Rating (2.1 / 5): ★★☆☆☆
Lecture Rating (2.1 / 5): ★★☆☆☆
Difficulty (4.3 / 5):
Workload: 18 hours/week
Pros:
1. Broad range of topics covered so odds are you'll find something interesting/useful
2. Other courses will feel easier in comparison :)
Cons:
1.Too much content. Topics don't always naturally build off previous weeks, so just a lot of separate ideas to learn. In general too much material presented to gain a solid understanding in any topic.
2. Problem sets are very time consuming. There's only 6 throughout the semester, and the TAs were generous in providing hints/tips to get started, but each one took 20+ hours to complete.
3. Tests are very difficult. I would be amazed to hear someone was able to get an answer for all the questions within the 3 hour limit.
Detailed Review:
Mathematical maturity is assumed for this class. You definitely need at least experience with algorithms and proof techniques. I have more background in this area than the average CS student or software developer and still had difficulty in this class. I will say I still think there's a good amount of important and interesting content here, just know what you're getting into.
The TAs for our semester were very helpful. Course could have been even harder without their help.
The course is generously curved, I do feel like the instructors are aware of the difficulty of the material and will curve the class to adjust for this.
Overall Rating (2.1 / 5): ★★☆☆☆
Professor Rating (2.1 / 5): ★★☆☆☆
Lecture Rating (2.1 / 5): ★★☆☆☆
Difficulty (3.6 / 5):
Workload: 15 hours/week
Pros:
1. Well paced assignments
2. Interesting course material
Cons:
1. Extremely theoretical
2. Lectures don't tie well with homework
3. TAs and professors can be hard to get a hold of
4. Difficult/frustrating exams
Detailed Review: This course was all around a miss for me. The first half of the class is interesting, but incredibly difficult. The lectures are fine but don't tie in well with the homework assignments, and I spent many hours pouring over the textbook and different websites to teach myself the math needed to get through the homework. The second half of the class was significantly easier with less intense homework assignments, but the lectures were very long and not very well paced. It didn't help that none of the notes were transcribed, so the lecture slides were just handwritten notes that got progressively worse the longer the lecture went.
My biggest gripe is the lack of course communication. Sure, if you want help with an assignment or show up to office hours, you'll get all the help you need from TA and other students (mostly other students, let's be real) but the real shame is when you have real logistic questions. I've sent emails regarding possible extensions, what do do if I missed a peer evaluation, what to do if I missed a submission deadline, and all of those emails went unanswered. Staying aware of deadlines would be less of an issue if the assignments and peer evaluations were due at the same time every other week but sadly that is not the case. Sometimes an assignment was due Sunday, sometimes Saturday, sometimes Tuesday. Then the peer evaluation didn't start didn't start for a full 2 days afterwards, which left a lot of room for forgetfulness. The peer evaluations were also not due for the same length of time after each assignment. On some you had 5 days, on others up to 7. Why? This made the deadlines incredibly hard to keep on top of. And what if you submit an assignment but miss the peer eval? Do you still get a grade? Nobody knows because the TAs and instructors ignore you.
Besides, even if you don't get tripped up by the moving deadlines, the peer grading is brutal. While students are encouraged to go easy on their peers and not take off for small mistakes, many students are very harsh. While you can ask TAs for a regrade, it is usually not worth the time and effort for a few points. You are also asked to grade 5 peers' assignments after every homework. I understand that there need to be more graders incase some people forget to do it, but 5 assignments is a LOT. It's time consuming, and if done well it takes me a good hour to 90 minutes to get through it all. I don't feel like the grades I receive are necessarily representative of my performance, and I certainly don't feel like grading my peers is giving me a deeper understanding or appreciation of the course material. If anything, it just makes me feel like the TAs and instructors are trying to get out of work.
Lastly, the exams are painful. Not only are they difficult, but you have to figure out the whole proctoring situation too. The professors said they wanted to be able to see our hands and work space the entire time, but that was simply impossible given most of us are using laptops, so they just got a good view of the top of my head. Plus, due to the nature of the video upload, it took a long time to be able to even submit my test once I was done with it. The TAs and professors then took weeks to finish grading all of our tests. While I understand grading all of our answers was time consuming (no multiple choice) we were left in the dark for weeks regarding our performance, and after the scores came out, there was a lot of disagreement over the fairness of scores.
As much as I want to be understanding about these issues, the professors have had a long time to figure out how to manage the class, since it was a part of the CS program before MSDS. I just sincerely hope I don't have to retake this class again due to problems outside of my control.
Overall Rating (2.1 / 5): ★★☆☆☆
Professor Rating (1.4 / 5): ★☆☆☆☆
Lecture Rating (1.4 / 5): ★☆☆☆☆
Difficulty (2.1 / 5):
Workload: 5 hours/week
Pros:
1. Not too hard
2. Not a huge time commitment
3.
Cons:
1. Very surface level
2. Little attention given to application
3. Boring lectures
Detailed Review:
This class was OK. Pretty boring content with boring lectures. The probability theory was okay, but I didn't think the homework really made us practice what we learned. I don't mind all the proofs, but it would be nice to set up some of our own experiments. Same goes for the stats portion. Why do we use statkey for a graduate level course?? It seems like something that'd be nice for demonstrations in an undergraduate course. This course will not teach you how to design any sort of experiment, which seems like an important aspect of probability and statistics in data science. I guess the nicest thing about statkey was that it taught you to interpret results, but, once again, at a pretty low level.
There were also lots of mistakes in lectures, and the organization on canvas was pretty bad. Links to different instructions everywhere, numbering on homework assignments and submissions not lining up, etc. Even though this program is cheap, 1,000 bucks felt overpriced for the quality of the course. I hope they redo this course and make the content more well organized and applicable going forward.
Overall Rating (2.1 / 5): ★★☆☆☆
Professor Rating (2.1 / 5): ★★☆☆☆
Lecture Rating (2.1 / 5): ★★☆☆☆
Difficulty (1.4 / 5):
Workload: 6 hours/week
Pros:
1. One of if not the easiest course, so take something with it
2. Decent overview of the ML application space
3. Surprisingly responsive TAs
Cons:
1. The quizzes are really easy
2. You really could do the final project without taking the class
3.
Detailed Review:
If your goal is to have a class that really expands your ML knowledge, this probably isn't the winner. I actually got a decent amount of value out of the final project. I was able to both complete a useful course towards the degree AND provide a good proof-of-concept to my workplace for the application. Either way, the final project is explicitly expected to be included in your portfolio of works. The more work you put into the project, the more you get out of the course, but you could also do the project without the course. Hey, we are taking a degree for a reason, and part of that reason is that we have deadlines forced upon us.
Overall Rating (2.1 / 5): ★★☆☆☆
Professor Rating (2.9 / 5): ★★★☆☆
Lecture Rating (2.9 / 5): ★★★☆☆
Difficulty (2.1 / 5):
Workload: 7 hours/week
Pros:
1. Material in first half was good
2. Not a huge time commitment
Cons:
1. Material in second half was not useful
2. Quizzes and staff graded homework grading annoying at times
Detailed Review:
The course is divided into two separate sections. The first half covers the theory and practice of modeling using time series and spatial analysis. The second half goes over matrix completion and network analysis methods.
The first part was useful as most people will need to deal with either time series or spatial analysis at some point in their lives, if not both. My only complaint was that the material seemed rushed since it was only half a semester. It would have been nice to go over the finer points of the theory and discussion of other topics. Most of the homework's involved doing some analysis of a dataset using prebuilt R library packages to perform. Although I did like this, I do wish they could have covered a bit more on the theory and algorithm side as well. You are also forced to do the assignments in R during this portion, which isn't ideal if you work day to day in python.
Second half spent several weeks going over linear algebra topics and dimensionality reduction that is already covered extensively in other courses in the program. These weeks honestly just felt like a waste of time. Only silver lining was that these assignments were extremely easy, and I spent less than 3 hours per week on the course during time. The last couple weeks were then a massive info dump over network analysis. Just skimming through the slides, most of the methods covered have fallen out of favor to more modern methods like graph neural networks, which isn't covered. Needless to say, wasn't a huge fan of this portion of the class.
The grading on the quizzes (and yes they are quizzes, not "practice" as they are labeled) and homework's were annoying at times. On some of the quizzes, the rounding policy for the fill in the numerical answer questions seemed inconsistent. Sometimes the solution rounded their answer, and sometimes it didn't. This made trying to determine what to input as the last digit of your answer in order to receive credit an unnecessary chore. Then for the staff graded portions, they just gave you a credit / no credit for every portion. If you made a tiny error, it could end up costing you much of the assignment. If they are going to grade like this, I didn't see the point of having a human review it since there is no partial credit for having the correct approach. They could have just converted this into a fill in the blank / multiple choice like every other course in the program honestly.
Overall, this was probably my least favorite course in the program. If it only covered the first half, but in more detailed, my opinion would likely be different.
Overall Rating (2.1 / 5): ★★☆☆☆
Professor Rating (2.9 / 5): ★★★☆☆
Lecture Rating (2.9 / 5): ★★★☆☆
Difficulty (4.3 / 5):
Workload: 20 hours/week
Pros:
1. Curve
2. Rich content
3. TAs response
Cons:
1. Exams
2. Splitting of the course
3. Professors afk
Detailed Review:
This course really should be two different courses one of the theory side and another for the stats and applications. The lectures are rich and well presented. The amount of content is too much I honestly don't remember most of the stuff that should be "important". I wouldn't recommend taking unless this course is split into 2 different ones or they restructure/re-record the lectures and course. Definitely don't take it by itself on your first semester as you might risk academic probation if you work hard and end up with a B-.
Part I:
The book is not helpful it's written with so much detail that it over complicates simple concepts that could be grasped with a simple 5 minute StatsQuest video. Dr.Klivans was afk from Piazza other than the times that involved logistic issues such as proctoring for exams or peer grading issues. The set of homeworks for this part are rather hard with the 1st being the hardest. For the exam you are really thrown a curveball in the sense that the "review" questions you are provided are more like comments not so much questions that help with the exam. Overall, this part was rather annoying and I considered dropping the course at this point as I felt I was not learning anything from the course. Since I was learning more from StatsQuest and freecodecamp on YouTube.
Part II:
The book is actually readable and easy to understand as the professor writes it himself. The homeworks are manageable since they resemble what is taught in lectures and in the book. I really like this part as I was able to really learn and see how these applications are used in practice. The exam practice for this section is actually helpful as you get easy-medium practice questions but on the same breadth and depth as the exam. This part of the course was far more enjoyable and the professor was seen more in piazza.
TLDR:
Wouldn't recommend as a lot of math, stats, and programming background is really required to get an A. Unless you are a full-time student and have to refresh on these concepts or are naturally good. For the average person, it will be super stressful and you will have to hope for a good curve to get a B or B+. Don't recommend taking it as the only course on your first semester as you could get academic probation. If you are really interested in learning ML I would recommend taking another course online or just watching freecodecamp's ML course that is FREE and won't risk you on academic probation.
Overall Rating (2.1 / 5): ★★☆☆☆
Professor Rating (3.6 / 5): ★★★★☆
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (0.7 / 5):
Workload: 6 hours/week
Pros:
1. The textbook is of good quality. It goes into good detail and tries to tie together all the concepts in the book.
2. The programming assignments were fairly basic and can be done much more quickly than those in most other courses.
3.
Cons:
1. Exam is quite unforgiving. Several questions had lots of calculation steps. Making any mistake would result in a 0, and parts built upon other parts. The course was curved, so not the biggest problem.
2. The lectures are only supplementary. The main learning is from reading a chapter of the textbook per week. This was very unengaging for me. The lectures themselves were good, but I lost the motivation to watch them after 2-3 weeks because they were supplementary. To be clear, the lectures mainly just fill gaps in the books; you cannot get through the course by just watching the lectures.
3. I didn't feel like I learned much from the programming assignments since they were quite simple.
Other notes: All assignment and homework deadlines were moved to the end of the semester, except for the weekly reading responses. Some students enjoyed this, others did not, so it might not happen next semester.
Reading responses appear to be marked for coverage rather than quality. Having a few very insightful thoughts but not mentioning all the major themes of the chapter led to mark deductions for me. Putting very boring remarks that covered everything did not lead to deductions for me.
Overall Rating (2.1 / 5): ★★☆☆☆
Professor Rating (2.1 / 5): ★★☆☆☆
Lecture Rating (2.1 / 5): ★★☆☆☆
Difficulty (4.6 / 5):
Workload: 30 hours/week
Pros:
1. The lectures do give a good understanding of the topics covered.
2. The textbook is probably your best friend if you truly want to understand the concepts.
3. The TAs were (mostly) responsive (kind of abrupt in replies though), and Ed was mostly active and helpful due to the students helping each other out.
Cons:
1. There is absolutely no relation between the lecture videos and the assignments. Lectures cover xv86 and assignments are on pintos.
2. Expect a requirement document (which is sometimes pretty vague with the requirements); we get no clarification on the assignments unless we ask a specific question on Ed.
3. Way too much effort went into the assignments. I felt the workload was skewed heavily towards completing the assignments and then watching the videos whenever I had some time.
Detailed Review:
It is a good course if you want to learn about OS concepts, though honestly, the textbook (which is a free e-book) itself is the best source of information. The lectures are good, but they are way out of line with the assignments. 5 assignments over a semester honestly don't sound too bad, but wait till you actually start coding for them. The complexity grows with every assignment, and you are more squeezed to finish work on time.
You do get 5 grace days, which you can use as a group. But I honestly advice not to rely on them and just start your work early, because you will need all the time you can dedicate.
Overall Rating (2.1 / 5): ★★☆☆☆
Professor Rating (0.7 / 5): ★☆☆☆☆
Lecture Rating (0.7 / 5): ★☆☆☆☆
Difficulty (3.6 / 5):
Workload: 20 hours/week
Pros:
1. Course is oriented towards programming.
2. Engaging topics on operating systems.
3.
Cons:
1. The class relies heavily on group projects, yet many participants lack sufficient C programming experience, making it challenging to contribute effectively to some of the more demanding projects.
2. Both teaching assistants and the professor were unhelpful.
3. The project schedule was poorly planned given their complexity.
Detailed Review:
The structure of this course is fundamentally flawed. While the subject of operating systems is fascinating and crucial for computer scientists, this course fails to facilitate effective learning.
Firstly, the lectures were entirely pointless, outdated, and provided no aid in understanding the projects. I ceased watching after the first lecture due to their irrelevance and the professor's poor presentation skills.
Secondly, every project had to be completed in a group, yet most students did not possess the necessary C programming skills to manage them effectively. The Pintos projects could be completed in a week if all three members equally contributed. In reality, if you care about getting a good grade, you will end up doing all the work. I had to change group members multiple times because one would drop the course and completely ghost us until the deadline. My group members often gave me false hope about their progress, only to reveal at the last minute that they had only written a few lines of non-functional code. Consequently, I had to take holidays from work to complete all the projects myself. I also had a group member who tried to give me a psychological lecture on forgiving another student for failing to write a single line of working code for several projects, instead of properly addressing the issue with the TAs. Ultimately, I had to complete an entire project by myself. Why would someone enroll in a coding class without coding skills? Why claim to have a good level of coding skills when forming a group, only to leech off others? Additionally, when we raised some of these issues with the TAs, their solution was to split our group into two, letting the slacker be graded on the complete project that we implemented instead of his failed attempt. This is not proper conflict resolution.
Lastly, the teaching assistants and professor were extremely unhelpful. Their inability to provide meaningful support made external resources like YouTube a better option for understanding how to complete projects.
Overall Rating (2.1 / 5): ★★☆☆☆
Professor Rating (2.9 / 5): ★★★☆☆
Lecture Rating (2.9 / 5): ★★★☆☆
Difficulty (4.3 / 5):
Workload: 20 hours/week
Pros:
1. Helpful TA's if you ask the right questions and ask for help
2. Gives an overview of ML areas really quickly
3. 2nd half of the class feels more manageable and concrete
Cons:
1. Very open ended and abstract with little guidance
2. Frustrating assignments with lots of time spent figuring out what is being asked
3. If you have a brilliant class then you'll need to keep up with the curve
Detailed Review:
I am fairly disappointed with this course, probably skewed by taking it over summer. I felt like dropping it after the first two homeworks. The assignments seemed disconnected from lecture and very abstract and there is little guidance to help figure out the concepts. I am definitely coming from more of a CS newbie perspective with no ML training, but I did hear the sentiments echoed that many folks spent more time googling and learning how the material worked from the web than from lectures. In a way, it did help me force myself to learn due to the amount of online research I did because it is a sink or swim environment where you have to learn and research a lot of stuff in order to grasp the assignment material. My review is also a little skewed because taking this over the summer makes it a very aggressive schedule where you have to watch all the abstract lecture material and complete both a confusing theory assignment plus a coding assignment each week. If you are not a seasoned ML practitioner and you are starting off the program with ML, I would recommend taking it Fall or Spring in order to give yourself more time to get caught up and ask questions.
I agree with previous comments about Prof Liu being a bit easier to follow and the concepts and math are better documented in his textbook.