Overall Rating (1.4 / 5): ★☆☆☆☆
Professor Rating (2.9 / 5): ★★★☆☆
Lecture Rating (2.1 / 5): ★★☆☆☆
Difficulty (5 / 5):
Workload: 20 hours/week
Pros:
1. TAs made the class bearable
2. Great way to learn Latex
3.
Cons:
1. The class progresses at a break-neck speed
2. Topics in the first half feel disconnected
3. Lectures and slides are difficult to follow
Detailed Review:
First half:
- It is apparent from the beginning of this class that it is not for the faint of heart and that it will be a massive time commitment.
- The lecture notes for the first half of the class are dense PowerPoint slides that the professor scribbles examples on during lectures. You should be prepared to scribble on the provided slides as well.
- The homework’s often feel very disconnected from the lecture material and do not serve as a good tool for learning the content. Rather, they are cumbersome, stress-inducing grinds that don’t reinforce the concepts at all. The homeworks differ from the lectures so much that they provide 6 questions and only ask you to do 4. There are also dedicated hint sessions for each problem to put you in the right track. Good luck completing the assignments without the hint sessions. Overall the assignments feel needlessly difficult and didn’t help the material stick at all (for me at least).
- The instruction quality is average, but fails to provide examples and rarely explains how topics are connected to one another and rarely makes any connection about practical application of the material (I know it’s a theory course, but surely the content is used in practice somewhere right?!)
Second half:
- the second half of the course was markedly better than the first in my opinion.
- the homework questions were much more relevant to the lectures. There was generally one question per lecture, and there were no hint sessions. The lack of hint sessions was a good thing, to be clear. The homework problems were much more manageable and often had multiple parts that built off of each other. They were great for actually learning the material.
- the lecture notes were PowerPoint slides again, and the professor for the second half also scribbled all over them. It would have been great if clean figures had been included in the slides instead of the scribbles.
- the instruction quality was above average in the second part of the course. The relationship between topics was often more clear, and real world examples were evident in the material.
Overall, very difficult course that was a constant source of stress and frustration instead of enjoyable learning.
I would not recommend it to a friend, nor would I wish it upon my worst enemy.
Overall Rating (1.4 / 5): ★☆☆☆☆
Professor Rating (3.6 / 5): ★★★★☆
Lecture Rating (3.6 / 5): ★★★★☆
Difficulty (4.3 / 5):
Workload: 20 hours/week
This course will challenge you, and the material is theoretically interesting, but it is not well-run.
Professors Rossbach and Lin were engaging lecturers in the prerecorded videos, but were almost entirely absent from the course itself. In addition, the lecture content felt very scattered, and the second half of the lectures were only occasionally useful for doing the assignments. I can count on one hand the number of times the professors answered questions about the assignments on Piazza.
This meant that the course was almost entirely in the hands of the TAs. The main person responsible for answering Piazza questions was Henrique, with some contributions from Grant and Aditya. Abayomi never posted on Piazza except when students complained that they couldn't access his office hours. Regardless, none of the TAs held office hours or answered questions on the weekend, which was extremely inconvenient given that most of the assignments were due on Monday.
Despite being long-winded and reused from previous semesters, the assignment descriptions still had many ambiguities that students asked to clarify. Often, questions about these points of confusion went unanswered on Piazza, forcing you to go to office hours if you wanted an answer.
In a few cases, the TAs gave conflicting answers about how to implement the assignment. One of the TAs explained that these ambiguities should be interpreted as freedom for students to make their own "design decisions". That's all very well and good, but it would have been nice to know this philosophy at the start of the semester, instead of when it was almost over.
This was especially problematic because most of the assignments did not have a grading rubric until after the deadline. It was not always clear when our parallel implementation was expected to show speedup over the sequential version, or what we should be putting in the assignment reports.
There were other smaller issues as well. Lab 1 suffered from extensive grading mishaps - the average grade was in the 60s when grades were first released, and then increased to in the 90s after they were corrected. We didn't get our grades for Lab 2 for six weeks. There were a few problems with the Codio environment. In one case, an older version of the assignment was uploaded instead of the slightly different newer version. In another, the environment was unavailable for a few days because none of the TAs were checking Piazza on the weekend. Also, extra credit on the assignments is apparently only applied to the given assignment, i.e. you can only have a maximum score of 100 on any assignment, which is not how extra credit has worked in any other course I've taken.
I would not recommend this course unless you love mysteries, surprises, and people who disappear.
Overall Rating (1.4 / 5): ★☆☆☆☆
Professor Rating (0.7 / 5): ★☆☆☆☆
Lecture Rating (1.4 / 5): ★☆☆☆☆
Difficulty (3.6 / 5):
Workload: 3 hours/week
Pros:
1. Key concepts covered
2. Statkey is helpful in understanding CI & hypothesis
3. Lecture slides are detailed enough
Cons:
1. Lots of technical glitches re. grading
2. Instructions scattered everywhere, platform is confusing to navigate
3. Theoretical distributions are dry and too abstract. Terminology and notations cause more confusion than help
Detailed Review:
First impression is important. This course could be made better to create a great impression for the whole program, or maybe move it later in the order.
Overall Rating (1.4 / 5): ★☆☆☆☆
Professor Rating (5 / 5): ★★★★★
Lecture Rating (5 / 5): ★★★★★
Difficulty (4.3 / 5):
Workload: 8 hours/week
Pros:
1. Learned a ton which I will use in the future
2. Great lectures
3.
Cons:
1. Extremely ambiguous HW and exams
2. Rampant cheating makes it hard for someone taking the class legitimately to succeed
3.
Detailed Review:
I learned the most out of this class than any other in the program. However, every homework assignment and exam had at least 20% of its questions be completely ambiguous and arbitrary to the point that the TAs/Prof couldn't give a solid explanation. HW answer explanations also aren't given so uhh good luck finding out what exactly you did wrong (especially on the choose all that are correct questions). You could ask on Ed but they would usually give vague answers as to not give away the answer key for future semesters, I presume. Not like it matters, as after the semester, rumor was that apparently a huge portion of the class were on discord calls doing exams and every HW together which explains why this class scored higher than classes in previous semesters. Made it very difficult to get a good grade by doing things legitimately and it left a sour taste in my mouth as I feel I didn't get the appopriate reward for the effort I put into the course.
Overall Rating (1.4 / 5): ★☆☆☆☆
Professor Rating (0.7 / 5): ★☆☆☆☆
Lecture Rating (0.7 / 5): ★☆☆☆☆
Difficulty (2.1 / 5):
Workload: 15 hours/week
Pros:
1. You get a systems credit for the degree.
2. 10-15hrs a week.
3. Book is easy to read.
Cons:
1. Lectures and book to not correspond to the assignments.
2. Lectures are generally a waste of time, so only the advanced topic lectures are required if you read the book.
3. Assignment are challenging simply because the course does nothing to help, and instead they require googling.
Detailed Review:
I found this course to overall be the an equivalent workload to NLP, at about 10-15 hours a week average. The majority of my time was spent reading the book and getting through lecture material that is not in the book to prepare for the exams. The course materials only pertain to the exam topics.
There are 5 assignments and I found the second assignment to be the most time consuming. Assignments 3-5 involve modifying the Xv6 operating system. Unfortunately the course materials, including the Xv6 commentary book, do not actually discuss the areas of the Xv6 OS that we have to work with in these assignments. For example, modifying malloc system call is required, and if you search for malloc within the Xv6 commentary there is zero discussion or notes. This is basically the result of searching for any course materials pertaining to the assignments. The lectures also do not discuss anything related to the assignments, other than surface level discussion on CPU and memory virtualization. Therefore you must google and research to find discussions and materials from other classes that give more guidance and discussion on the areas of the Xv6 OS that you will modify.
Overall Rating (1.4 / 5): ★☆☆☆☆
Professor Rating (0.7 / 5): ★☆☆☆☆
Lecture Rating (0.7 / 5): ★☆☆☆☆
Difficulty (0.7 / 5):
Workload: 2 hours/week
Pros:
1. Easy A?
2. Honestly struggling to come up with positives
3.
Cons:
1. Most of the first half is useless
2. Meaningless calculations to be performed by long hand
3. False precision on the Quizzes will ding you
Detailed Review:
I'll set aside the garbage experience with peerceptive - others have addressed this. My issue with the class is there's nothing about "predictive modeling" to be learned here. The first half has some Time Series (1 module) and that too is very limited - they spent a lot of time in some spatial modeling which probably 5% of the world uses. The first half half is almost entirely useless.
The second half has a lot of matrix math calculations to be done by long hand, SVD, PCA etc. which is covered elsewhere in the program. This course is highly disappointing and waste of your time.
Really they should scrap this course entirely and redesign it to truly teach predicitive modeling.
Overall Rating (1.4 / 5): ★☆☆☆☆
Professor Rating (2.1 / 5): ★★☆☆☆
Lecture Rating (2.9 / 5): ★★★☆☆
Difficulty (4.3 / 5):
Workload: 13 hours/week
Pros:
1. You will learn something about ML
2. TA sessions will help you get through the difficult homeworks
3. Textbook for the second half is written by the professor and is fairly good.
Cons:
1. Lectures assume quite a bit of prior knowledge w/ probability and complexity theory
2. Textbook for the first half is difficult to understand
3. Peer grading is an extra time sink
(NOTE: the only reason why the Textbook Usefulness, Lecture Quality, and Professor Quality scores are not 1 is due to the second half of the course)
Detailed Review:
Overall, I'm disappointed in this class. Did I learn something? Yes. Was it painful? Yes. Did it have to be? No. The homeworks assume quite a lot of prior knowledge (even more than the lectures) and are obtuse. The majority of the time you will spend with the homework is just figuring out what the questions are asking. TA sessions are an **absolute necessity** unless you are just naturally brilliant. I would not have been able to complete the homeworks without those sessions. However, for this semester not all TAs are equally good, so you may have to organize around the one(s) that are most understandable. Peer grading is an additional time sink to the time one already spends in the course. At least on the programming side I think they should have figured out a Python-based auto-grader by now.
I took extensive notes about how much time I spent each week, so figured I'd share if you were wanting to know how to budget.
- W1: 8.75 hours (including HW0)
- W2: 8.75 hours (started work on HW1)
- W3: 30 hours (19.25 hours for HW1 + 10.75 for lectures/grading)
- W4: 18.25 hours (12.5 hours for HW2, 1.5 hours for HW2 grading, 4.25 hours for lectures)
- W5: 11 hours(3.25 hours for HW3p, 3 hours for HW3t, 4 hours for OH, 0.75 hours for HW3 grading)
- W6: 14 hours (9.25 hours prep for Exam 1, 2.25 hours for OH, 2.5 hours for Exam 1)
- W7: 5 hours (4 hours for lectures; 1 hour for OH)
- W8: 8.75 hours (1.5 hours for reading; 4.5 hours for OH; 1.5 hours for HW4; 0.75 hours for HW4 grading)
- W9: 18.5 hours (4.75 hours for lectures; 0.75 hours for reading; 7.25 for HW5; 4.5 hours for OH; 1.25 for HW5 grading)
- W10: 6.25 hours (3 hours for lectures; 1.5 hours for HW6; 1.75 for OH)
- W11: 9.5 hours (7 hours for Exam 2 prep; 2.5 hours for exam)
Overall Rating (1.4 / 5): ★☆☆☆☆
Professor Rating (2.1 / 5): ★★☆☆☆
Lecture Rating (2.9 / 5): ★★★☆☆
Difficulty (2.9 / 5):
Workload: 12 hours/week
Pros:
1. A big chunk of the grade comes from homework
2. Optimization half had challenging homework and good lectures
3. Lighter second half
Cons:
1. Little to no TA or professor engagement aside from office hrs
2. Multiple choice exams with little feedback
3. Second half assignments too simple
Detailed Review:
First half: I liked the first half lectures and assignments but I wish there were some more proof-based assignments too as these would have helped for the exam and general learning. Some of the material was covered in Optimization but presented in a different way. It goes fast and I don't think I would have understood it as deeply if I didn't have Optimization beforehand. Avg 15 hrs/wk
Second half: The lectures were interesting, but most of the homework code was filled in for us and I do not feel like I learned enough. The professor did try to connect the concepts to real-life examples which was helpful. In many cases the grading rubrics were not even applicable for the current iteration of the class or topic (and a lot of that was never fixed or acknowledged). Avg 8 hrs/wk
Exams: Aside from unhelpful guidance that exams are based on lecture content, students had no idea what to expect. The first exam was awful, mean scores in 'F' range, and students did not get to review exam solutions until nearly the end of the course. The second exam was better, but again due to lack of communication it was a very frustrating experience.
Many student questions were unanswered on Ed. Conceptual questions in particular (not directly related to homework links/homework grading questions) were not answered very often, but luckily students stepped in to help each other. I felt like the staff did not care about students in this class and the learning opportunities were diminished because of this. Having taken Optimization I was really looking forward to this class but the exams and lack of support left a poor impression.
Overall Rating (1.4 / 5): ★☆☆☆☆
Professor Rating (2.9 / 5): ★★★☆☆
Lecture Rating (2.1 / 5): ★★☆☆☆
Difficulty (2.9 / 5):
Workload: 20 hours/week
Pros:
1. Nice topics
2. Good % for homeworks
3. Some homeworks are easy
Cons:
1. The worst organization I've seen
2. 1st part homeworks are unnecessarily difficult (read the detailed review)
3. Grading is NOT clear, exams are unfair (read the detailed review).
Detailed Review:
If you are reading this, let me say that I was in your position 6 months ago, and yes, as you have read the other reviews I tried to give this class an "opportunity" since they have nice topics in the syllabus, and please don't get me wrong, the topics are good (maybe 8.5/10) but the way the staff carried the course and the way the course is graded is the worst I have seen during my master (MSCS).
The first part is full theory and a part of algorithms, but I did some of the same algorithms in the ML class (10/10 class) and I took like 2 hours per homework, but here we took like 9 hours per homework NOT for the difficulty of the topic but the template the professor uses in his code, you will spend like 2 hours only trying to understand the data structures and algorithms they use, like put a for in a method, or renaming the same method 3 times, and again the topics of the homework were not difficult, but leading with the template is awful. Also, the first exam was like 9 questions of the theory that we did NOT see in class, but you "should" Intuit, and 4 about the algorithms, in our case one was wrongly formulated, and they did not give us the extra point, even they regarded some points.
The second part was easier, but monotonous, and they have some "optional" modules, so be careful if you are going late with the lectures, so you can skip them, and in fact, the second exam was too bad, they had many ambiguous question that actually could have more than one answer, and we all got mad since the semester ended and they did not realize the grades and archived the course, so we could not ask for a regrade or something.
Actually, the worst ED / piazza / staff I have ever faced, the professors were inexistent (only 2 comments in the whole semester) and it was like only one TA that answered 1 out of 20 posts or questions.
If you have the opportunity to take this course, avoid it and take ML instead.
Overall Rating (1.4 / 5): ★☆☆☆☆
Professor Rating (0.7 / 5): ★☆☆☆☆
Lecture Rating (0.7 / 5): ★☆☆☆☆
Difficulty (2.1 / 5):
Workload: 7 hours/week
Pros:
1. 12 homeworks with 2 drops, no exams
2. Covers a wide array of critical topics
Cons:
1. Lecture materials and their delivery are subpar
2. Most lectures examples are not reproducible, given "code" is borderline unreadable, and there is no textbook or recommended reference materials
3. Homeworks are heavily theoretical and do little to expand beyond lecture
4. Professor's attitude in lecture and on Piazza was not conducive to learning
Detailed Review:
Despite the consistent negative reviews this class has received in the past, I hoped that it would be a worthwhile experience after reading the list of topics covered in the syllabus. I was sorely mistaken. This class was week after week of the professor barreling through the material and heavy amount of math while calling the majority of the material "trivial" or "easy", often referring us to a nonexistent webpage for more details. Despite this course being offered since as early as 2021, the number of typos remaining in the lectures was unacceptable. Luckily, the TA was very on top of fixing these issues and responsive to the questions and concerns students had over their understanding of the material.
The workload of this class comprises of 12 homeworks, roughly half peer-graded half multiple-choice machine graded, with 2 drops. The homeworks are always two 5 part questions, which sometimes conflicted with the lectures which were divided into 3 segments. In weeks where there were 3 major topics, one of them would just not be on the homework at all. The overwhelming majority of the homeworks consist of deriving various theoretical properties about the material that was covered, expanding little beyond them since it is often just a simpler version of what was covered in the slides (single predictor vs. multiple predictors for example). Derivations that probably should have been included in the lecture material simply end up in the homework. Sometimes there is data given to "apply" the concepts too, but the data is just "x" and "y" with no real-world connection so those problems devolve into mindlessly putting the data through the equations.
The professor uses R in the lecture slides, but having a rigorous grasp of it is unnecessary. The provided code examples are near unusable due to poor variable naming and no comments. You are better off writing the code from scratch, most of it is just applying a formula or implementing simple algorithms anyway. "Examples" in the lectures are also almost always based on randomly generated data, so it is impossible to reproduce the exact values from the slides making the few examples included to begin with near useless.
Overall, this class covers a lot of important and interesting material, but don't worry too much about learning it deeply here. Nearly all of the topics were covered in other classes in the program in a more useful way, so this class mostly just became a chore to do each week. With some effort, succeeding in this class is pretty simple, but it is unlikely that this class alone will help in a data science career. Hopefully, changes will be made to this class one day, but given its history I highly doubt that will happen.
PS: Forgot to mention this but if you haven't taken DSC 381 or another introductory class to probability recently, make sure to brush up on that material because a grasp on the basics of probability distributions and their properties is expected but never explicitly reviewed. In particular, the properties of expectation and variance of random variables is something that comes up on nearly every homework (and something that people consistently struggled with every homework).