Overall Rating (2.1 / 5): ★★☆☆☆
Professor Rating (2.9 / 5): ★★★☆☆
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (3.9 / 5):
Workload: 18 hours/week
Pros:
1. Heard the course was revamped. They do give you all of the homework solutions. If they made you figure those out on your own before... holy would this class be ridiculous.
2. Lectures were surprising all that were needed most of the time for most of the quizzes
3. Lecture material and subject is an entirely different matter, but the professors did explain things well. I don't think I ever had any trouble understanding or following their logic.
Cons:
1. Was hoping it would make me better at Leetcode. Honestly doubt it, but I think the stuff they do cover is probably harder than any Leetcode hard you would see, so it probably makes understanding harder algorithms concepts easier
2. Every single week you have a quiz. And only a 48 hour window to take it from Friday noon to Sunday noon. Very annoying since of course I am studying over the weekend, and then waking up early on a Sunday to take the quiz in time. Wish they would make a better window.
3. Some quiz questions there's no way people figure it out in the small window. I really hate the quiz format since I think it just encourages everyone to use LLMs to take the quiz (I did not do this at all, and you are required to affirm you do not use any external resources). I'm probably just dumb tbh, but seeing the quiz averages and distributions really made me think most people were using LLMs.
4. Grading was awful for this class. TAs took forever to grade quizzes so you really never knew your standing in the class. At some point there was even like 5 quizzes you still did not have have a grade on.
Detailed Review:
Textbook is relevant, but you can just rely on the lectures and the provided homework answers, so skip reading it.
Entire grade is just based on the grades of your quizzes. They do drop your two lowest grades. And quiz answers are proofs so lots of writing.
I pretty much covered everything above, not much else to say. Was hoping to gain more Leetcode related stuff from the class, but we did not write a single line of code.
Favorite thing I learned though was P and NP, that always sounded so mysterious but it makes a lot of sense now.
Rated Piazza support lower because grading frequency sucked but they did have recorded office hours which was a huge plus (if you were interested in them, I personally did not listen to them).
Took this class with Operating Systems, and that was... quite painful at times. I think this class actually is fine to take with another class if you're trying to finish the program ASAP. Mainly because the workload is very consistent, there's no project or final exams to worry about. You get into a pretty consistent routine with watching lectures, studying, and taking the quiz each week.
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. The textbook is great and (somewhat) helped me understand the theory needed to complete the projects.
2. The PintOS toy operating system is used for grad and undergrad classes at other universities, so lectures and helpful resources are somewhat accessible from KAIST, CalTech, Berkeley, etc.
3. You can't finish the projects without understanding the material on a fairly deep level.
Cons:
1. The lectures on edX weren't the best. They were out of order, sometimes didn't cover the basics, and overall felt lacking in terms of cohesion and continuity with the rest of the course content.
2. Group projects can be a blessing or a curse depending on your group—few project tasks could be done in parallel.
3. Engagement on ed was lacking, basic questions went days without an answer or were given short shrift.
Detailed Review:
As mentioned in every review from this semester, the key takeaway is that this course has changed from previous iterations. The new set of PintOS projects are long, grueling, and lacking in terms of documentation and support from the course staff.
The midterm and final exam were just comprehension checks for the lectures. If you watch all of the lectures, take notes, and put together a solid notes sheet you will do well. No extra studying needed.
The projects:
Project 0 Wish Shell — Just a warmup for writing in C... briefly touches PintOS but is quite easy. If completing this project is a struggle then the rest of the class could be a disaster for you.
Project 1 Threads — Already a tough project with a huge amount of edge cases that are tough to test or catch. Thankfully the test suite was quite forgiving, but even a solution that passes all of the test cases is likely to be riddled with bugs that would bring the OS down under a stress test.
Project 2 Userprogs — Same difficulty level as the previous project, but now you start to touch a larger portion of the codebase. The tricky thing here is that it is frustrating to test until you have your stack loaded correctly... and achieving just that first part is very time consuming.
Project 3 Virtual Memory — A significant step up in difficulty from the last two projects. Again, brutally hard to test. You need a good mental model of what should happen before you start coding anything. There are some peculiarities about how the base virtual memory system is implemented to PintOS that you won't understand until you really dive deep into trying to understand the codebase. This is where the KAIST lecture videos are needed... without them I wouldn't have even known where to start.
Project 4 Filesystems — Ever so slightly easier than Project 3, but this project touched a greater portion of the codebase and required more code. The frustrating thing here was that you needed to write an absurd amount of code before being able to run a single test.
Overall, I can't claim this wasn't worth taking—I did in fact learn a lot about operating systems... but at what cost haha!
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 (4.3 / 5): ★★★★☆
Difficulty (1.4 / 5):
Workload: 3 hours/week
Pros:
1. TAs are generally responsive on Ed. For example, I managed to get responses usually within ~1day for matters like faulty submission. For some reason it's easy to get a response for a new thread, but not so easy if it's questions asked in an existing thread.
2. Syllabus covers pretty interesting topics.
3. Generous grading (it seems). Both exams are actually in multi-choice format. For second exam you get full marks if you can answer at least 8 out of 13 correctly.
4. Lecture content from both profs are actually pretty good. For those saying it's dry, do remember that this is a theory course.
Cons:
1. VERY low effort from the Professors. Zero interaction whatsoever. For the first mid-term, several people was pushing for solutions to the questions to learn from their mistakes - as far as I know the TAs tried to email the profs several times but no response, in the end it took months.
2. Assignments from first half was acceptable - i.e. I could still learn from the implementation and reinforced what I learned from the lecture, but the grading rubric etc could be misleading sometimes, showing that it was not properly refined prior to the course. Assignments from the second half was too simple, and I agree with other reviews that it's not really reinforcing much what's learned in the lecture. I can hardly imagine any reason as to not being able to score full marks. To put it quite literally, in every single assignment, as long as your final graph looks like a y = log(x) or y = sqrt(x), you're good to go. The weekly assignment link, like mentioned in other reviews, can sometimes be broken due to a silly copy-paste action from TAs/prof, i.e. the copy-pasting process added something into the URL and causes it to be broken. Grading rubric for this second half was also poorly done and obviously meant for previous semesters, showing the TAs/profs really didn't bother to correct this at all.
3. It's funny writing this now (as of today) because as soon as the final exam was graded, the Ed was archived almost instantaneously. Not sure if this is done by the TA/professors, but it's just unnerving to see such quick response to put an end to the course, leaving many questions in the board unanswered.
Detailed Review:
Overall I walked away from this course having learned something useful (from both halves of the course). While this may well be what the Profs have intended for all of us, I do think we as students should make it loud and clear that the current way of managing this online course is not how an online course should be treated. The lectures have been pre-recorded in earlier semesters which means there's already zero effort in this semester in terms of lectures. Yet this is coupled also with zero effort in grading (because it's automated), zero effort in helping out in Ed and zero effort in maintaining the assignments.
I do think future students reading this should strongly voice their concerns in their communication with the university with regards of what kind of role the professors are expected to play in online courses. I'm 2 years into the program now, and it seems overall it's just a bag of mixed feelings - some professors really put in a lot of effort (e.g. NLP), and some are non-existent throughout the entire course. WHAT'S THE UNIVERSITY'S STANCE ON THIS?
To end this review with a constructive feedback, I would suggest the profs to either take reference to how other online courses in MSCS have been run successfully, or at least manage the expectation about their commitment to the course right from the start.
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.