Overall Rating (2.9 / 5): ★★★☆☆
Professor Rating (0 / 5): ☆☆☆☆☆
Lecture Rating (0 / 5): ☆☆☆☆☆
Difficulty (3.9 / 5):
Workload: 8 hours/week
Mostly the course is structured around a textbook with very little instruction otherwise. If the textbook is confusing to you, the course will be very difficult. If you are unfamiliar with the topics, definitely allocate time to read the chapters more than once. The topics are interesting.
Overall Rating (2.9 / 5): ★★★☆☆
Professor Rating (2.9 / 5): ★★★☆☆
Lecture Rating (3.6 / 5): ★★★★☆
Difficulty (3.6 / 5):
Workload: 10 hours/week
Pros:
1. Introduction to several different topics within deep learning
2. Good application of the concepts taught in lecture through the assignments
3. Takeaways on developing and training models valuable for future more complex work
Cons:
1. Heavy focus on computer vision in assignments, very little application of anything else beyond lecture in this version of the course
2. Piazza was not very useful for many reasons
3. The final project continues to be a problem
Detailed Review:
I took this exact class under a different listing years ago as a CS undergrad at UT. Everything but the final project, which I will address in more detail later, was the exact same as before. The reason I bring this up is because some of flaws of this class commonly brought up in previous reviews (and this one) can be explained by knowing this class was not made specifically for this program. The undergrad version of this course was a flipped classroom style where during synchronous lectures, the class was split among the TAs and they would demo and collaborate with the students on the lecture concepts and introduce the assignments live. As this program is online and mostly asynchronous, this version of the course lacks this experimentation time, which is the main reason that the majority of the lectures appear to be unrelated to the assignments and why the assignments tend to be difficult to start coming directly out of the lectures.
Despite its problems, this course does a good job of exposing you to different applications and domains that deep learning is used in. Going beyond the theory/basics will be up to you for most of these but this class is at least a start. By the end of this course, you should have a lot of familiarity with PyTorch as a deep learning framework and also have a very practical toolkit for constructing your models, training them, and evaluating them as well as working through common problems these models face like overfitting.
The first two assignments are a pretty gentle introduction to PyTorch and neural networks and follow closely with the lectures. Assignment 3 is probably the most demanding assignment, but putting in the work here will pay off for the rest of the assignments which extend off of this one. The extra assignment is NLP, but it'll be on you to teach yourself most of what is needed for that as the lectures were very shallow on the topic. Something I noticed for the earlier assignments is that the lectures are misaligned with them. If you find yourself stuck, watching the next series of lectures after the homework tends to give helpful information. Quizzes are not too bad, but some of them are quite a leap from the lectures.
I will address Piazza and the final project simultaneously because I didn't start using Piazza until the final project. All the course material is made available from the beginning, so Piazza was pretty difficult to use with people posting questions way ahead of where the class currently was. Additionally, the irony of all the material being available all at once was some TAs were reluctant to answer any questions on future material, particularly about the final project with the last homeworks still due, discouraging people from starting early even though starting early is incredibly important if you don't want to be overwhelmed by the final project. Toward the end of the course, Colab stopped running PySuperTuxKart on the GPU, making it near unrunnable. As the environment the final project was based on, this was terrible for people who didn't have access to a personal GPU, leading to a series of Piazza posts over weeks that were never actually addressed by the teaching staff. Even without this major issue involving the final project, it is objectively a bad project for this course. The final project is a group project and almost entirely open-ended, unlike anything in the course up to this point. There are two directions you're pushed into for the final project, both with major issues. It was clear from Piazza that a large majority of the class was struggling with the final project, but support from the TAs dropped off with very sporadic responses on Piazza and often unhelpful answers. My group had to ask multiple TAs multiple times about basic details of the rules of the project to finally get straight answers, things that should be clarified in the project instructions but weren't. Luckily, performance on the final project isn't worth much of your final grade so it shouldn't ruin your grade in the class in most cases. This is good because checking Canvas after the project was due, the average was just below 50/100, much lower than the average on any of the assignments. Overall, this class is good but it is ruined by a vague and honestly not fun or worthwhile final project.
Overall Rating (2.9 / 5): ★★★☆☆
Professor Rating (3.6 / 5): ★★★★☆
Lecture Rating (3.6 / 5): ★★★★☆
Difficulty (2.9 / 5):
Workload: 11 hours/week
Pros:
1. Reasonable time commitment
2. Solid and clear lectures
3. Pass complaints of grade weighting no longer applicable. 45% of grade is HW, very reasonable to get 95%+ on.
Cons:
1. Professor ignoring some important class logistical questions on Piazza
2. Class not suited well for multiple choice exams -- clearly format is only used for ease of grading
3. Some people ignore the suggested leniency for peer review grading.
Detailed Review:
My main issue with this course were the exams. The all-or-nothing format of multiple choice, particularly the "select some/none/all" types were very frustrating. Exam 1 was 15 questions, exam 2 was 12 questions, and the final was 20 questions -- missing even 1 question significantly knocks your grade on the exam down. However, considering 45% of your grade was homework and 5% was participating in peer reviews, you can manage to do reasonably well in this course without scoring high on the exams.
Also, the professor was reasonably helpful for course content questions on Piazza, but logistical questions about grading, content release date, grade distribution questions were often left unanswered for days/weeks/sometimes completely ignored.
Overall Rating (2.9 / 5): ★★★☆☆
Professor Rating (0.7 / 5): ★☆☆☆☆
Lecture Rating (1.4 / 5): ★☆☆☆☆
Difficulty (3.6 / 5):
Workload: 15 hours/week
Pros:
1. The PintOS projects are very interesting and I think the perfect amount of challenge for a Masters program, it is definitely not too easy, and in my opinion appropriately difficult.
2. The class does teach a lot and I think one will feel like they improved a lot at C and understanding OS.
3. There are many resources online to help you deal with PintOS, just unfortunately, none of it came from the professors.
Cons:
1. Professor and TAs were not responsive on edStem.
2. Lectures were completely useless, I had to rely on outside lectures
3. Textbook was useless to me.
4. Pacing of the class is terrible, project 0 is wayy too easy but given 3 weeks. Last two projects are very difficult and given the same or arguably even less time.
5. Groupwork in the class was terrible
Detailed Review:
Overall, I actually liked AOS, I feel like I learned a lot and tackled interesting problems related to kernel programming and understanding how OSes are designed. Unfortunately, the class overall kind of saps your morale. There is literally zero support from the TAs, professors and lectures. In contrast to some reviews where it said the Professor posted frequently, the professor posted 0 times. We only had an adjunct instructor. The recorded lectures are from 2019 and do not talk about PintOS at all, and are overly general and not very interesting. It is hard to watch them. The TAs my semester were completely unhelpful, and did not help with debugging any code issues. Lastly, the groupwork was a serious stressor and exacerbated a lot of the problems with the class. I did multiple projects entirely on my own with no assistance from my groupmates, who all seemed to just give me lip service, barely were able to push working commits. I didn't understand why they were in the program if they didn't seem to want to learn, it looked like they were more busy with their actual lives. Which is fine, I understand some people just want a piece of paper rather than learn. I changed groups in the middle of the semester, which I think a lot of people did, and still was unhappy with my group overall. Lastly, the pacing of the class should be fixed. We were given 3 weeks to do project 0, which was practically trivial and could be done in like 2 days by most people solo. I wish we were given those extra weeks in January doing the very hard later projects. I was super demoralized by project 4 and just wanted the class to be over.
I strongly think that the class should just move to individual projects. Whatever help i got from groupmates was just totally wasted by having to manage them, it was like herding cats. Maybe in an in person university we could form better relationships, but in an online asynchronous class where everyone doesn't really know each other, and cannot really meet in person, or choose group members they know and trust, I think it caused a lot of bad feelings and animosity in the class. I know real life software development is about working in teams, but my gut tells me what I experienced is not how real SWE collaboration is.
After saying all that, how did i manage to enjoy the class? I did so with the help of my substitute professor, Professor Youjip Won from KAIST: https://www.youtube.com/@ee415intro.tooperatingsyst8
I strongly recommend anyone who takes this class just listen to all his recorded lectures on Youtube and to ignore Vijay's lectures, he has a very detailed rundown of how the PIntOS codebase works, offers useful hints on how to do the projects, and sometimes even has tips on how to debug your code. And he teaches you OS concepts too. He easily made the class the reason I am giving it not a 1 overall. And he is not even a UT Austin employee, which is why I am so disappointed in the program.
Overall, this class made me disappointed in the quality of the UT MSCSO program. Most of my learning was from a different professor, using a project that was copied from Stanford, a different university. I was not impressed with the caliber of the other students. Why am I paying money to this University? To get a piece of paper? I wish i had given $1000 to some stranger who could have told me to spend a semester doing the 4 pintos projects, publicly available online for free, because that is exactly what happened.
Overall Rating (2.9 / 5): ★★★☆☆
Professor Rating (2.9 / 5): ★★★☆☆
Lecture Rating (3.6 / 5): ★★★★☆
Difficulty (3.6 / 5):
Workload: 8 hours/week
Pros:
1. Heavy focus on theory behind various machine learning concepts
2. Monotonically decreasing workload over the course of the semester
Cons:
1. Unorganized lectures (particularly in the first half) and material in general
2. Shallow application of the material in programming assignments
Detailed Review:
Given the class is the length of a summer course regardless of when it is taught, it started off rough with hours of lectures and rigorous homework. However, as the semester went on the homeworks became shorter and shorter, while the lectures became overall a little less time consuming. Even though this class is heavily focused on machine learning theory, I feel in the end I really failed to grasp the relevance of most of it. I don't really think that this course fits well in the context of the program in general. Additionally, though a lot of important topics were covered, the order they were covered in was somewhat disorganized. For example, kernel methods were brought up in the first half briefly, but not really focused on until the end of the second half.
In the first half, assignments are a pretty big step up from the lectures, but the TAs were very willing to assist with any questions people had on where to begin and such. The exams were fair, somewhat less difficult than the homeworks and you are given enough time to finish everything comfortable. The logistics of the exam are somewhat annoying, if they want to intrude on our privacy I don't see why we can't use electronic notes for example.
The first half of the course comprises of recorded lectures from a class Dr. Klivans taught in the past. It was a mild inconvenience having him pause to let the class try to work things out or give answers to inaudible questions, but otherwise the lectures were decent. Some of the concepts could have done better with prepared materials however compared to writing on a tablet. Dr. Liu's half of the course is more organized and he is good at explaining the basic of the concepts in a clear way. As his lectures deep dived into the theory, I tended to get lost, but he also included his (unreleased?) textbook which helped solidify my understanding of the lecture overall.
In the end, this class felt pretty middle of the road. I found myself watching ML content on Youtube to clarify a lot of what was covered in this course, and felt I gained more from that overall (Josh Starmer, RitvikMath, etc.) I think this is mostly a class where you need to be persistent early on, but once you are halfway through it is very doable.
Overall Rating (2.9 / 5): ★★★☆☆
Professor Rating (4.3 / 5): ★★★★☆
Lecture Rating (2.1 / 5): ★★☆☆☆
Difficulty (4.3 / 5):
Workload: 12 hours/week
Pros:
1. The stats part is actually really interesting and easy
2. There are workload breaks during the semester
3. The exams are very fair and not as hard as the homework
Cons:
1. If you're not fond of theoretical math, you're gonna have a tough time
2. If you're a CS guy, you're gonna spend a lot of hours on homework
3. It's obvious the professors have never stood in front of a camera
Detailed Review:
I frequently hear from my peers who are math type people how easy this class is and it's an excellent first class to get you back into the groove of going to school. I'm not sure if it just comes much easier to them or if it was actually much easier the semester they took it. But it sure wasn't for me. At the time of writing, I am taking data structures and data visualization, and this class was a greater workload for me than these two classes combined.
You are allowed a few quizzes and homework assignments to be dropped. USE THEM FOR PROBABILITY. The degree to which the difficulty of the probability assignments is greater than the stats assignments is hard to describe. You will regret saving your drops for later in the semester when it is nearly all stats assignments. Space them out over the probability assignments to give yourself a mental break. You're gonna get 100s on all the stats assignments anyway.
Probability Sections:
If you're a very practical guy like me and not interested in the heavy theory and proofs, here's my advice: Skip all lectures over proofs. Dr. Muller's lectures follow a pattern: introduce a new idea, use a proof to show why it works, then apply it. Do yourself a favor and just skip to the point where he actually applies it. After struggling for hours trying to understand each new concept, I found this helped me to understand it much better than trying to decode the proofs. Proofs that I might add did not end up on the exams anyway. For the homework, you may have to reference them or perhaps make friends with some of your peers that got a stats degree in undergrad to help you out. But I did better in the class after ignoring the proofs because they ironically confused me more. Despite all of this, Dr. Muller is actually a pretty funny guy and cool personality. I think he's just maybe a little too smart for teaching an introductory class; his expectations are quite high.
Stats Sections:
Dr. Parker is very nice and sincere and you can tell she really does know the topic well. There are points in her lectures where she talks a little about the theory and the "why" of statistical inference and I actually thought it was quite enlightening. While a lot of this class in general felt a bit flat, the several times I had a light bulb moment that made me say "oh, wow; that makes perfect sense," all took place during her lectures. I think this class really should have just been the stats portions only and simply gone deeper. She does not require any programming and instead encourages you to use a free, web-based stats tool. I have to admit that I was skeptical about it, but I was quickly won over. Even as a CS guy, I loved that thing. It was very easy to use and let me do all the work without fussing with learning weird or new syntax. It really allowed me to focus on the concepts instead. The only downside to Dr. Parker's lectures is that she was perhaps nervous at some points. Again, I'm not sure they have ever been in front of a camera. I don't mind too much personally, but there are times where I can't help but think that maybe they should've just recorded that again. Some of the other students did mention that they found it distracting and had a harder time staying focused on the content, however.
Overall Rating (2.9 / 5): ★★★☆☆
Professor Rating (2.9 / 5): ★★★☆☆
Lecture Rating (2.1 / 5): ★★☆☆☆
Difficulty (2.1 / 5):
Workload: 5 hours/week
The notebooks provided are very helpful. The course would help is getting up and running with any ML research topic of your choice.
The depth is not covered in the course. It is up to the students to chose their research topic and complete the final project
Overall Rating (2.9 / 5): ★★★☆☆
Professor Rating (3.6 / 5): ★★★★☆
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (2.9 / 5):
Workload: 10 hours/week
Detailed Review:
While it is apparent there were updates made to improve this class from prior iterations (mainly making peer graded "quizzes" into completion grades), but there is still a lot that can be improved in this course. The lectures themselves are overall pretty good, sometimes sparse in the practical applications necessary to handle the later assignments in the course, but usually a good starting point to understanding the material in conjunction with the textbook (which is mandatory to read only if you want to get perfect scores on the homeworks). There were some short coding examples given, but I found that reading the documentation directly was more helpful after clarifying the terminology from lecture.
Homeworks are a mix of multiple choice and select all that apply which are immediately machine graded upon the due date. Several of the assignments later in the class had major errors that led to confusion before the due date and eventual regrades, and the course staff did little proactively to address these situations. In general, the only helpful discource on Ed was from other classmates, with the 2 TA's responses directly contradicting each other at times. The select all that apply questions are called out often as a pain point in this class, but honestly they're typically worth so few points and have the potential for partial credit that they're not so bad. In my opinion, the numerical multiple choice questions with "choose the closest answer" were much more frustrating, as often the closest answer would be ambiguous between two choices or far from every choice somehow. This was also the major source of errors in the assignments, so hopefully it is addressed in future iterations, but I wouldn't get my hopes up.
Quizzes, as mentioned before, are completion grades and mostly feel like busy work. The questions were vague and the rubric specific to the point where the majority of peers that I graded (and myself) would have gotten an awful grade if it weren't completion. They're mostly just a grade boost and a time sink, your focus should go much more to the homeworks and exams.
A generous window of time is given for the midterm and final, but know that these exams are very involved and will take more than "a couple of hours" as stated by the TAs. The exam questions were a step up in complexity from the homework, and often featured completely new concepts that you'd have to use to answer the question. If you feel that you have a good conceptual grasp of the material, there's likely little additional to gain from studying the material in depth. A qualm I had with both exams and homeworks in this class was the imbalance in point values between questions. It felt very unoptimized, where I would have to read a significant amount of a journal article to answer a one point question vs. answering a true/false question for another point somewhere else in the assignment. As this course is graded on an unspecified curve, this drove me to play the numbers game instead of aiming for perfection, which is definitely not worth trying to attain in this class with the number of unclear and ambiguous questions and answers.
Overall, I feel like this course was interesting and introduces a mindset that is novel to most and useful for causal inference, but the struggle of getting through this course in general detracts from my personal interest in learning about the frontiers of causal inference. Also, I continue to wonder how relevant this material is outside of controlled research settings. I could not imagine applying most of what we learned about in this course to my work, which is unfortunate because causality is something that is loosely thrown around.
Overall Rating (2.9 / 5): ★★★☆☆
Professor Rating (2.9 / 5): ★★★☆☆
Lecture Rating (3.6 / 5): ★★★★☆
Difficulty (2.9 / 5):
Workload: 14 hours/week
Pros:
1. RL is the frontline of AI
2. The textbook is the gold-standard
3. Excellent expand-the-material lectures
Cons:
1. Theory-heavy
2. Still has a final exam (grumble)
3. Finicky edx grader
Detailed Review:
It was an excellent course to follow DL, as DL ends with what is really an RL project. The textbook is solid, if a bit notation-dense, but, hey, that's theory. The edx quizzes are relatively easy and the TAs were quite helpful getting through them. The HWs can be quite challenging (track your index counters and check to see where the book starts indexing at 1 versus 0). It still has a final exam. (I'm kind of liking the classes based around projects at this stage.)
Overall Rating (2.9 / 5): ★★★☆☆
Professor Rating (5 / 5): ★★★★★
Lecture Rating (5 / 5): ★★★★★
Difficulty (2.9 / 5):
Workload: 10 hours/week
Pros:
1. Lectures very well presented
2. Readings complement lectures
3. In general, lots of material given to reinforce concepts being taught
Cons:
1. Need to fix the grading system
2. Requires a good amount of review from undergrad linear algebra to get going
Detailed Review:
This class as a whole is very well put together. You do need to be solid with undergraduate linear algebra (the professors that made this course also have a great course specifically for this!) and the first two weeks will feel like a lot of theory thrown at you, but it is groundwork that needs to be laid for understanding/appreciating the analysis in the second part of the course.
Our semester was run by a new professor and TAs, and they definitely weren't prepared for the number of people taking the course in an online setting. Grading has taken an extremely long time. I believe grades are an important feedback mechanism for learning, so hopefully the grading process can be smoothed out in future iterations of the course.