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).
Overall Rating (1.4 / 5): ★☆☆☆☆
Professor Rating (1.4 / 5): ★☆☆☆☆
Lecture Rating (1.4 / 5): ★☆☆☆☆
Difficulty (1.4 / 5):
Workload: 3 hours/week
Pros:
1. Light workload
2.
3.
Cons:
1. Bad lectures and labs
2. Annoying quizzes
3.
Detailed Review:
This class was laughably bad. I took this course knowing it was bad because I just wanted an easy credit, but damn...it was pretty bad. The entirety of the class is either the professor or the TA just reading slides. The quizzes then test you on minutiae from random parts of the slides or labs to see if you were paying attention. I stopped watching the course material after a few weeks and would try and just sift through the slides to get the quiz answers and that worked well enough. I lost a few points because I sped through annoying wording (ie, multiple choice questions where you're supposed to choose the incorrect answer rather than the correct one), but oh well. The workload picks up at the end when you have to write a long final paper, which I actually kind of enjoyed...until the TA feedback was "your method was kind of simple". That had me punching air.
The only entertaining part of the course was at random points in the lecture videos the professor would try and hold in a sneeze and fail, and let out these little baby sneezes. It was a riot.
Anyway, if you don't care about getting value for your money and just want an easy course (hey, maybe you'd learn something if you put more into it than I did), then this is for you. If you want something academically engaging and rigorous, then avoid.
Poor communication, absentee professors, intrusive video monitoring, useless programming assignments
Spring 2021CS 391L · Machine Learning
Overall Rating (1.4 / 5): ★☆☆☆☆
Professor Rating (1.4 / 5): ★☆☆☆☆
Lecture Rating (1.4 / 5): ★☆☆☆☆
Difficulty (4.3 / 5):
Workload: 15 hours/week
The professors' goal seemed to be to put as little effort into teaching this class as humanly possible. 90% of Klivans' interaction with the class was arguing about the intrusive Panopto software used for exams. He clearly cared much more about policing the students exams than about actually teaching us machine learning. Liu posted about 3 sentences on Piazza the entire semester, so effectively had zero interaction with students at all.
Lecture videos were recorded several years ago. Klivans' videos were from an in-person class, so you have to suffer through random people asking questions, or Klivans asking them questions and then sitting there until someone responds, etc. Requires a lot of outside study to understand most of what he is trying to teach. Liu's videos are at least organized better and he is good at explaining each step and how it connects to the rest of the topic. But it is all math, all theory, and you get no indication of how to actually apply it to real-world problems.
Class is 90% theory and 10% applications. The programming projects were fill-in-the-blank Jupyter notebooks using toy datasets, or (even worse) randomly generated data. This class should've been a great opportunity to work with real data using the ML algorithms but instead we got this.
Homework difficulty / hours required is monotonically decreasing over the course of the semester.
Textbook for Klivans' half of the course is horrifically bad for learning the material. It's probably a good reference if you already have a PhD in ML, but there is no way anyone could learn the material from it for the first time without already knowing it. For Liu's half of the course, he provided notes from a draft textbook that was not as bad.
Exams require the use of Panopto, an intrusive video recording software. Communication regarding this was very poor, and many students had issues with their recordings. This made the exams even more stressful, as students weren't just worried about learning the material, but also about whether their videos were configured correctly, or would upload in time, etc. All this for something that wouldn't even stop someone that truly wanted to cheat anyway.
Peer grading is an atrocious grading mechanism for a graduate class of this difficulty. None of us students are qualified to grade the homeworks. The problems are too complicated and have too many possible solutions for someone who is just trying to learn the material for the first time to make grading decisions. Everyone I talked to had a story of losing points due to a grader not understanding something even though it was a valid solution. Also since grades are curved, you are actually incentivized to give your fellow students lower grades (thankfully it seemed like most people erred on the side of leniency). I understand there are limitations due to the number of people taking these classes, so they all use multiple choice and/or peer grading.. but it would be a huge improvement if UT would cough up a little money to hire some graders.
I did learn a lot this semester, but it was mostly from self-study using books and videos on the web. I was really excited about learning ML before I took this class, and it was a huge letdown.
Overall Rating (1.4 / 5): ★☆☆☆☆
Professor Rating (3.6 / 5): ★★★★☆
Lecture Rating (3.6 / 5): ★★★★☆
Difficulty (3.6 / 5):
Workload: 15 hours/week
Pros:
1. Interesting material with interesting (though niche) applications.
2. Lectures are good.
3. Projects are genuinely interesting.
Cons:
1. Massive scope for first project with TAs being misleading (if I'm being generous) about the time commitment required -- claiming 10-20 hours for what took most people who actually completed it over 80 hours of work.
2. Hostile quiz questions written with the full malice of Sauron to trick you.
3. Weekly quizzes that take longer than midterm exams in any other class to finish.
4. Did I mention the quizzes? You get immediate feedback on every mistake, which makes the mental experience of taking the quizzes very much like the glass bridge episode of Squid Game.
Detailed Review:
I was very excited when I heard this course was being offered. I really like the subject matter. However, in its current form, I have to recommend not taking it.
The class is not excessively difficult compared to other courses. It's not easy, but I did not find the difficulty of the projects or the quizzes to be unreasonable in an abstract sense compared to other courses in the program. However this class is excessively stressful compared to others, to the point of being an utterly miserable experience.
Start with the outright cruelty of the quiz format. The MC questions typically required what amounted to proving a minor lemma from first principles in order to answer them accurately. For 20-30 questions. Every week. Questions were written with subtle variations in phrasing from the lecture materials to deliberately mislead you if you didn't work through a full proof of the answer first and tried to answer intuitively based on the lectures. Seriously, don't trust your intuition for any of the questions. I managed a B on the quizzes over all before any curve, so it's not that they were outright too difficult. It's that every week you're spending 3 hours working through these questions in a format that's incredibly stressful because it's very easy to think you know the right answer and still be wrong because of a one word change in the question compared to the way the material was presented in lecture. And if you're wrong, you get immediate feedback telling you so, and at a certain point you just start to doubt your sanity. It's 3 hours of miserable stress every week.
If the quizzes had been hand-written theory homework proving the same concepts, they would have been fine. Challenging, but fine. If the quizzes had been regular midterms (meaning only 1-2 for the semester, instead of 10), they would have been fine. But the weekly MC format that was chosen is cruel. I have significantly more gray hair now than I did four months ago.
The other unreasonable thing was the misleading communication from the TAs about the first project. It is not a 10-20 hour project. Important sub-problems that you have to solve (and were big enough to be separate projects in another course) are completely hand-waved away by the lectures and by the TAs on piazza. It's a good project, and you'll learn a lot from it. But it is also massively more difficult than was communicated. It's not that the TAs simply didn't warn us the assignment was that big; it's that the TAs actively mislead us with inaccurate information about the scope of the project and the challenge of completing it. This was so bad that the original deadline was extended from two weeks to a full month. Still the average grade on that project was 55%.
The second and third projects were fine, even too easy compared to the first. The first would have been fine if communication about it had been accurate and honest.
Overall Rating (1.4 / 5): ★☆☆☆☆
Professor Rating (1.4 / 5): ★☆☆☆☆
Lecture Rating (1.4 / 5): ★☆☆☆☆
Difficulty (2.9 / 5):
Workload: 8 hours/week
Pros:
1. Easy A or A- at worst.
2. Does cover many fundamentals from Ordinary Least Squares (classic multiple regression) to Bayesian Statistics to Other Topics including PCA Theory, Fixed Effects, etc.
3. Just 12 assignments (2 part each) and no exams. Can drop 2 lowest assignments. They are all peer-reviewed, though.
Cons:
1. Boring and recorded lectures don't feel engaging. One of the worst in the program in terms of this matter.
2. Organization of topics is not necessarily coherent at times. Could benefit from having suggested textbooks even if the instructor claims, topics are "self-contained"
3. No effort by the course to use realistic datasets. R scripts are disorganized and use weird notations, variable names like xxx instead of x^3.
Detailed Review:
Covers fundamental topics in regression. Many people dislike this class, for reasons I mentioned above under cons. But at least it is straightforward to take, then move on afterwards.
For a supplementary reference, I recommend Regression and Other Stories by Gelman et al., although this book is really for DSC 384 (Causal Inference). The first half is also a suitable text for DSC 382.
Overall Rating (1.3 / 5): ★☆☆☆☆
Professor Rating (0 / 5): ☆☆☆☆☆
Lecture Rating (0 / 5): ☆☆☆☆☆
Difficulty (3.9 / 5):
Workload: 20 hours/week
Child... Let me tell you a story about taking RL in summer: "No". Having said that, this course is interesting topic-wise, the delivery was not so great. Most of your learning will happen reading a book that is definitely not a light reading, so if you don't like reading technical texts, do not take this class. Videos are a mixed of: Repetition of same concepts on the book, caveats of some of the concepts presented by the authors, and sometimes useful exercises. You feel like you "understand" until you arrive to chapter 8 or 9 more or less, and then is all down the hill from there (videos did not help me with the most challenging chapters of the book). Projects are for the most part OK, except the ones that include programming on Neural Networks for which you receive zero training in this course, so if you don't know how to use TensorFlow / Pytorch be ready to do your outside research. If you are expecting faculty to actually be interacting with you, you are in for a rude awakening! We had one of the most awkward situations regarding examinations when the instructors (can't tell who exactly?) decided to change the conditions on which the final test was taken (after realizing that students could exploit a feature to determine whether their answers were correct while taking the exam), creating effectively 3 different groups of people depending on the conditions they took the test. During this time we did not see one single message from any of the professors (or even the program director, since the validity of the exam was compromised), only one of the TAs was facing us and our questions during the process. There were allegedly two TAs but only one (William) was trying to help, the other one (can't even remember his name), seemed to just be enjoying the thrill of "standing there". The professors seem to take issue with letting the TAs share too much information with students about some of the homeworks, that, combined with the non-collaboration policy (borderline paranoia of plagiarism) makes taking this class a very lonely experience. Also, and I guess this is more a program-wise problem, but I can see how there are two groups of people that this program is catering to: The ones that see this as a professional development opportunity and the ones that want to use this master as a stepping stone to complete a PhD. Perhaps for the second group this class was awesome, and don't be surprised if you see high ratings in that case... I am in the first group, and I find not just this class, but all the classes I have taken in UT to be extremely theoretical. In the case of RL I was left with a bunch of knowledge but little awareness on applications (more than the projects the professors are working on). Maybe this course should be revised in scope just to make sure we are getting away what is truly relevant. If you ask me today to implement any of the 30 something variants of algorithms we had to review while reading the book, I don't think I would be able to remember how... And I got an A in this class. The final exam was a slaughter fest, with an average of 65 and std. deviation of 20. To me this reveals the failure of either the exam as an evaluation instrument or the course as means to ensure proper learning. A tough final does not reveal anything about the student group more so than about the instructors that put it together... So net, I would not recommend this class unless you are interested in the topic (or you have to take a class... is not like we have so many options anyway).
Overall Rating (1.1 / 5): ★☆☆☆☆
Professor Rating (3.9 / 5): ★★★★☆
Lecture Rating (3.6 / 5): ★★★★☆
Difficulty (1.1 / 5):
Workload: 1.5 hours/week
Pros:
1. Very low workload until the project, but you work on this all throughout the semester so it shouldn't be a big deal
2. An opportunity to force yourself to work on a project or pursue an idea, or whatever you'd like in ML
Cons:
1. Very low quality quizzes in terms of gauging learning outcomes and difficulty
2. Grade structure of the course
3. Very, very high cost-to-learning ratio
Detailed Review:
The maturity of the quiz questions are not at an appropriate level for undergraduate students, much less graduate students. The questions resemble that from a lazy high school teacher's regulars course who didn't bother to come up with real assignments and decided to just make "did you pay attention?" kinds of questions by taking exact words spoken in the lectures and perturbing a word and making a T/F statement or select-all-that-apply questions out of it. So you can imagine that the questions at best test your understanding in the most shallow way. Other questions are like "what is the name of the package that does this", and "Select the ML models we 'ultimately' used for the presented research article" where "ultimate" is undefined unless you ask the course staff. If you were designing a graduate course to maximize learning, none of these questions would make the cut because they are largely a waste of time.
For $1000.00 this is by far the worst investment you can make in ML since there are a plethora of extremely high-quality and entirely free content available. The first week has zero material, which is a waste of course time in my opinion. The overall wording for each question was also quite poor, and it's completely permissible if english is not a first language for the professor. But it's strange that there were so many TA's, and none thought to simply read the questions beforehand and correct the wording and grammar. Only after complaints were the quizzes revisited and re-worded, but some students were likely penalized (heavily unfortunately because of the huge weight). The class did well on the quizzes overall though. By the end of the course, I hadn't watched a single lecture and was able to reasonably quickly search lectures to score either a 90-100% on each quiz.
Another reason that this course resembles a high school course is the *minimum* page requirement for the final project, which indicates the lack of understanding of how papers are written. Every academic paper to be published has *maximum* page requirement; it's much more difficult to make writing concise. The *only* reason to have a minimum page requirement is to penalize the extremely lazy students (again, in high school) who are looking for minimum work, but even this is short-sighted. If a student writes a terrible paper that is far too short to adequately fulfill the assignment, then it should naturally be captured by the rest of the grading rubric. A minimum page requirement is meaningless and reflects a poor understanding of how writing is professionally and academically evaluated. Short, well-written papers should be encouraged by a rubric; not the other way around. This is an expensive graduate course for god sakes.
Overall I'd say stay away from this course until further major revisions, unless you really just want to spend $1000.00 to just obtain course credit, a GPA booster, and to work on your own project. This course cannot compare to ML, DL, OLO, Optimization, and NLP in terms of quality and learning outcomes. You deserve a much better introduction to ML than what this course has to offer!
Overall Rating (0.7 / 5): ★☆☆☆☆
Professor Rating (2.1 / 5): ★★☆☆☆
Lecture Rating (0.7 / 5): ★☆☆☆☆
Difficulty (2.1 / 5):
Workload: 3.4 hours/week
Pros:
1. TA’s were helpful where they could be
2. Lectures are (generally) independent of one another and no final exam
Cons:
1. This class felt like it was taught to the wrong audience
2. Non-interactive lessons
3. No textbook / lack of great materials
Detailed Review
Pros:
1. The TA’s feel like the glue holding this course together. They helped to navigate the bad grade curving of Peerceptiv and were very responsive to questions. 10/10 for them
2. There are 11 modules, all of which aren’t really dependent on one another, and there is no final exam. Thus, you don’t have to remember much from unit to unit in order to perform well. This made it nice while trying to navigate this black hole of a course over time.
Cons:
1. Many times in his lectures, Professor Walker would say things to the effect of “I know you all have a good idea of [X topic] so I won’t go into it too much here” or “[Method Y] is something I’m sure you know” when, in fact, most of us don’t know what [X topic] or [Method Y] are at all. It felt like Professor Walker was teaching to the wrong audience, as if he was expecting all of us to have a specific set of precursor knowledge. That led to a lot of confusion and disconnect with the lectures.
2. This whole course was Professor Walker talking through PowerPoint slides. Nothing more. He didn’t even have a mouse cursor so we could follow what point of the slide he was talking about. This made lectures hard to follow and boring. Sometimes he would have some example “experiments” he coded out so that we could see how various statistical tests worked, but there was no expectation of us to “code along” or to think critically. Just hours on hours of listening to him speak. I ended up skipping most of the lectures toward the end of the course.
3. There is no textbook for this course and the lecture slides are very lecture-specific, meaning you can’t just read the lecture slides by yourself and get the whole picture. Many of the slides have edits to them that are only mentioned in the lecture (assuming the data is centered around the x axis, assuming you only have one feature, etc) such that the slides aren’t useful outside of this class. On top of that, there is R code provided alongside the lectures, but the R code is some of the worst code I’ve ever seen. It isn’t documented well and is littered with inefficient code and bad variable naming. It's hard to learn when there are no good materials to pull from...
Ultimately, I felt this whole course was interesting but won’t generalize well outside of this limited environment of a class. I can definitely see why this is the lowest rated class in the program and hope this class can be revamped in the near future!
Overall Rating (0.7 / 5): ★☆☆☆☆
Professor Rating (2.1 / 5): ★★☆☆☆
Lecture Rating (0.7 / 5): ★☆☆☆☆
Difficulty (5 / 5):
Workload: 30 hours/week
I wont go into Pros and Cons but here is my detailed review:
In the course outline, the topics are divided into three sections - Programming, DS and Algo.
On one hand, in Programming, they want to teach testing, debugging, Programming Methodology as if you are a newbie programmer. However, on the other hand, they expect you to be a rigorous programmer with minimum of two semesters of hardcore programming experience (this is an official statement from Professors and TAs).
In DS, you are expected to know basic data structures and they will try to teach you complicated structures like B-Trees etc. I am not averse to learning advanced data structures. Thought, I am from CS background but a lot of people from non-programming background are part of MSDS and I can understand their pain and confusion
In Algo section, you don't know what are divide & conquer, greedy or Dynamic Programming. They may have taught DFS, BFS, Binary search etc. but which belongs to what - hardly anyone cares
Lectures - Believe me, lectures are like 101 and a colossal waste of time. I stopped watching lectures after 2-3 quizzes. Just took the topic headers and went on YouTube and watched top 5 rated videos there. By the way, lectures don't help you anywhere - not in assignments, not in quizzes and there are no additional reading material
Quizzes - In this course, quizzes are test of your mindreading skills, i.e. how good you are with reading mind of the person who designed the quiz. The questions and the options are too vague and will have multiple meanings and interpretations. I started feeling as if I was part of English course rather than a DSA course. The question will have multiple meanings and depending on which meaning you interpret, there will be an option (out of 6-7 options) which will match the answer of that interpretation. And if you change the interpretation, then there will be another option. Lectures and Quizzes have nothing in common. By the way, Quizzes contribute to one third (33%) of the entire grade (assignments contribute to remaining 67% of the grade)
Assignments- There are 7 assignments (Course Agreement, Image Manipulation, Evil Hangman, Boggle, Treaps, B-Trees, Wikiracer). And all the assignments test you in the mind reading skills and your patience. For example, Course Agreement had a simple question - Have you read the Syllabus and Course policies and agree to it? The response is a free text to be filled in a text area and if you have put a simple Yes, you will get 0 out of 10. The response should have been two options - Yes and No through radio buttons and believe me it is the easiest assignment of all the seven. Also, all the assignments contribute differently to the 67% of the grade like earlier assignment contribute less and later assignments contribute more and No, we were not told about the exact breakup (i.e which assignment contributes how much) after Evil Hangman (as far as I remember).
Now the assignments are supposed to be done in Python (agreeable) but using Poetry framework. The initial setup instructions were full of discrepancies. It was a nightmare to get everything setup correctly and then the debugger doesn't work. Though there is a lecture video on how to debug in VSCode but that is not applicable with VSCode+Python+Poetry. Initially all the assignments were individual assignments - Image Manipulation was relatively easy but it became too complicated because it was supposed to be done in Poetry. Then the difficulty level went 100X with Evil Hangman. Boggle became another 100X (Compared to Evil Hangman). After a lot of criticism and feedback on Evil Hangman, the Boggle, Treaps, B-Trees assignments were made Group assignments (in groups of 3) which made them bearable. According to me, Boggle was the toughest assignment because it involved poetry at its worst (e.g. if the Terminal window is less than a particular size, it will throw an error and you wont know what to do about it because you can't properly debug in Poetry. The only way to debug in Poetry is through Print statements which you need to place at various places. Boggle, Treaps, B-Trees and Wikiracer became a bit manageable because of Groups (Wikiracer was an individual assignments) and because the Pytests removed the dependencies on Poetry to a lot of extent.
The assignments in general are difficult because partial code is provided by the instructor and you have to write code for few functions or classes and there were no proper instructions in the handouts on what is required. The handouts contain high level what the assignment wants you to do. TAs and Professors started providing videos on what is expected but it was nothing but a mere replication of the content in the handouts. The biggest problem which I felt in all the assignments were the use of ADTs (Abstract Data Types) which were extensively used (in Boggle, Evil Hangman etc) and mind you there are no videos on ADTs or OOPS concepts in any of the lecture videos. So, the entire assignment became an exercise on guessing what the TA or Professor were thinking while coming up with that particular structure of ADTs or inherited classes/functions. Now, those who know or have done programming are aware that every person will structure the code differently and hence it was difficult to comprehend what was required.
Evaluations were another issue. Though the quizzes get evaluated almost instantly, the solution to the quizzes were released almost 10 days after the deadline and by that time, either you have forgotten why you chose a particular option or you are too tired/frustrated because you can clearly relate that your interpretation of the meaning of the questions/options (due to choice of words resulting in ambiguity and vagueness) were different than what was expected.
Evaluation of assignments was a big issue. All the assignments were graded using a mysterious auto-grader with mysterious test cases and evaluation took a min of 7-8 days to 3 weeks and by the time the results are out, you would be busy with the next assignment and you would just accept whatever grader the auto-grader has given you.
There were only two good things in the entire course - First there were no exams (mid-terms or end-terms) and second were the responsiveness of the TA and Professor on Piazza and their open mindedness. Spring 2022 was the first time this course was offered and honestly, I expected the course to have some hiccups but the course had a lot of mountains as hurdles. Withing 4-5 weeks, I realized that I wont be able to learn anything new from the course and I started treating this as a course to just be done with it so that I can get the degree. At the end of the course now, I realized that this was the right decision because I had taken DSA course in my UG in CS and there was nothing new which I learnt or was taught here.
For future improvements - The Professor and TAs should understand that this is an online course and there are people with varying level of programming background and experience. It is not a campus course where the entire class has less than 2-3 year of programming experience. In an online course like MSDSO, there will be people with 0 programming knowledge as well as people with 20 years of work experience. DSA is a hardcore CS class. Next lectures should be redone. They should check the lectures and delivery of Data Visualization course (Spring 2022 was also the first time Data Viz was offered but the lecture quality was superb). They should provide autograder to the students so that they can run the auto-grader and see if there are any bugs. The focus should be on learning rather on making the course difficult in terms of grading