Overall Rating (1.4 / 5): ★☆☆☆☆
Professor Rating (1.4 / 5): ★☆☆☆☆
Lecture Rating (1.4 / 5): ★☆☆☆☆
Difficulty (2.1 / 5):
Workload: 2 hours/week
Pros:
1. Second half of the course is very simple
2. Fair exams
3.
Cons:
1. Overcomplicates basic topics
2. Doesn't cover several important topics
3. HW is a headache
Detailed Review:
My undergraduate class was much better than this course. It's a disappointment in every way. The first half of the course was just convoluted. Every topic could be explained in a better, simpler way than how was presented. It just felt like he was reading from the textbook (which was also a terrible choice. Try Wackerly). Many important topics weren't even covered or just barely touched upon such as hypergeom, neg binom, hierarchical models, mixture models, order stats, WLLN, pdf and cdf methods of transformations etc. Some were only touched on HW- here's how this is defined, go learn it on your own and come back and answer this question. The second half of the course was better, but I feel like a bit more theory there would've been good. StatKey (the simulation software used) was generally good but some questions had frustrating rounding errors done by StatKey to where if you calculate the same test statistic, you'll be off. I ended up not watching many lectures after some point and just working off my undergrad notes which were more than sufficient to get close to a 100% in the course. Absolutely disappointing, wouldn't call this graduate level by any means.
Overall Rating (1.4 / 5): ★☆☆☆☆
Professor Rating (0.7 / 5): ★☆☆☆☆
Lecture Rating (0.7 / 5): ★☆☆☆☆
Difficulty (3.6 / 5):
Workload: 15 hours/week
Pros:
1. Active community on Piazza with TAs to answer the numerous questions that come up
2. Broken into two discrete halves, so there's no cumulative final. As soon as you're done with the midterm, you won't need to worry about the content from the first half of the year.
Cons:
1. Lots of the material on homeworks isn't actually covered in lecture, or is very confusing to try to understand. Expect to spend a lot of time Googling and asking for help, particularly in the first part of the course.
2. There's no top level framing of how the various pieces apply to machine learning. Each section takes a discrete topic and mostly focuses on the theory behind it, as opposed to how they all come together to form the current understanding of ML.
Detailed Review:
This has been my least favorite class so far, and I'm half way done. The first half lectures don't line up well with what's on the HWs, so you end up spending a lot of time on your own figuring things out. The second half is very dry, with 1-1.5 hour long lectures mostly walking through proofs. Not particularly well taught, and the HWs/test (particularly in the first half) are pretty tough. If you're going to take this course, expect it to lean to the theory and I would recommend taking Linear Algebra first to build a baseline of math used. Over the summer has also been tough I believe they kept all the units and crammed everything into fewer weeks, so the pace is fast.
Overall Rating (1.4 / 5): ★☆☆☆☆
Professor Rating (4.3 / 5): ★★★★☆
Lecture Rating (2.9 / 5): ★★★☆☆
Difficulty (4.3 / 5):
Workload: 20 hours/week
Pros:
1. TONS of practical experience with pytorch as that was exclusively used for everything
2. Lots of practical experience for image based deep learning. I feel comfortable enough, if given a dataset of images, to go build models for it
3. Other than the final project, the descriptions for the homeworks, along with the grader provided, are extremely helpful. There's really no reason you should not be getting A's on all of them because you can keep using the grader to figure out how to score high.
4. The homeworks seem really complicated at first... but then you go listen to the lectures meant for the next homework, and the professor gives an example model that's like 90% of what you need. Applies to the first 2 homeworks for sure. For the next 2, the TAs have a hints guide which is very very useful.
5. Lectures are good at first and give you some intuition for when to apply what techniques
6. You can finish the class as fast as you want to because everything is available from day 1.
Cons:
1. Starting from the second half of homework 3, the lectures start being less and less helpful. And there's no example models from the professor to use for them. Which is fine as this is a graduate level class, but you basically need to start relying on the tips provided by the TAs in Canvas, and using the discussion forums and Google for help.
2. There's some theoretical background covered in the very beginning of the class, but that's about it. Deep learning still seems magical to me. Granted, I took this with Machine Learning and the very end of the last lecture in that class motivates Deep Learning, but still in hindsight, having that knowledge before hand would not have mattered nor helped. Definitely going to need outside resources if you want to understand this better.
3. After taking this class, I just assumed Deep Learning was only used for images. Obviously this doesn't make sense given LLMs though right? Granted, there is a TON of information to cover in a single semester, so the professor did a great job, but we only created models for images, and did not cover the cutting edge advances like transformers which brought about LLMs. Maybe the NLP or Reinforcement Learning class will?
4. ***** YOU NEED YOUR OWN GPU. DO *NOT* USE COLLAB. Tried to get around this by using Collab at first, but you're going to learn the hard way one day: follow the provided instructions to pull in your files, work on your deep learning model, editing in Collab, until 5 am, wake up the next day, find the Collab runtime has disconnected, poof, all of your work down the drain :(. I guess it's kind of a pro because this finally taught me to always push code to GitHub ALWAYS. You gotta learn the hard way right? This made me get Collab pro so that this wouldn't happen, but guess what? Just like the free version, you're still restricted on compute units! Midway through homework 3 said screw it, and and got my old GPU working and it was so much better. I literally cannot imagine someone using the free Collab version to do the final project. Like holy you must be someone who just likes playing life on impossible mode.
5. *****Alright now time for the long rant. I have not read through the other reviews, but I guarantee your overall perception of this class will come down to how you did on the Final Project. Without the final project, this class is like a 5/7 but then tanks to a 2/7 because of it. Going into it, had a solid A, coming out of barely made a B+. In all honestly, I think I deserved more like an A-, but I'll get to that. For starters, you are given two choices, an image based agent and a state based agent. The former is basically using techniques the class has built up to throughout all of the homeworks, while the latter requires Reinforcement Learning, which either you have background in or you learn on the fly if you chose this path. Please take Reinforcement Learning before taking this class. I am going to say it again: PLEASE TAKE REINFORCEMENT LEARNING BEFORE TAKING THIS CLASS. The final project takes quite a bit of time, because unlike the homeworks where they have given you a template of working code as well as lots of labeled data, you need to do everything from scratch. The problem with going the image based route, is although it makes the most sense especially practically speaking, you're going to realize while doing it, is that making the image model(s) is only part of the work. You still need to create a controller to actually play the hockey game. That statement will make more sense when you work on the project, but think of it this way: you have a model that tells you where the puck is in a hockey game. And you have a model which even tells you the location of it. But you gotta win the game though right? What do you do with this information aka how do you tell the kart to move so that you score? This is what the controller entails, and nothing in the course lectures tells you how to do this part. We ran out of time trying to figure this out which led to a low score on the grader and would have put us at an A-, or maybe even barely an A (the class is not curved btw). You do make a basic controller in HW5, and the provided solution to that is actually really helpful but only part of what you need. You are allowed to use the controllers of provided state agents, but since an image based model is naturally not going to give accurate information at all times, those state based agents which rely on always knowing accurate information don't end up performing well. What is nice about this approach is that you can work on a controller in parallel with the image model(s) being made, but be careful, in this approach, without the image model, you'll be using noiseless global data when building it, and that may very well cause problems once you use an image model which will naturally give noisy data. If you do choose the image agent, you should definitely start on this project EARLY, but you need all of the homeworks, as they build on each other, to actually start. So get ahead on everything and then start early too.
Now if it wasn't already obvious, although I didn't do it, I think everyone should be choosing the state based agent aka using Reinforcment Learning. Just take the class before hand, or if you start early enough, the TAs provide some resources to figure it out. On paper, this route really sounds much better in hindsight because you don't need to make an image model(s) and then go make a controller, it's all just one model. It's definitely going to be harder to make the model, but once it's working, you're done. And since it operates on global data which you have access to anyway, the only hurdle is getting the model working, rather than worrying about noisy data. And since they already provide multiple working state based agents, you can always figure out how to copy the inputs and outputs to a state agent you like, and "learn" to copy that.
Rant is still not over: they did try to be nice and let the final report count for 70% of the overall project grade since it's really hard to score in the online grader. The huge issue with this is that grading is very subjective. Looking through the Discord for the class, seems like a lot of people who got a high score had a much more lenient TA grade, while those of us who got a lower score, got unlucky and had a much more stringent TA grade. What's annoying about the report is that your score really has no bearing on what you gained from the class or what you learned about Deep Learning. I could have scored higher or lower and it my understanding wouldn't change at all. It is great to have a final project that you can later put on your resume or talk about in an interview, but I think they need to rework it somehow. I do want to give the context that I took this class along with Machine Learning, and due to various circumstances, had very little time to work on the final project, but even then, I realistically should have been at like a solid A- rather than barely getting a B+, especially since we had working code, models, an okay controller, and a report that explained these things. Just glad to be finally over with it. For tips on the report, the instructions are somewhat confusing because there's emphasis on making it like a journal article and tying to current research. I think a better way to think about it, is just get one of those journal templates you can find online like form IEEE, and essentially write a lab report you would in school with an Introduction, Procedures, etc but be very detailed on your Introduction and Procedures sections. Essentially write it as if you are telling someone who knows nothing at all, about the project, the entire game, the entire simulation, what you did, all in detail with nice pictures and that sounds like what should score well with even a stringent TA. They score a lot more on good writing with transitions and how stand alone the report is: can someone who has taken a completely different Deep Learning class, understand and replicate exactly what you did? Now that I write it, yeah that sounds like a great question to follow and answer and should hopefully help you score well. Just make sure to also use a journal article format so you don't get docked extra points.
Detailed Review:
USE YOUR OWN GPU, PLEASE DO NOT USE COLLAB EVEN THE PAID VERSION
and
PLEASE TAKE REINFORCEMENT LEARNING BEFORE HAND
Also, I would not take this class with another class, purely because of the time commitment for the final project and for homeworks 3 and 4. It is technically possible, but just be ready to have barely any free time at all just like I did when I took this with Machine Learning. As soon as you submit an assignment for one class, you immediately have to start on the next one. This baton passing basically made it impossible to start on the final project early. In hindsight it is doable if you try to get ahead in this class early on.
Overall Rating (1.4 / 5): ★☆☆☆☆
Professor Rating (1.4 / 5): ★☆☆☆☆
Lecture Rating (1.4 / 5): ★☆☆☆☆
Difficulty (3.6 / 5):
Workload: 10 hours/week
Pros:
1. Exams were fairly graded and were of decent difficulty level
2. Container and serverless lectures were interesting
3. Project/labs are group based
Cons:
1. Project was painful to setup and even more painful to solve
2. Lecture videos were originally recorded for on-campus covid batch and are unengaging
3. Some videos are way too long
4. Extremely bad TA support on Ed
5. Projects are graded slowly, manually and very harshly, missing a line could lead to a loss of valuable marks
Detailed Review:
Lectures -
These lectures were recorded for the on-campus covid batch. Hence, they were not taught with online students in mind and I found them way less engaging than other subjects which have slide based lectures. It made revision before the exams tough too as you can't just glance over the video frames. They also didn't include the guest lecture videos for us for some reason which was disappointing. The second half of the course on containers/serverless was much more interesting and easier to follow, however, the videos could have been broken down into smaller chunks had they tailored it for online offering. The prof, however, knew his stuff and looked at ease throughout. Also, a lot of lectures had incorrect subtitles at places (and one video didn't even have subtitles).
Exams -
Exams were not too difficult and were perfectly doable even with less than thorough preparation. The grading was fair and I feel I scored in proportion to what I had studied. The endterm is cumulative on paper but I didn't see a single question from the pre midterm topics.
Labs -
The labs have multiple issues in my opinion. Firstly, it was a nightmare to setup the labs on the unreliable UT machines hence I had to find an old machine to run it locally. The labs are group based (upto 3 people, min 2 people) which is the only face saver. The downside is that these labs are not meant to be solved in groups because of how monolithic they are, and not knowing how a previous lab was solved impacts your ability to solve the next one. TAs refused individual groups because labs are graded manually and it takes a lot of time and hence they wanted to reduce their workload. The solution for the previous lab is released 5 days after the next lab is out due to late day allowance, so one has to wait for that long to start the next lab in case their previous lab submission had issues. Also, there is little to no way of knowing that your submission had issues, because even when it seems to work fine, points are deducted because of missing a line/argument etc. My group could not solve the last lab completely, and there was nothing we could do about it.
Ed Support -
This was shockingly bad, given that the same head TA ran AOS smoothly. The responses on Ed were vague and delayed more often than not, and office hours were cancelled/moved liberally in the second half of the course - making life tough for people in Asian timezones who have to stay up late to attend these. Ed in itself is a downgrade from Piazza too.
Overall Rating (1.4 / 5): ★☆☆☆☆
Professor Rating (2.1 / 5): ★★☆☆☆
Lecture Rating (3.6 / 5): ★★★★☆
Difficulty (2.9 / 5):
Workload: 8 hours/week
Pros:
1. Pretty good textbook
2. Lectures are a good mix of theory and example
3. Exposure to a different way of thinking
Cons:
1. Major errors on virtually every homework/exam
2. TAs are not helpful - they take days to respond and almost never answer questions directly
3. HW/exam questions feel more like riddles than clear problem statements
Detailed Review:
I'm going to be honest: by the end of the semester, I put about as much effort into this class as the course staff. Which is to say I got through it as quickly as possible and stopped worrying about the results.
Basically every single week, the professor or the TAs post a regrade notice in Ed because there was some error that made it impossible to correctly answer a homework question or two (or more). Sometimes they posted the wrong data; sometimes they didn't include the correct answer choice; sometimes the questions don't make grammatical sense. While I appreciate that they go back and regrade, the fact that this happens every single week, and even on exams, is ludicrous. This isn't the first time this course has been offered, or even the second. But no one seems to go back and check to make sure they aren't making the same mistakes over and over.
Meanwhile, when you try to clarify mistakes, it's almost impossible to get an answer from the TAs. If they respond at all, it'll probably be a non-specific answer (even to a yes-no question) days or even a week later. Even during exam periods, they don't give prompt responses (for example - 30 hours to respond about a grammatically nonsensical question on the final, and even then they wouldn't tell me what the question meant to ask). So you're just left guessing what you're supposed to do with internally inconsistent data or nonsensical questions. Meanwhile, the problems build on one another, so a mistake in an early part means you have no chance of getting points later.
This is unfortunate, because I do think the material is interesting. Prof. Zigler is a decent lecturer, and his material does a good job of complementing the book (which is actually worthwhile to read). The class focuses on a single framework (potential outcomes), so you shouldn't go in expecting that you're going to get lots of different perspectives. But the course does a good job of explaining the interplay between design and analysis (though it takes a little while to get to the point).
But unfortunately, this can only go so far when, on most assignments, you have no idea if your approach is wrong or if the question simply cannot be answered as written, nor can you get any clarification. This isn't conducive to learning the material at any level, and makes this little different from just watching free lectures on Youtube or your favorite MOOC site. I still think this class makes sense in the program, but I wouldn't recommend it in its current, unpolished state.
One change from previous semesters is that you get full credit on the short-answer quizzes as long as you answer the questions and complete peer grading. You can still see feedback on the (very specific) answer criteria, but the actual peer grading points don't matter on your final grade. All regular homework and exams are machine-graded multiple choice.