Overall Rating (2.1 / 5): ★★☆☆☆
Professor Rating (2.9 / 5): ★★★☆☆
Lecture Rating (2.9 / 5): ★★★☆☆
Difficulty (2.9 / 5):
Workload: 15 hours/week
Pros:
1. Interesting topics
2. Grading curve
3. Lenient peer grading of HW
Cons:
1. Unforgiving exams
2. Some lectures hard to follow
3.
Detailed Review:
This class covers some very interesting and important topics. I think that anyone doing machine learning would benefit from understanding this material. Frankly even just linear programming optimization is a really good tool to have in your pocket. I enjoyed Prof Caramanis' lectures because they provided thorough explanation in proofs and examples.
The other lectures in the class were okay, but I often found myself using the textbook or youtube videos to understand some of the concepts better. The homework is good also, though I think there should have been a bit more of it, and it would be helpful if there were questions similar to the exams. In this course I received the worst score I have ever had on an exam and I'm not sure how I could have prepared better. If you had some error, there is no partial credit because they were timed and multiple choice, which was stressful. There was a hefty curve at the end, though.
Overall if they improved the exams and maybe updated some of the lectures, this could be a great class. Our TA was pretty great. Even though it wasn't perfect I did like getting some exposure to these topics.
Overall Rating (2.1 / 5): ★★☆☆☆
Professor Rating (2.9 / 5): ★★★☆☆
Lecture Rating (2.9 / 5): ★★★☆☆
Difficulty (0.7 / 5):
Workload: 2 hours/week
1. Extremely easy class with very little time commitment. 6 quizzes with 10 questions each that are all multiple choice, and then a 3000-5000 word paper at the end on whatever ML related topic you want.
2. Covers a wide breadth of material, so very helpful to see what's happening across a number of different areas of ML research
3. You'll get out of this what you put in. Very easy to coast along, but there's also some interesting material to learn if you're interested
4. TAs are very helpful if you get stuck
5. Paper isn't particularly well defined, so you're somewhat left to your own thoughts on how to pursue.
If you need an easy, low commitment class to fill out your 10 required courses, definitely take this one. If you're looking to get a broad understanding of ML, this is a good course. If you're looking to be challenged and go in depth on particular topics, pick another class.
Overall Rating (2.1 / 5): ★★☆☆☆
Professor Rating (2.9 / 5): ★★★☆☆
Lecture Rating (2.1 / 5): ★★☆☆☆
Difficulty (1.4 / 5):
Workload: 4 hours/week
Pros:
1. Easy to get a good grade
2. Not time consuming
3. Professor engagement on Piazza
Cons:
1. Little to no real world application
2. Uses a web-based software that is used nowhere in industry
3. Grading requires ridiculous accuracy (up to 5 decimal places at times)
Detailed Review:
Especially if you have a probability/stats background, you shouldn't expect to take anything away from this class. The probability portion of the course is highly theoretical, with no software usage whatsoever. You'll be doing plenty of calculations by hand. The grading also frequently requires a numerical answer to several decimal places, so a simple typo can land you a 0 on a problem.
The stats portion of this course is ridiculously easy. It uses a web-based software, which I consider a con because it is useless in the real world. But, this portion of the class is unbelievably easy. You can spend <2 hours per week on this portion of the class on most weeks.
Overall Rating (2.1 / 5): ★★☆☆☆
Professor Rating (0.7 / 5): ★☆☆☆☆
Lecture Rating (1.4 / 5): ★☆☆☆☆
Difficulty (2.9 / 5):
Workload: 10 hours/week
General Thoughts:
This is not really a theory course. Contrary to what others might say and how UT allows this course to satisfy a theory requirement, this course doesn't require that much mathematical maturity. Elementary familiarity with proofs is sufficient. If you don't have that, spending an hour reading primers on writing proofs should be more than enough. TAs were not harsh if proofs or reasoning were not so rigorous. The text is frankly also not that rigorous.
The vast majority of the course is implementing algorithms and routines sketched out in the text.
Pro: You can complete many of the assignments without in-depth knowledge and understanding of the majority of the subjects in the later weeks (week 5 onward).
Con: I was able to complete most assignments and exams without learning much of anything.
Instruction:
There is almost no interaction between the professor and students. All of the lectures, notes, and assignments came from the ALAFF text. We had one hero TA (Youngran) who answered 99% of the questions on Ed.
I was not personally a fan of the lecture videos nor the text. I found them to be lacking in clarity with lots of hand-waving. This was especially true of later weeks where topics discussed the mechanics of specific algorithms but without good and clear explanation of why any of it was important or the motivation.
One major gripe i have about this course has to do with organization. Instructor and TAs had key information related to assignments/exams/course generally spread out on Canvas (either buried in the assignment description or in announcements) or in the Ed Discussion forum. While there was ample support from one TA in Ed, instructors/TAs should figure out how to allow students to tag questions with Assignment # and/or Exam, making it easier to filter threads to find information. This would also reduce question repetition.
Also, if something is a requirement for a specific problem or assignment, it should not be buried in an answer to a question in Ed. It should be explicitly written in an assignment PDF and/or the instructor should be emailing the course to make it clear.
Overall Rating (2.1 / 5): ★★☆☆☆
Professor Rating (2.1 / 5): ★★☆☆☆
Lecture Rating (2.1 / 5): ★★☆☆☆
Difficulty (2.9 / 5):
Workload: 25 hours/week
Pros:
1. Learned about transformers.
2. Assignments were overall okay.
3. Read some cool papers in nlp.
Cons:
1. New material had some issues.
2. Very strict grading from staff / peer reviews were not great.
3. Final project was very limited in scope.
Detailed Review:
I think overall this course was okay. The only issue was it was revamped because of the hype with chatgpt. This translated to some hiccups with the new assignments. For example, there were some bugs and issues within the new assignments.
The professor, Greg, was very responsive. My only issue with him is he does not really wiggle with grading. There were several questions on the midterm that could have been improved and instead of correcting/acknowledging this, student complaints were pretty much ignored. Regrade requests were also pretty strict, or ignored completely.
Peer reviews were as expected, everywhere. The TA grading for the final project (or any written part for an assignment) also seemed a bit random. I think this is due to the enormous class size, so you can imagine a TA takes like 5 minutes to "grade". This results in suboptimal grading for students.
Another note about the final project is that it is very limited in scope. You basically have to analyze datasets and your strategies to improve existing model performance. I think this was done to minimize staff burden in grading (you just see slight variations of student work based off the same scope). Unfortunately, as mentioned above, this resulted in less than ideal grading. What I would have preferred was the ability to work on any NLP-related final project I wanted to, but oh well.
Overall Rating (2.1 / 5): ★★☆☆☆
Professor Rating (0.7 / 5): ★☆☆☆☆
Lecture Rating (1.4 / 5): ★☆☆☆☆
Difficulty (4.3 / 5):
Workload: 20 hours/week
Pros:
1. Helped me learn C and quickly
2. Learned some OS basics I didn't know before
3.
Cons:
1. Projects are in "required" groups of 3-4 and you're on your own picking a solid group. If you care about your grade, you will probably end up doing everything yourself.
2. Projects were not spaced out well in comparison to difficulty. The easiest project had 3 weeks and the harder last projects (while you're trying to study for the Midterm and Final) only have 2 weeks.
3. Very little Prof or TA support
Detailed Review:
Not a great first impression of the program. This class was not designed with working professionals in mind. Projects were due on Fridays, instead of Sundays, so you didn't get the final weekend to work on the projects. Having two exams while doing these Pintos projects were awful. I hope the professor and TAs take the feedback from our cohort and make improvements for the next.
Overall Rating (2.1 / 5): ★★☆☆☆
Professor Rating (2.9 / 5): ★★★☆☆
Lecture Rating (2.9 / 5): ★★★☆☆
Difficulty (2.1 / 5):
Workload: 10 hours/week
Pros:
1. Covers two different and interesting concepts
2. HWs are all Python-based implementations of algorithms discussed in lectures
3. HWs are most of the grade (70%)
Cons:
1. Really should just be two separate courses
2. Didn't feel well prepared for the exams based on the lectures and HWs
Detailed Review:
This really is two separate half-courses merged into one, which I thought was a shame as both topics are interesting and deserve their own class.
The homeworks in the first half (Optimization) are much more involved than the second half (Online Learning), probably allocating an average of 8-10 hours vs 1-2 hours. I think this is mostly a function of the half-and-half split that is this course. Both topics would be better served to be developed further and with more meaningful homeworks/examples than can be done in the half-course given for each subject.
Overall Rating (2.1 / 5): ★★☆☆☆
Professor Rating (0.7 / 5): ★☆☆☆☆
Lecture Rating (3.6 / 5): ★★★★☆
Difficulty (3.6 / 5):
Workload: 20 hours/week
Pros:
1. Textbook and Lecture videos are decent.
2. Depth of content is good
3.
Cons:
1. Worst course support in the program
2. Requirements for assignments unclear
3. Expect your GPA to fall after taking this class
Detailed Review:
It's hard to ascertain if this was the course or the horrible TA and instructor support during the summer offering.
In contrast to the Spring or Fall, this course in the summer moves extremely quickly. Every week there are a set of reading quizzes and a proof/programming assignment. In addition, there are two midterms and a final exam. The weeks of the midterms and finals, you additionally have to complete (rather challenging) proof or programming assignments. This leads to a rather high workload throughout the course which feels like a constant sprint. The textbook is pretty dry as are the lectures, but they are highly informative. Lastly, the assignments are incredibly poorly defined in terms of requirements and clarity.
Starting the summer course, TAs notified the students that there would be office hours on Wednesdays and Thursdays at 1:00 PM CT. When asked if there could be any modification to the times or recordings of the office hours for students that work full time or are international, the staff response was a prompt "get f*****". This ended up not mattering after about 6 weeks, at which point the TAs just stopped showing up to the scheduled office hour slots anyway.
Lastly, to add insult to injury, when the staff was asked for practice materials the answer was "refer to the textbook". The only exception was midterm 1, where a practice midterm was provided. The TAs did not release solutions and instead instructed students to discuss the problems with other students on ED discussion. This was fairly frustrating, as the entire first 1/3rd of this class is learning a very specific syntax and reasoning method that the instructors want you to use via trial and error on the first 4 assignments.
This would have been made better with ED engagement or support, which ended up also being non-existent. The professor was engaged on ED for the first week of the class, after which he disappeared from the course. The rest of the course was run by a TA. In the entirety of the course, there were a total of 40 ED posts and responses submitted by the TAs. Out of these, 18 were grade announcements, office hour cancellations, and date changes.
The remainder were generally snarky posts from a single TA about why they were stupid for not uncovering his hidden test cases in the midterms and assignments, reminding everyone that "yes, it makes sense that if you pass 98/100 test cases your score on this problem should be 15/30", or finally, letting everyone know that "yes your Matlab function should deliver a correct solution for an input matrix that is 1x1 in size." This was followed up by the TAs leaving the students with a "no, this course will in no way be curved" and then archiving the ED forum.
Lastly, the grading was weeks behind the entirety of the class. The final 2 assignment grades, which covered the material of the final exam, were released three days before the final exam was due, as were the grades for the second midterm. Students learned their grade going into the final roughly a day before the Q-drop deadline, which many students used.
With regards to the curve and grading distribution, the following is the distribution of grades for the 93 students who did not withdraw from the course this summer:
A or A-: 32/93
B+, B, or B-: 40/93
C or lower: 20/93
This was sort of a kick in the teeth for those who did poorly considering that in comparison to previous semesters, where 93% of students were receiving a 3.0 or higher, roughly 35% of this class has now received a grade that could conceivably qualify them for academic probation and 20/93 did not meet the credit requirement.
The following were the distribution of grades for the bundled assignments, midterms, and final exam:
Homeworks: Q1: 77%, Median 86%, Q3: 93%
MT1: Q1: 46% Median 63% Q3: 82%
MT2: Q1: 78%, Median 85%, Q3: 93%
Final Exam: Q1: 65%, Median: 80%, Q3: 85%
TLDR: This course is probably okay during the spring or fall, with robust course staff support and a slower pace. In summer, where the quality of instruction is noticeably lower, don't touch it with a 10-foot pole. That is unless of course you enjoy teaching yourself graduate level math directly from the textbook and have all the time in the world.
Overall Rating (2.1 / 5): ★★☆☆☆
Professor Rating (2.1 / 5): ★★☆☆☆
Lecture Rating (2.1 / 5): ★★☆☆☆
Difficulty (2.9 / 5):
Workload: 15 hours/week
Pros:
1. Excellent TAs genuinely invested in your success.
2. Large numbers of attempts on the homework assignments facilitates the learning process.
3. Coding assignments force you to understand the algorithms covered.
Cons:
1. Textbook wholly unsuited for new learners, with weekly high-school-like book reports.
2. Incomplete coverage of important topics in the lectures.
3. Next to no coverage of real-world use cases.
Detailed Review:
The Textbook
Let’s start with the textbook. I see that other reviews are mixed with more positive than negative sentiment. I can’t help but think that most of the positive reviews of the textbook are from people who already had a good amount of knowledge of the subject matter before coming into the course. As a new learner, I found learning from the textbook to be at best an excruciating process and at worst impossible. My biggest complaint is that intuitive explanations are nowhere to be found. The book is also loaded with abrupt changes in subject and notation without any explanation, and oblique statements of important concepts that leave the reader guessing as to their meaning. Kierkegaard is easier to read than some parts of this book. But for the word “introduction” in the title one would think that this book is more intended as a reference for people who already know the subject than it is for the purpose of learning for the first time. For me, most of the actual learning from the book came from poring over the equations and the pseudocode, which are thankfully provided generously.
The Lectures
The shortcomings of the textbook as a learning tool would not have been much of an issue if the lecturers had full coverage of the important concepts, but they did not. The lectures only covered some of the important topics. The others were brushed aside with a statement to the effect of “you can read about this in the textbook.” When the lectures did cover a topic, however. I found them to be helpful in the learning process.
The Homework Assignments / Quizzes
I found these to be quite helpful in the learning process. The large number of attempts allowed virtually guarantees that you will ultimately get every question right. This combined with the explanations provided at the end gives you what you need to learn the material covered. But not everything is covered. I would not have minded a heavier load of these homework assignments in order to get more complete coverage of the key concepts.
The Coding Assignments
I also found these helpful to the learning process. For me, the most challenging part was understanding the workings of the object classes provided and the overall architecture we were required to follow. Once that hurdle was overcome, implementing the algorithm was usually little more than faithfully following the pseudocode from the textbook. I would not have minded more coverage of the later-chapter algorithms in the coding assignments. While the tile coding task was a fun little brain teaser, I see no evidence that anyone has actually used this method of function approximation in the last 15 years. I would have gladly traded this assignment for one involving, say, actor critic.
The Final Exam and Your Grade
Almost everyone goes into the final exam with a perfect or near perfect score. The 25th percentile on each and every homework and coding assignment is a perfect score. Therefore, in effect, your grade rests on your performance on the final exam. There may or may not be a small amount of curving, but I suspect there was no curving with my class due to the relatively high number of As.
BEWARE - the final exam tests material that is not covered in the homework assignments, coding assignments or the lecturers.
TA Sessions
For me, attending the TA sessions was absolutely crucial in both my learning process and in preparing for the final exam. I ended up with an A in the course, and I doubt that would have happened but for my participation in the TA sessions. It’s too bad this review format does not have a field for the TAs. I would give them 7 stars out of 7. I regularly attended the sessions of three different TAs and as each as his or her own style, I greatly benefited from this time investment. I found the TAs to be genuinely invested in the students’ success, regularly going well over the allotted time to make sure that everyone got the attention they needed. If you can’t find the time to attend the TA sessions you’re putting yourself at a disadvantage and missing out on some real learning facilitation and opportunity to connect with others.
Suggested Improvements for the Course
- More complete coverage of key concepts in the lectures.
- Demote the textbook from the primary learning tool to an optional reference.
- Kill the weekly book reports.
- Less emphasis on tabular methods, which have limited to no real-world use cases.
- More emphasis on gradient methods and actor critic methods.
- Less focus on tile coding and more focus on neural networks, kernel methods, Fourier basis and radial basis functions.
- More challenging coding assignments that introduce us to real world use cases.
- Kill or reduce the weight of the final exam and give us a final project.
Overall Rating (2.1 / 5): ★★☆☆☆
Professor Rating (2.1 / 5): ★★☆☆☆
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (1.4 / 5):
Workload: 3 hours/week
Pros:
1. TAs are generally responsive on Ed. For example, I managed to get responses usually within ~1day for matters like faulty submission. For some reason it's easy to get a response for a new thread, but not so easy if it's questions asked in an existing thread.
2. Syllabus covers pretty interesting topics.
3. Generous grading (it seems). Both exams are actually in multi-choice format. For second exam you get full marks if you can answer at least 8 out of 13 correctly.
4. Lecture content from both profs are actually pretty good. For those saying it's dry, do remember that this is a theory course.
Cons:
1. VERY low effort from the Professors. Zero interaction whatsoever. For the first mid-term, several people was pushing for solutions to the questions to learn from their mistakes - as far as I know the TAs tried to email the profs several times but no response, in the end it took months.
2. Assignments from first half was acceptable - i.e. I could still learn from the implementation and reinforced what I learned from the lecture, but the grading rubric etc could be misleading sometimes, showing that it was not properly refined prior to the course. Assignments from the second half was too simple, and I agree with other reviews that it's not really reinforcing much what's learned in the lecture. I can hardly imagine any reason as to not being able to score full marks. To put it quite literally, in every single assignment, as long as your final graph looks like a y = log(x) or y = sqrt(x), you're good to go. The weekly assignment link, like mentioned in other reviews, can sometimes be broken due to a silly copy-paste action from TAs/prof, i.e. the copy-pasting process added something into the URL and causes it to be broken. Grading rubric for this second half was also poorly done and obviously meant for previous semesters, showing the TAs/profs really didn't bother to correct this at all.
3. It's funny writing this now (as of today) because as soon as the final exam was graded, the Ed was archived almost instantaneously. Not sure if this is done by the TA/professors, but it's just unnerving to see such quick response to put an end to the course, leaving many questions in the board unanswered.
Detailed Review:
Overall I walked away from this course having learned something useful (from both halves of the course). While this may well be what the Profs have intended for all of us, I do think we as students should make it loud and clear that the current way of managing this online course is not how an online course should be treated. The lectures have been pre-recorded in earlier semesters which means there's already zero effort in this semester in terms of lectures. Yet this is coupled also with zero effort in grading (because it's automated), zero effort in helping out in Ed and zero effort in maintaining the assignments.
I do think future students reading this should strongly voice their concerns in their communication with the university with regards of what kind of role the professors are expected to play in online courses. I'm 2 years into the program now, and it seems overall it's just a bag of mixed feelings - some professors really put in a lot of effort (e.g. NLP), and some are non-existent throughout the entire course. WHAT'S THE UNIVERSITY'S STANCE ON THIS?
To end this review with a constructive feedback, I would suggest the profs to either take reference to how other online courses in MSCS have been run successfully, or at least manage the expectation about their commitment to the course right from the start.