Overall Rating (5 / 5): ★★★★★
Professor Rating (5 / 5): ★★★★★
Lecture Rating (3.6 / 5): ★★★★☆
Difficulty (3.6 / 5):
Workload: 15 hours/week
Pros:
1. The TA's have been great on ED discussions.
2. Introduced fundamentals of good programming, with a lot of enfasis on testing and debugging.
3. Covered the must know algorithms and data structures.
Cons:
1. The lectures are based on a chack board, not aways very organized/easy to read
Detailed Review:
Overall it is a great course. Very well run. Covers the basics really well. Brought me to a whole new level of proficiency/confidence in programming (I had some experience programming, but I do not have a CS background).
Some projects could realistically need +20 hours of work if you are not that experienced with programming. Totally worth it.
If you have a CS background, you will spend a lot less time on this course, and then it could be advisable to pair it with another.
If you can, take it soon into the program, provided you have the time to dedicate. It will impact all the other courses that require an extra dose of programming skills.
Overall Rating (5 / 5): ★★★★★
Professor Rating (5 / 5): ★★★★★
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (2.9 / 5):
Workload: 13 hours/week
Pros:
1. Content is very engaging and relevant
2. Assignments directly tied to relevant NLP models
3. Final project allows creativity
Cons:
1. Lecture content after the midterm seems a bit forgotten/glossed over
2.
3.
Detailed Review:
This is one of the best courses in the program! The content is very engaging and the professor is very knowledgeable and passionate about the subject. Lectures are concise yet informative, and cover a lot of relevant material that includes both models as well as fundamental math/statistical frameworks.
The 4 programming assignments are well-balanced and vary from reasonably straightforward to fairly challenging (Assignment 3). The implementation here is very useful to get good practice with pytorch and understanding the different components of the models.
I found the midterm exam to be quite tricky, and got a lower mark here than everywhere else in the class. Be sure to do all of the edX exercises fully and study all past exam questions thoroughly to get an idea of the types of questions asked.
The final project was open and intended for critical thought. I enjoyed this wrap up to the course as it not only forced a different type of analysis, but also required a very thoughtful written report to clearly communicate ideas.
The only knock on the course was that the lecture content after the midterm seems a bit forgotten, as there isn't a strong reason to dive deeply into the content since there is no evaluation on it.
Overall, this course is fantastic and executed very well!
Overall Rating (5 / 5): ★★★★★
Professor Rating (5 / 5): ★★★★★
Lecture Rating (5 / 5): ★★★★★
Difficulty (0.7 / 5):
Workload: 2 hours/week
Pros:
1. The course is extremely well developed; Professor Wilke clearly knows his subject matter and does a wonderful job explaining the concepts clearly and concisely.
2. Project based assignments.
3. Instructor & TAs are responsive on Piazza/office hours.
Cons:
1. Peer grading
2. N/A
3. N/A
Detailed Review:
Professor Wilke does an outstanding job with this course. He is clearly passionate about the subject matter and does a good job of explaining how data visualization fits into the larger degree program. It is a great class to take if you are just starting the program, especially if you haven't been in a formal academic environment for a few years. The assignments are quite easy (almost too easy), but they definitely give you an opportunity to learn the fundamentals of R and data visualization in general. As the class progresses, you will have more freedom to make creative choices for your visualizations and can really dig into the nitty gritty of ggplot2 as much as you would like.
If you are new to programming, this class can be a good jumping off point to become more familiar with troubleshooting and reviewing documentation; the lectures/assignment instructions don't always provide the details necessary to generate the right plot. Though, to be fair, those situations are the exception rather than the norm. Professor Wilke typically breaks his lectures up into a theory component and practical component. You will usually get one video on theory/abstract principles for data visualization in general, followed by a second video describing how to implement those principles in R/ggplot2. I personally enjoyed this format, but it may not be for everyone.
I have a strong distaste for peer grading in general, but there quite a bit of thought put into this course to mitigate any issues that may arise from peer grading. You also have the opportunity to dispute grades with the instructor/TAs if you believe that you have been slighted. I never had to go that route, but it is worth noting that it is available.
All in all, I loved this class. My only regret is that it was the only class I took this semester. Based on the workload, I could have paired this with another course, even while working full time.
Overall Rating (5 / 5): ★★★★★
Professor Rating (4.3 / 5): ★★★★☆
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (2.1 / 5):
Workload: 10 hours/week
Pros:
1. Unlimited number of submission
2. Hands on
3. Well structured
Cons:
1. Not enough content
2.
3.
Detailed Review:
Very good class. However, I'm not sure I'm ready to tackle real problems (even though I got a 115% grade)
Overall Rating (5 / 5): ★★★★★
Professor Rating (5 / 5): ★★★★★
Lecture Rating (5 / 5): ★★★★★
Difficulty (2.9 / 5):
Workload: 15 hours/week
Pros:
1. Professors do a great job of presenting theoretical material
2. Lectures are largely self-contained (you don't really need to read textbooks outside of the provided notes)
3. TAs are helpful and patient. Peer graders are generally encouraging and nice as well :)
Cons:
1. It's a larger intro class, so some people might find the learning curve steep while other people have been exposed to the material before
2. Peer grading can be hit-or-miss since there aren't clear guidelines for grading (you're given the solutions, but there isn't a standardized grading rubric)
3. Problem sets can be time-consuming, especially if you want to typeset with LaTeX
Detailed Review:
I think that this course is a really solid introduction to ML theory. Given the complexity of the material, the professors really seem to make an effort at presenting the information in an intuitive but rigorous way.
Overall Rating (5 / 5): ★★★★★
Professor Rating (5 / 5): ★★★★★
Lecture Rating (2.9 / 5): ★★★☆☆
Difficulty (2.9 / 5):
Workload: 16 hours/week
Pros:
1. Encourage use of LLMs for the HWs (explicitly not the shared assignments FCs)
2. Good, entertaining lecture
3. Engaging assignments
Cons:
1. Keep up with the due dates
2. Android studio updates
3.
Detailed Review:
Honestly, I really like this course. I'm not an SWE, so this was my first software-design course. It wasn't too demanding. The final project is what you make of it. I was fortunate enough to be able to tie the project to my job, so two birds with one stone.
Strong suggestion: get an android phone. Running your apps on your phone is so much better than emulating.
You will learn to get deeper into edge case tests. For the HWs and partner-assignments (FCs) you have access to a fixed number of "slip days" to allow for life events, but be too spendthrift with them. Assignments get harder over time. They were not allowed to be used on the final project.
Overall Rating (5 / 5): ★★★★★
Professor Rating (5 / 5): ★★★★★
Lecture Rating (5 / 5): ★★★★★
Difficulty (2.1 / 5):
Workload: 6 hours/week
Best Course. Professor is knowledgeable. TAs are supportive. Lectures are masterclass. All the professors in MSDSO should learn from Professor Wilke on how to design and deliver an online course.
Best things are Worksheets for practice
Overall Rating (5 / 5): ★★★★★
Professor Rating (5 / 5): ★★★★★
Lecture Rating (5 / 5): ★★★★★
Difficulty (2.1 / 5):
Workload: 15 hours/week
Pros:
1. Fairly thorough coverage of the subject matter by a Prof that clearly knows and loves his subject
2. Pretty well structured course with exams that match the material very well
3. Most of the grade comes from projects that have 100% given test cases - if your code passes the test cases then you know your grade already - if it doesn't you can resubmit until it does so it's all on you
Cons:
1. This was the course's first run so there were some hiccups - the Prof bent over backwards with accommodations and so I don't think this was a huge issue, but it was irritating - that's what you get for being the first to take new course ;-). I doubt this will be an issue for the next class though (you're welcome)
2. Does have a dependency on Java (which I don't think it really needs) - no issue if you know Java and it's not hard to learn 'enough' Java for the Labs so not a big deal IMHO
3.
Detailed Review:
This is a well structured course that looks and the theory and implementation of modern programming languages. The main project has you building a compiler for a made up language, that will evolve throughout the course. You will compile this language initially to another 'fake' language (SaM) which is a stack based language design for teaching purposed, and then later directly to x86. Prof gives you the key ideas in the lectures and then you are supposed to figure out how to apply them in real world code - you can get full marks by just doing what he suggests, but the more of the 'fancy stuff' you implement in your own code, the more you will learn - it's up to you whether you are chasing an easy grade or packing in the learning. There is a straight theory component and that's a bit of head scratching, but the exam was very fair and not a heavy part of the final exam so it was entirely possible to get a 'A' even if you were better at coding than the theory.
The grades are straight letter grades (i.e. A, B, C - not +/-) which means if you would have got an A- you'll still end up with an A, but if you might have scraped B+, that's still a B - a blade that cuts two ways.
Overall, a strong recommendation for the course - the 'hiccups' that were present in the first release have been mostly ironed out - I suspect Prof will tweak a few things for the next run, but if you want to understand how compilers work and get a good insight on how you might use this to write better code - this is a great course and a lot of fun. There's a fair amount of work in the first few weeks (part of what I think the Prof may well tweak) but it gets much easier around half way through.
Overall Rating (5 / 5): ★★★★★
Professor Rating (3.6 / 5): ★★★★☆
Lecture Rating (5 / 5): ★★★★★
Difficulty (3.6 / 5):
Workload: 12 hours/week
Pros:
1. Very well-designed programming assignments and final project
2. Good lecture video content covering a broad range of topics
3. Very active TA team in piazza
Cons:
1. The homework questions in EDX can be harsh in grading with very little attempt
2. Lack of professor presence in Piazza
3. Can be a tough learning slope for people with zero ML/DL background
Detailed Review:
The assignments were really well made, and in each week you need to code up some new concepts learned from the lecture videos. These programming assignments really help significantly in reinforcing what you have learned. I came to this course with prior knowledge in ML/DL, so it wasn't too difficult to nail the assignments, but I can imagine it to be hard for those who don't have the background. You can still do well in general, but you probably need some prior background in DL or really hard work to score full marks in some of the assignments.
Overall lecture content is pretty good - it touches enough on fundamentals and what I appreciate is also the professor's opinions in some of the topics with open questions. The general advice given in the lecture videos with regards to especially deep learning in general and computer vision are very helpful. I say that from the fact that I'm one of the practitioners in these area, and I still find insights from the lectures. I do hope that the professor is able to add more video content in subsequent semesters, perhaps to include some of the recent developments in DL too.
Overall there's also great support from the TAs in Piazza throughout the semester. Towards the semester everyone was bombarding the piazza with questions regarding to final project, and while the response could have been better, I think overall the TAs were really trying their best. Not sure why the professor wasn't present in the Piazza though.
Overall Rating (5 / 5): ★★★★★
Professor Rating (5 / 5): ★★★★★
Lecture Rating (5 / 5): ★★★★★
Difficulty (4.3 / 5):
Workload: 20 hours/week
I am an Engineer (20+ years) and a Python Developer (3+ years), without bachelor degree in Computer Science. It is my first course in UT Austin and I got (A-).
Great course. Much up-to-date information in the lectures. Enough slots for Office Hours in all time zones (I had suitable time for 5 days per week). This course is more focused on Computer Vision; such topics like NLP, RL are present in it but gave me only general knowledge.
What would I recommend to do/have/use:
1. Knowledge of Python (OOP, the ability of reading and debugging code).
2. Colab Pro (GPU) for all homework (except HW1) and final project. Do not forget to cancel it after Final project.
3. Start to learn PyTorch library in advance.
4. Linear Algebra (vector, matrix, multiplication, inversion) and Gradient descent.
5. Work far ahead, do not keep official schedule.
6. Try to get 100 or more (there are some extra credits) for all homework. They are not so hard, really.
7. Do quizzes in order, do not leave them on the end of the course (I did this mistake).
8. Try to find/create a group for final project during working on HW4. (Four people in the group are better than three, two, one; more people means more ideas. Many people did the project alone. Different time zones do not matter.)
9. Discord server is a place for extra communication and possibility to find a team for final project.
10. ‘Writing part’ in the final project gives 21 points. Try to have got in the team a person with experience in writing papers in scientific style.
11. Find and read a book about Deep Learning. It is not an obligation, lectures are enough, but reading gives better understanding of the subject.
Homework, my estimation (now all seems to me so simple, even a final project):
HW1 – 2 days
HW2 – 3 days (only understanding tests in the local grader helped me)
HW3 – 1.5 weeks (U–net, skip connection)
HW4 – 1 week (test cases are very tricky)
HW5 – 2 days (I very quickly found a right approach). This HW is in the tournament and can give extra sufficient credit. I got 100/100 on Canvas, but nothing in the race. Now, I would allocate several days and improve my model and controller.
HW (extra credit) – I tried, after Final project, but could not solve it in a week; in my opinion it requires full NLP course under the belt. Some people did this HW instead of HW5, but HW5 is connected to Final project.
Final Project (image-based) – 6 weeks. (After four weeks we had much knowledge, but nothing to commit. Then with two fresh ideas the main part was done in a few days and one week for the writing part. We did not have to write ‘alternative approach’, our code score > 70; according to TA, previous Spring 2023 course had mean=45.35 and median=44). The main advice: early start, four people and good writer.
Final project (state-based). According to the comments is simpler but requires RL course.
Some extra statistic: After HW1 we have 210 people, before HW5 - 201 and after Final Project -182 at the course.
I hope that my review will come in handy for future students. Good luck!