Overall Rating (4.3 / 5): ★★★★☆
Professor Rating (4.3 / 5): ★★★★☆
Lecture Rating (5 / 5): ★★★★★
Difficulty (4.3 / 5):
Workload: 20 hours/week
Pros:
1. Lectures are really interesting
2. Piazza is extremely active
3. Quizzes and projects are very hard, but in a way that teaches you a lot
Cons:
1. Quizzes were short, and sometimes worded strangely, so one bad question can throw you off
2. There was a lack of transparency on the grading curve (like most classes to be fair)
3. Projects took a long time to get graded
Detailed Review:
This class is going to get revamped after this semester, so this review won't be too helpful, but I did want to say Professor Lin taught me a ton of information in a short amount of time. The class was very hard, and the ambiguity of my grade was sometimes frustrating, but I learned a LOT in this class.
Overall Rating (4.3 / 5): ★★★★☆
Professor Rating (4.3 / 5): ★★★★☆
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (2.9 / 5):
Workload: 12.5 hours/week
Pros:
1. Learn a good variety of fundamental data structures
2. Generous grading curve
3. Plenty of hands-on practical coding experience in Python
Cons:
1. Assignments ramp up in difficulty considerably for the last 3 of 6 assignments
2. Quizzes can be tricky and have very vague questions/obscure wording
3.
Detailed Review:
Disclaimer: I come from a bioinformatics background with about 3 years of proper programming experience in Python, mostly self-taught with one semester of bioinformatics-based coursework in Python.
This class was my favorite of the program so far, having also taken Probability, Regression, and Design Principles. The content is very engaging and I think that the topics covered are directly applicable to data scientists.
Assignments: There are 6 assignments. The first 3 are quite straightforward with the last 3 being worth the most and more challenging. There is a large emphasis on efficient code which is made evident with one project where your code will not submit if it doesn't meet a certain efficiency/time requirement. While this can be frustrating, it is quite useful to actually teach how to write effective code and review different design decisions i.e. amount of recursive function calls, etc.
Assignments are graded with an auto-grader and some starter test cases are provided. These are useful as a starting point, but students should be sure to exhaust their own test cases to make sure that code runs properly. A big emphasis in the class is learning how to test code creatively and independently.
Quizzes: These were frustrating as they were all theoretical from the lectures. Grades varied widely on these with some quizzes being very tricky and the class average just barely above 50%. Luckily for me, I did much better on the assignments than the quizzes, and with quizzes being worth only 30% of the total, you can still do quite well even if you mess up some of the quizzes.
Piazza & Professor: The lectures were done very well with a mock student-prof interaction on the blackboard. I was a big fan of this approach. Additionally, the level of TA support in this class was the best so far.
Other thoughts:
You will definitely need some real practical programming experience in Python to find this class manageable. I would suggest at least 1 year of informal Python programming, and familiarity with Python functions & classes. If you have never programmed in Python before, you will likely find this class VERY challenging.
Great course, but you have to work ahead and spend a lot of time to get value from it
Fall 2021CS 394D · Deep Learning
Overall Rating (4.3 / 5): ★★★★☆
Professor Rating (3.6 / 5): ★★★★☆
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (3.6 / 5):
Workload: 25 hours/week
General advice first:
- Buy Colab Pro, it's $10/month and eliminates a lot of frustration -- unless you have a CUDA-capable GPU, in which case you're already set.
- Start early and submit HW1 & HW2 early. You need to be ahead of schedule if you want to have enough time for the much more difficult HW3 and HW4.
- Do quizzes in-order; it's tempting to leave some for later, but you'll learn more if you get them done as scheduled.
Pros:
1. The lectures are not only interesting and well-taught, they are very up-to-date, which is critical for a field that seemingly exploded in popularity around 2011 and really hasn't found the limits of what is possible yet.
2. Bias/ethics lectures: I'm really glad the professor included lectures in the end about bias and ethics of this field; it's important for students to understand that with impactful work comes the risk of impacting humanity in a negative way. We should all understand our responsibility to society and not just build whatever makes the most money for our employers. And maybe we should also consider our potential employers' track record before signing the offer in the first place. Are they really making the world a better place?
3. The homeworks are well-structured, but they escalate in difficulty rapidly. Don't assume that because you did well on HW1 and HW2 that you're going to need the same time for HW3-4; they're brutal.
Cons:
1. Final project: The time allowed in the official schedule for the final project is nowhere near enough. You need to start on this about a month before the deadline in order to try out enough ideas to put something together that works well. We had 3 weeks, and the best state agent wasn't released until maybe a week before the deadline.
2. Pacing: DO NOT FOLLOW THE OFFICIAL SCHEDULE. You have to work ahead in this class; one of the TAs even said so near the end of the course. You get about 3 weeks for the first 2 homeworks -- you shouldn't need that much time. You get only 2 weeks for the last 3 -- you will need more. The only solution is to START EARLY and FINISH EARLY, at least until you've finished HW4. HW5 is a little bit easier, although getting great performance out of it nets you extra credit in a tournament, so it doesn't hurt to polish it with a little extra training.
3. Cheating policy: No, I don't think other students cheated. Instead, I'm unhappy that the policy was so strict about not communicating with other students. I have always learned best by asking questions and answering those of other students, in an open way. I tried to set up a monthly in-person get-together in Austin for students, where we could discuss and whiteboard general ideas about homeworks and the project. However, I was told that no communication between students on the homeworks is allowed, per the cheating policy. I can somewhat understand why, but I really wish there was a way for them to design the work in such a way that, as long as no code is shared, students could freely discuss what worked for them, to reduce the amount of trial and error required. This trial and error is especially frustrating when training has to be done on Colab, which can time users out, and requires re-installing PySuperTuxKart each time you reset the runtime.
Overall Rating (4.3 / 5): ★★★★☆
Professor Rating (4.3 / 5): ★★★★☆
Lecture Rating (3.6 / 5): ★★★★☆
Difficulty (5 / 5):
Workload: 20 hours/week
Pros:
1. Really get your hands dirty with implementing algorithms in python
2. Assignments are quite interesting.
3. TAs are quite helpful
Cons:
1. Takes a lot of time
2. Homeworks are unequally graded. Know this. Not all HWs carry equal weight.
3. Collaboration is not allowed in the later part of the course.
Detailed Review:
Overall quite stressful but important course. Gets you prepared for python programming and hels you understand important algorithms used in practice. Necessary to do an algorithms course at least once in your life.
I was taking ML and DSA at the same time with a full-time job so I lost some hair in Fall 2023. Jokes aside, this ended taking about 20 hours per week on average for me and I do a programming job which involves me spending about 40% time writing code although C/C++. Find good homework partners for at least the first few homeworks where collaboration is allowed, this will help your understanding and also make you feel less alone as you go through the ordeal.
Overall Rating (4.3 / 5): ★★★★☆
Professor Rating (4.3 / 5): ★★★★☆
Lecture Rating (3.6 / 5): ★★★★☆
Difficulty (4.3 / 5):
Workload: 15 hours/week
Pros:
1. Rigorous intro to underlying concepts of quantum information, learning from one of the leading figures in the field
2. TAs are highly responsive and good at breaking down lecture concepts
3. I feel I know enough to begin understanding recent literature in the QIS space
Cons:
1. [Arguable] Homeworks are proof-heavy and can consume quite a few hours; they tend to be extensions of the lecture material as opposed to repetitions of what we covered in class
2. Grading can be stingy. Borderline scores weren't bumped up to the next grade
3. Midterm and final exams are long: 3-4 hours of multiple choice and short-answer questions
Detailed Review:
Overall, I think this is one of the best electives in the MSCSO program despite being a new course offering (Spring 2022). Prof. Aaronson was not active in day-to-day course management during the semester, but his lecture videos and notes were concise and easy to follow.
The homeworks (30% of grade) were challenging. From a learning perspective, I found this to be a good thing because the proof and algorithm questions helped reinforce what we covered in class; I have a better grasp of the "edges and borders" of the problems and theorems we went through because of these assignments. Prepare to spend up to 10-12 hours per week on them though, while also attending office hours / sleuthing on Piazza.
The greatest point of contention in this class was the grade distribution. Our midterm average and median were squarely in the 'C' range, and a vocal portion of students (I assume to be a minority) insisted on having the class curved -- this was not guaranteed in the originally syllabus FWIW. It's true that the grade outcomes were lower than for a typical MSCSO course, but the course itself had already been adapted from the undergraduate version (and with more lecture chapters omitted). Although I would've benefited from even a 0.5% bump, I could respect the prof's decision on a no-curve because one would expect graduate students to be held to a higher bar.
Overall Rating (4.3 / 5): ★★★★☆
Professor Rating (4.3 / 5): ★★★★☆
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (3.9 / 5):
Workload: 15 hours/week
Pros:
1. well organized lectures and materials
2. active support from TA's
3. interesting assignments
Cons:
1. Difficult at times
2.
3.
Detailed Review:
I took NLP in my first semester of starting the program. I have a background in engineering, not CS, but did a fair amount of preparation beforehand. Even then, I experienced a steep learning curve at the beginning of the course. If you are in a similar situation be prepared to catch up on: numerical methods, statistics and coding in python.
Initially, I was unfamiliar with the code framework and had a mini freak-out and thought I would have to drop the course. But, put in the time and you will eventually get through :). I found the Piazza support to be active and helpful, as well as TA office hours (if you came prepared).
The best part of this course was the organization of lectures and assignments. With course material, you truly get exposed to state-of-the-art concepts and the lectures even include references to a bunch of recent papers if you enjoy exploring academically.
The 5 assignments are well thought out and will challenge you. I recommend starting them earlier than later to leave ample time for de-bugging and hyperparameter tuning. Grading is done online instantly, so that's nice.
Assignment (Hours Required for a non-CS background person)
1 (15) - (had to learn Python)
2 (10)
3 (20) -- difficult
4 (15)
5 (25) -- difficult
If I had to improve the course, I would have liked additional assignments that were more "fun" and less theory heavy. Like, just show me some cool stuff.
Overall - great course but be prepared to work if its your 1st semester
Overall Rating (4.3 / 5): ★★★★☆
Professor Rating (4.3 / 5): ★★★★☆
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (2.9 / 5):
Workload: 10 hours/week
Pros:
1. Develops a "scientific literacy" needed to interpret causal results in the real world.
2. Covers a variety of foundational and modern writings on causal inference.
3. Solid textbook, pretty good lectures.
Cons:
1. Assessments
2. Peer grading
3.
Detailed Review:
This course was probably the most divisive in the program, but personally I loved it. Experimental design and proper interpretation of regression results is hardly ever given the attention it deserves, so I appreciate that this course is in our program. The course is more conceptual than technical, and as a practicing data scientist I've probably gained more from this class than the others I've taken so far. This class alone convinced me that I made the right decision to choose UT Austin over Georgia Tech's OMSCS. Lectures are mostly clear, and I especially appreciated the ones where Prof. Zigler walked us through some difficult to navigate papers. TAs were exceptional, and overall I thought communication between course staff and students was solid. Workload was just right imo, and I found the optional extra readings rewarding.
The biggest gripe with this class is the assessments. They definitely forced me to engage closely with the material, but the score I received for some assignments/quizzes didn't reflect the effort I put in. I got an A in the class, so I'm not too salty about it, but the course would be greatly improved if assessments could move beyond multiple choice/ choose all that apply. Peer grading for the quizzes was kind of a mess, as many students were just not equipped to assign a grade to open ended free response questions. Unfortunately, these issues are hard to fix given the large course size. Ideally a class like this would be best suited as a small-sized course with plenty of discussion/free response.
Overall Rating (4.3 / 5): ★★★★☆
Professor Rating (4.3 / 5): ★★★★☆
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (0.7 / 5):
Workload: 2 hours/week
Pros:
1. Interesting content on ethics.
2. Easy weekly assignments.
3. Straightforward midterm and final
4. Easy grading.
Cons:
1. Lots of readings.
2. The 2nd half on *AI* ethics specifically was very narrow and uninteresting.
3.
Detailed Review:
It's been 2 years since I took this class, so I'll forget details, but I remember that there were weekly (or every 2 weeks?) readings and lectures, a short weekly quiz (you only get one attempt though), and then you had to write a couple discussion comments about ethics. Then there was a midterm where you'd ask AI some ethics questions and reflect on that.
Overall it was quite easy. I realized you mostly didn't need to do the readings if you watched the lectures. That being said, the content is pretty interesting. The first half of the class goes over ethics, covering things like western ethics (kant, utilitarianism), eastern ethics (hinduism, buddhism), and other ethics. The second half applied it more to AI. Maybe 2 hours a week of work.
I found the second half less well done and didn't cover much of the interesting current-day AI ethics discussions, including those related to existential risk, AI consciousness and welfare, or evaluating the effect of AI on human meaning and relationships. It was mostly limited to stuff similar to Timnit Gebru and the DAIR Institute. If anything, the professor briefly mentioned and dismissed most of the topics I described as worth discussing in an AI Ethics class.
Overall Rating (4.3 / 5): ★★★★☆
Professor Rating (2.9 / 5): ★★★☆☆
Lecture Rating (2.9 / 5): ★★★☆☆
Difficulty (1.4 / 5):
Workload: 7 hours/week
Pros:
1. Programming assignments are fun, plus there is an autograder for immediate feedback
2. Lectures are straightforward
3. The course staff engagement was excellent
Cons:
1. The format of 4 quizzes for 50% of your grade is objectively bad
2. Final 3oo15 modules of lectures represent ~50% of the course info
Detailed Review:
This class was a blast and very easy to do. Basically just watching 4-5 hours worth of lectures a week and doing a 4-5 hour assignment every two. The assignments are also very fun.
The assignments are basically just different versions of creating an automated board game engine. Also, they are just not very difficult, which is a plus if you're looking for something to pair with another course.
The ED engagement in this course was excellent. Questions were answered super quickly and because everything was automatically graded, the TAs were focused on supporting the students.
Only two real downsides to this class are that the quizzes represent a huge portion of your grade and the last quiz is basically how much information can you regurgitate in a single sitting. Other than that would highly recommend.
Overall Rating (4.3 / 5): ★★★★☆
Professor Rating (5 / 5): ★★★★★
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (2.9 / 5):
Workload: 12 hours/week
Pros:
1. Midterm and final (each 25% of the grade) were very fair, nothing unexpected, very possible to make an A if you prepare adequately
2. Get to be in groups of up to 3 for the projects
3. Interesting, very industry-relevant content; 2nd semester is entirely on containers and serverless architecture
Cons:
1. Some project assignments could be dense and tricky to figure out
2. The textbook probably isn't worth reading; everything you need to know comes from the lectures and the hands-on knowledge you get from doing the project, and the textbook is too dense to be really useful
3. N/A
Detailed Review: I'd heard it's preferable to take Advanced OS before this class, but I went out of order and was OK. I'll take Advanced OS in the upcoming semester so I'll see how much of it would have been useful to know beforehand, but at least it's really not a requirement, just a suggestion.