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.
Overall Rating (5 / 5): ★★★★★
Professor Rating (5 / 5): ★★★★★
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (3.6 / 5):
Workload: 20 hours/week
A brief bit about my background for context: I do not have any formal CS training. I had limited Python scripting experience prior to this class, but little to no OOP experience.
Pros:
1. My programming skills increased by at least an order of magnitude by completing this course.
2. Dr. Lin is passionate about the subject matter and genuinely seems to care about teaching the 'why' behind the course concepts.
3. The TA's were top notch, overall.
Cons:
1. There are no sample solutions provided for the projects, so it can be difficult to learn where to improve.
2. Similar to item #1, the grading is quite opaque. You can see the names of the tests you failed in Gradescope (after the grades are posted); however, in many cases the names don't give much information regarding what the test actually evaluated. Again, this makes it rather difficult to interpret how you went wrong.
3. The quizzes are deceptively difficult, relative to the content presented in the lectures.
Detailed Review:
First, I want to say that, overall, I absolutely loved this class. It challenged me it a good way and I can already tell that my programming skills have improved dramatically. Furthermore, I have already applied many of the concepts presented in the course in my professional life and have seen dividends. Dr. Lin has structured the course such that it teaches how to approach algorithm analysis and programming in general from a strategic perspective, rather than a vocational, tactical perspective. Both have their merits, but I definitely think that the approach Dr. Lin takes provides more value for this degree.
If you don't have a CS background: be prepared to struggle. I would strongly recommend getting up to speed on object oriented programming principles & recursion prior to taking this course. Be comfortable with classes & inheritance. If possible, get used to debugging using PyCharm or another IDE, instead of using print statements. Some will say to focus a lot on Python prior to taking the class. Personally, I think that the required level of explicit Python knowledge is relatively low. If you know OOP from Java, Swift, C++, or some other language, you will pick up the Python syntax relatively quickly. But if you are new to programming in general, then learning OOP & Python simultaneously (prior to this class) is the way to go, if you can.
If you are new to object oriented programming, DO NOT procrastinate on the projects. Start on them as soon as they are released. The projects took me anywhere from 10 to 60 hours. You will need to develop your own unit tests to make sure that your code is functioning appropriately, which is a skill all on its own.
My only real complaints are that the quizzes tended to cover a lot of information not really addressed in the lectures and that the grading is exceptionally opaque. That being said, I still learned a ton and am glad that this course is part of the program.
Overall Rating (5 / 5): ★★★★★
Professor Rating (5 / 5): ★★★★★
Lecture Rating (5 / 5): ★★★★★
Difficulty (4.3 / 5):
Workload: 15 hours/week
Pros:
1. Prof. Lin is an engaging and thoughtful lecturer
2. Will improve your programming (and testing/debugging) skills
3.
Cons:
1. Class schedule was a little uneven in terms of time between project and quiz due dates
2.
3.
Detailed Review:
Although it was a lot of work, I really enjoyed this course. Prof. Lin is an engaging lecturer who’s clearly put a lot of thought into how he presents the material, and I learned a lot from the lectures and projects.
I thought having a student as an interlocutor was particularly effective for the online format. Lin’s teaching style (describing things in more plain terms, working through proofs and algorithms step by step on the chalkboard, and having a dialogue with the student) was a lot more helpful than reading off powerpoint slides.
In terms of my background, I took a couple of introductory computer science courses in undergrad and did a lot of R and Python programming for a job in academic research. I still wasn’t sure how I would fare in this class, given previous reviews. Overall, I thought the course was time consuming but manageable, with the caveat that the learning curve is steep for those who aren’t familiar with object-oriented programming. I felt the projects were manageable and fun, and my programming skills improved immensely, especially when it comes to debugging and designing test cases.
The quizzes were tough and required a lot of out of the box thinking, but I felt they were mostly fair (I’m sure many will disagree). I thought watching the lectures a couple of times and referencing the textbook (mostly for big picture information because it's written in Java) was sufficient enough to do well on the quizzes. The test cases for projects aren’t always the most descriptive, so you’ll have to go to office hours to get details. It’s not a good setup for learning from your mistakes, but I also get that the staff doesn’t want the test cases to be public information.
The syllabus mentioned that there would be a generous curve, but I wasn’t sure how generous because the class averages were fairly high after the first few assignments. However, the course ramps up in difficulty fairly quickly. I put in a lot more time thinking the cutoffs would be higher this semester, but the curve ended up being similar to past semesters.
Logistically, I think the class was mostly managed and organized well. The TA’s were somewhat active on the Ed discussion board and held regular office hours, making extra time before project deadlines. They could be cagey answering some questions, but were otherwise usually pretty responsive when it came to more urgent matters like grading. There were a couple of students in particular who were also really active and helpful. The only thing that threw me off a bit was that the staff didn’t seem to observe the spring break (mid-March), as they released lecture videos that week and had a quiz due the Sunday immediately after.
Overall Rating (5 / 5): ★★★★★
Professor Rating (5 / 5): ★★★★★
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (2.1 / 5):
Workload: 5 hours/week
Pros:
1. Great TAs who are very responsive
2. Projects are interesting
3. The materials are high quality
Cons:
1. Wish there were more videos as some things seemed a little rushed
Detailed Review:
Honesty, this will probably be the best class in the masters program. Dr. Durrett is a great professor who enjoys teaching this material. All of the videos and projects were carefully planned and thought out. Tons of office hours and the TAs are very responsive and helpful. Overall, really enjoyed this class. The midterm was a bit stressful for me but they provide previous years' exams to help you study. The final project was done either alone or with a partner but if you do choose to work with someone, know you have to do more all together. The material itself was very interesting to me and relevant.
Overall Rating (5 / 5): ★★★★★
Professor Rating (5 / 5): ★★★★★
Lecture Rating (5 / 5): ★★★★★
Difficulty (4.3 / 5):
Workload: 10 hours/week
Pros:
1. Very interesting content that is explained well in lectures.
2. Highly active and helpful TAs.
3. After the maths foundations are set, the course is much more about developing algorithms to solve problems than doing maths.
Cons:
1. Peer grading is an extra time cost and can be hit-and-miss, but you can get regrades from the TAs if needed.
2.
3.
Detailed Review:
The course was surprisingly not too maths heavy imo (but I have a maths background, so...). The first few weeks focus on concepts like complex numbers and unitary matrices because you need them to understand quantum states, but at the halfway mark you should have all the maths needed to understand quantum states/calculations in general. You do end up needing some number theory for Shor's algorithm, but they walk through the relevant stuff and I don't think it's a focus (just needed to understand that understand/appreciate the algorithm).
It sounds like the course is relatively unchanged from the first run.
Overall Rating (5 / 5): ★★★★★
Professor Rating (0 / 5): ☆☆☆☆☆
Lecture Rating (0 / 5): ☆☆☆☆☆
Difficulty (5 / 5):
Workload: 35 hours/week
Great course. Tremendous amount of work. The projects were cryptic, dense coding trying to figure out what the professor had coded before. The videos were only loosely connected to the projects except a few that had hands on coding examples. For theory it was very loosely stated. It's definitely a great applied course.