Overall Rating (5 / 5): ★★★★★
Professor Rating (5 / 5): ★★★★★
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (4.3 / 5):
Workload: 14 hours/week
Pros:
1. Highly relevant coursework content that touches on both fundamentals and latest things in NLP
2. The TAs+professor are very active in Piazza
3. Very well-crafted assignments, mid-term and final project
Cons: N/A
Detailed Review:
I took this alongside DL and RL in the same semester, and should be qualified to say that NLP is really the most recommended course among them. It's both funny and sad to see the big contrast in Piazza response for some of these courses towards the end of the course. I wouldn't comment too much on DL and RL here, but the response from students in NLP's Piazza was overwhelmingly positive and encouraging. You can almost see everyone agreeing that they've truly learned from the course and some of them even become interested to continue pursuing this path.
The overall effort that the teaching team (TA+professor) puts into the course is obvious. In terms of programming assignments, they are challenging (yet manageable) as compared to other courses I've taken. There's also great design in terms of making the models accessible (NLP is famous for large language models that most people don't have access to/can't afford to run), and in most assignments you can really get away with using just CPU. The final project, while benefits from using GPU, also allows weaker GPUs to be used (I used my old 1080Ti) and it was more than sufficient. This wouldn't be possible if the instructors didn't put effort to scope the project - and they actually helped to narrow it down to one of the best performing lightweight model at the time of writing. They actually also revamped some of the assignments this semester to make it more relevant in light of recent developments in NLP. I can assure you of how annoying it can be to take other courses that recycle old materials blindly. In the end, I think what really matters is whether the team (professor + TAs) actually put effort into developing the course, in the case of NLP, they've done more than expected.
The graded homework questions in EDX are mostly giveaway questions since you have a lot of attempts to get them correct, but I find them generally useful as checkpoints to see if we truly understand the material.
There was also a midterm for this semester. The effort put in to ensure that everything goes smoothly was also super encouraging. There was even materials prepared prior to exam to get everyone in sync of the questions to be expected. Overall material was challenging yet motivating enough as long as you've prepared for it. Generally the grading is fair - you get points even if you're wrong in the absolute answers as long as you show that you understand the concepts. Read the review about RL and you understand how different things can be.
The final project is around a relevant topic and offers two different paths to choose from. There's sufficient time for us to explore what we want to do (I think it was a month's time?), we can choose to do solo or pair up. There was also peer review, but I'm glad that the instructors are the ones who decide on the final grade (in contrast to courses who just use student's peer review feedback directly).
Overall, I find it rare that there's an online course that's so well-crafted. There are online courses that will inevitably give you the impression that they're trying to milk with minimal effort using some old content, but this course is by far the opposite of that. I just wanted to say that Prof. Durrett and his team has really done so well for this course that I'm glad I took it in my first semester, and this makes me look forward to other courses. DL imo is also well done, and I'll write in another feedback. RL pales in comparison, unfortunately, in terms of how well prepared the course materials are. I've similarly written a detailed review for RL.
Overall Rating (5 / 5): ★★★★★
Professor Rating (5 / 5): ★★★★★
Lecture Rating (5 / 5): ★★★★★
Difficulty (2.1 / 5):
Workload: 5 hours/week
This was my first class in the program and I really enjoyed it. I thought the professor was great and he made the subject interesting and approachable. Homework assignments were challenging, but not overly difficult or frustrating to figure out. I used Google Colab, which took some getting used to, but overall it worked well and sped up my model training.
I don't know if they'll do this every semester, but they released all the homework assignments and lecture content/quizzes at the beginning of the semester. This allowed us to take the course at our own speed, some people finished really quickly, I'm sure some will wait until the last possible day. I wish I would have known they were going to do this ahead of time, because I would have taken another class along with this one.
Overall Rating (5 / 5): ★★★★★
Professor Rating (5 / 5): ★★★★★
Lecture Rating (5 / 5): ★★★★★
Difficulty (2.9 / 5):
Workload: 5 hours/week
Pros:
1. Lots and lots of practical code written, Kotlin is an amazing language that's worth learning
2. Funny, interesting lectures and novel flipped classrooms
3. Responsive and helpful TAs and classmates
Cons:
1. The Android SDK (Software Development Kit) is pretty garbage and keeps changing
2. Since there's so much code/so many assignments, there's pretty frequent bugs
3. Some of the projects and FCs are much harder than others
Detailed Review:
I really enjoyed this class and would recommend it to anyone who wants to be a really good Software Engineer.
It'll give you practice working with some cool, bite-sized problems through the Flipped Classrooms; it then expands out to larger efforts via the projects.
You'll work with some really bad spaghetti code but also get to refactor and improve it to make it make sense. You're working with a constantly changing framework (Android SDK) that has a LOT of critiques but is slowly getting better.
Most importantly, it's truly just a lot of code that you get to write; lots of practice. Well worth it, if you're a strong engineer! No other class gives you this much volume and reps.
Overall Rating (5 / 5): ★★★★★
Professor Rating (5 / 5): ★★★★★
Lecture Rating (5 / 5): ★★★★★
Difficulty (2.9 / 5):
Workload: 14 hours/week
Pros:
1. The course provides an in-depth exploration of Large Language Models (LLMs), Low-Rank Adaptation (LoRA), and Vision Transformers through application-based projects.
2. Professor Krahenbuhl provides a significant amount of boilerplate code. This allows you to focus on the underlying logic and architecture rather than basic syntax or debugging.
3. The pace is manageable, and materials are provided early, which is perfect for those who prefer to work ahead.
Cons:
1. Access to a modern Graphics Processing Unit (GPU) or a subscription to Google Colab Pro is essential. The long project run times are significant, though they would reflect real-world engineering scenarios.
2.
3.
Detailed Review:
If you have completed the introductory Deep Learning course, this is the ideal follow-up. While the "Advanced" designation may seem intimidating, the actual workload is very reasonable. Professor Krahenbuhl excels at translating complex research papers into digestible short lectures and straightforward coding assignments.
The curriculum covers critical areas such as memory efficiency, generative models, Large Language Models, and Computer Vision. A major highlight is that the assignments include substantial boilerplate code. This means you are not building these massive models from the beginning; instead, you focus on fine-tuning and understanding the architecture.
It is important not to underestimate the hardware requirements. If you are using a Mac or an older computer, it is advisable to pay for Google Colab Pro. The training processes for the later assignments are intensive, and attempting to complete them on underpowered hardware near the deadline will be difficult.
Overall, this was one of the most rewarding courses in the program. It successfully bridges the gap between academic theory and the practical tools currently used in the industry. If you have the opportunity to take this course with Professor Krahenbuhl, I highly recommend it.
Overall Rating (5 / 5): ★★★★★
Professor Rating (5 / 5): ★★★★★
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (2.1 / 5):
Workload: 7 hours/week
Pros:
1. Professors active on discussion forums
2. Quizzes and tests are very similar to problems in HW/lectures
3. Material is interesting
Cons:
1. A fair number of typos in the lecture slides occasionally makes things difficult to understand
2. Some homework problems quite challenging - needed to go to discussion forums for guidance
3. Textbook listed as required, only helpful for 4 or 5 homework problems
Detailed Review:
Class split about 50/50 between statistics and probability. Probability much harder IMO, though still manageable. Stats were a few weeks on intro stats concepts and a few weeks on approaching hypothesis tests and confidence intervals by simulation, which was the best part of the class for me.
Overall Rating (5 / 5): ★★★★★
Professor Rating (0 / 5): ☆☆☆☆☆
Lecture Rating (0 / 5): ☆☆☆☆☆
Difficulty (1.8 / 5):
Workload: 15 hours/week
I found this to be a great class that taught the fundamentals as well as the progress and recent developments of the field. The homeworks did a good job of introducing deep learning topics though as mentioned in many other reviews, the difficulty spikes in homeworks are rather extreme. The project can be very difficult and is reliant on topics outside the scope of the course to truly excel. Start the homeworks as soon as they are available and you shouldn't have any trouble finishing them.
Overall Rating (5 / 5): ★★★★★
Professor Rating (5 / 5): ★★★★★
Lecture Rating (5 / 5): ★★★★★
Difficulty (2.9 / 5):
Workload: 4 hours/week
Pros:
1. Excellent Professors, and very thorough material
2. Not a common course in Graduate Computer Science, but a very useful one nonetheless
3. Plenty of attention paid to applications, and especially how to modify algorithms for high performance
Cons:
1. Unfortunately Maggie and Robert have retired :(
2. The algebraic notation and proofs sometimes impede learning
3. Not directly applicable to many subjects that Computer Science students are most interested in
Detailed Review:
If you have time, I recommend taking LAFF (available online free) before stepping into this course. Some of the material is pretty basic, but what you really want to expose yourself to is Robert's notation and heuristics. I personally didn't have too much issue with the course but I had taken LAFF, and so I felt like I had a head-start. Took me approx. 9 hrs/week. I took this class with Machine Learning, so both were very math heavy. Decent synthesis, especially in regards to the Singular Value Decomposition.
This is definitely a top course in the program, highly recommend that everyone takes it if it is available for you.
Overall Rating (5 / 5): ★★★★★
Professor Rating (5 / 5): ★★★★★
Lecture Rating (5 / 5): ★★★★★
Difficulty (2.9 / 5):
Workload: 10 hours/week
Pros:
1. Novel topics used in industry
2. Not a full theory-based assignments (work-oriented class)
3. Projects are good for learning and related to the topics
4. Nice TAs, staff, and Ed communication
Cons:
1. You need new GPU / CUDA
2. Problems with versioning, but not a big deal (see the comment below)
3.
Detailed Review:
I took this class because the facility offered it and I was intended to take Reinforcement Learning, but they tried to get more people to take this one. Honestly I planned to take it after Deep Learning, but I thought it was an elective, so it will be "easier", but I was wrong.
Overall the class is a solid 10/10 if you are interested in AI / DL, and the professor makes the lectures easy to understand, and it's based on papers, but if you have time, you can check them out by yourself.
The homework was a bit complicated, but you don't need to spend a lot of time coding compared to the time you need to invest in understanding the assignment, and adding to the item above in the "cons" section, this was the very first time they offered the class, so it's normal that they need some iterations to improve some points, and one of them was the homework versioning, for example in the second project they realized like 4 versions and the grader worked only with the last one, and with that many of us spent like 2 weeks looking for a typo in the code, again it's not a big deal but from now it seems to be solved.
Even though the course says that you don't need CUDA, you will need a "decent" graphics card, like more than 4GB will suffice to train your models in less than 20 mins. You can use Collab, but if you are in the US, you can use lightning.ai, (In my country it is not available) so you can rent one in Vast.ai or in runpod.io since they are pre-paid, you will not spend more than $10 USDs per homework. Tip: If you have a basic GPU, you can write your code and debug it, and once you can train your model, you can upload it to one of these platforms and train it and spend less than $1 USD.
To summary, a nice class that every ML/AI enthusiast should take :)
Overall Rating (5 / 5): ★★★★★
Professor Rating (5 / 5): ★★★★★
Lecture Rating (5 / 5): ★★★★★
Difficulty (4.3 / 5):
Workload: 25 hours/week
Pros:
1. Challenging, rigorous homework
2. Incredible TA & recitations
3. Great lectures
Cons:
1. Exams can be tricky, but doable
2. Takes a lot of time to grasp some of the material, so ensure you have a lot of time to commit
3. Peer grading HW
Detailed Review:
This course is one of the best I have taken. Professor Aaronson is a great teacher! The lectures give plenty of background stories and big picture views to help connect the dots. The TA was simply amazing. All questions received a timely and thorough response, no matter how small (and seemingly 24/7). There was also a Q&A with the professor at the end of the semester, which was fun!
Office hours and recitation sessions seemed underutilized but were very helpful, so take advantage. The textbook is fun to read and complements the lectures. Recitations felt curated to give concrete examples or more attention to difficult concepts. The homework is harder and requires some creativity. Exams are tough (mostly due to time limits) but fair. You should be fluent with the course materials on these, so take the time to build your own intuition along the way.
Regarding the time commitment, I spent more time due to interest so ymmv, but it's going to require a lot of your time consistently throughout the semester. I suggest to get ahead if you can, allow plenty of time to digest the homework, read the textbook and go to office hours. About the math - in my opinion a strong working knowledge of Linear Algebra and complex numbers is necessary, and you need to know how to write proofs (or explain logical steps) and analyze / design algorithms. Don't worry about the light group theory / number theory involved near the end because everything you need to know is covered (see the textbook on the professor's website).
As a concrete takeaway from this class, I was able to pick up a paper on quantum information and understand a good portion of it. Ironically I have a better appreciation for classical computing now too. If you are interested in the topic and have enough time to spare, definitely take this class!
Overall Rating (5 / 5): ★★★★★
Professor Rating (5 / 5): ★★★★★
Lecture Rating (5 / 5): ★★★★★
Difficulty (1.4 / 5):
Workload: 5 hours/week
Pros:
1.80% of your grade dependent on only four assignments spaced 2-3 weeks apart.
2. 20% grade dependent on easy 1-3 question short multiple choice quizzes. Two attempts.
3. The professor knows his stuff and how to simplify for a newbie audience.
Cons:
1. Perhaps too easy if you took the course during Summer 2024 or later. May feel more like undergrad material in DL.
2. Later assignments may require Nvidia-GPU or subscription to Colab/Fast ai/Lightning ai.
3. Depending on your CPU/GPU, training time may be long (Although this is more of an issue in the new Advances in DL elective).
Detailed Review:
This is a very good introduction to PyTorch and Deep Learning. In my opinion, the post-Summer 2024 version of DL, is even a much better and more newbie-friendly introduction to UT's CDSO Program, compared to courses like DSA and ML in MSDSO.
The course has four main parts/assignments. Part 1 is an intro to the Pytorch programming library (so the first HW won't even be much on DL yet, but on Pytorch itself). Part 2 is on the modules introducing you to linear models, deep linear models, and related concepts including how to train them.
In the second half of the course, you will be expected to know how to write appropriate training scripts In addition, part 3 covers convolutions, while part 4 covers transformers (usually transformers are the building blocks for more modern DL). The last homework will make you put together your knowledge of deep linear models, convolutions, and transformers.
There is no required textbook, instead you are to refer to https://ut.philkr.net/deeplearning/
Having said that, there are are some minor disadvantages: If you took this during Summer 2024, you're probably the experimental batch for the new version of DL, meaning, assignments were delayed in terms of releasse. But in Fall 2024, they fixed that already and assignments were on time in terms of schedulee.
Also, if you already have an extensive DL background, you probably won't benefit much from this class and may feel that the class is overpriced. As a consolation, you can easily take another class with DL and proceed faster with your program.