Overall Rating (1.4 / 5): ★☆☆☆☆
Professor Rating (0.7 / 5): ★☆☆☆☆
Lecture Rating (0.7 / 5): ★☆☆☆☆
Difficulty (1.4 / 5):
Workload: 7 hours/week
Pros:
1. Relatively Easy
2. Quizzes with multiple retries
3. Short lecture vids
4. Decent TAs
Cons:
1. Material bored me and felt pointless/disconnected from reality
2. A lot of by-hand calculations for homeworks
3.
Detailed Review:
Relatively easy class if you want to knock out a few credits. Even during the summer I feel like I breezed through it compared to other classes. 70% of the grade is comprised of: simple reading responses, quizzes with multiple retries, and programming assignments. There is a final exam at the end of the class.
That said, I feel like most of the material went in one ear and out the other. Maybe it's just me, but I didn't feel like I learned anything that would be helpful to me in the future. I was just doing the class to get it done.
Overall Rating (1.4 / 5): ★☆☆☆☆
Professor Rating (1.4 / 5): ★☆☆☆☆
Lecture Rating (2.1 / 5): ★★☆☆☆
Difficulty (2.9 / 5):
Workload: 10 hours/week
Pros:
1. Easy second half
Cons:
1. No cohesion between videos, assignments, and exams
2. Challenging first half, but not in a good way
Detailed Review:
Videos, assignments, and exam did not line up appropriately.
The videos were poorly divided with large amounts of time being devoted to proofs but minimal time being given to motivation. The professor would work through complex substitutions in the proof with absolutely no knowledge on my part of why the substitution was made or what was being worked towards. I desperately needed more information on *why* things were being done rather than the math that showed that the proof worked in a certain way.
The assignments often took the result and just had us implement them - the result seemed to be made obscure in the video maybe to make the homework more challenging, but needing to make the result from the video obscure points to more of a problem with the homework. The algorithm that the professor comes to in the video should be clear.
Many of the algorithms (for example stochastic gradient descent) were extremely easy to understand intuitively, and I'm not sure why the structure wasn't an intuitive explanation followed by a proof - the proof left me more confused and then I had to step back separately to figure out what was happening and come to the intuitive explanation myself.
The exam tested the definitions from the videos when the homeworks hadn't. I believe the homeworks had no definition-based questions because they needed to be peer-graded. However, there could have at least been some multiple choice questions on homeworks to give a taste of what the exam would be like. No practice exam was provided because the class leadership did not want to make an additional exam.
This class left me feeling more stressed than educated.
Overall Rating (1.4 / 5): ★☆☆☆☆
Professor Rating (0.7 / 5): ★☆☆☆☆
Lecture Rating (2.1 / 5): ★★☆☆☆
Difficulty (5 / 5):
Workload: 20 hours/week
Pros:
1. Great textbook
2. Detailed summary of each chapter
3. The sheer amount of homework keeps you engaged in the class by default
Cons:
1. Crammed timeline for summer
2. Uneven and sometimes straight up unfair grading
3. Abysmal TA support
Detailed Review:
Don't even think about taking this class unless you have a strong understanding of undergrad linear algebra AND Mathematic Proofs. It is honestly shocking to me that there is not a prerequisite requirement through UT that students have to take before being allowed to take this class.
As most other posts from this semester state, the TA support was essentially not existent. If questions were asked on EdStem, they were more than likely answered by another student. I got more information from a student made discord than the official discussion boards of the class.
Midterm 1:
This is probably a top 3 hardest exam I have taken. There is so much information that you have to have memorized going into this, that it is almost RNG whether or not you will remember the exact algorithm or equation needed for one of the four to five questions (which is why undergrad linear algebra is an absolute must have). To study, they gave us a practice exam, which was really helpful. The funny thing is that they gave us zero answer key, and when asked about it the TA's response was essentially "figure the answers out yourself". Super helpful and not at all lazy! Personally this led to marks being taken off because my responses were not in the format that they expected.
Speaking of marks being taken off, do not even make a small mistake in any of these exams or homeworks or else you will be punished heavily by the grader. Im talking 10-20% for small mistakes.
Homeworks (proof/coding assignments):
I found these super uneven in their time commitments. During the two weeks of the class, the assignments were an absolute dog fight to complete. The first homework was due the Sunday after the semester started (which was on a Wednesday). Expect to spend minimum 10 hours on the first 4 homeworks each. After the first midterm, the homeworks tend to be a little bit less intense, small proofs and snippets of code for the assignments, which was honestly a relief.
The harsh and intense grading continued in these homeworks. There was almost never a real rubric for how we were graded. I remember for one homework we were supposed to "investigate" a specific algorithm. That was essentially the depth of the rubric. When I received my grade for that homework, I was told my investigation was not to their standard. What the standard was I have no idea, but I essentially received a zero because they didn't think it was enough. Thankfully the lowest 2 grades were dropped out of these, which was relieving, but the harshness of the grading and how rushed it all felt just ended up feeling like a complete mess.
Midterm 2 and Final:
These were fine, open note and untimed. We had more than enough time to complete them (like 7-10 days or something) and the actual content of the midterms were fairly simple. The big gripe that everyone had was for the programming questions there were zero test cases provided by the staff. So hopefully there wasn't an obscure edge case that your code didnt take care of! Some of these algorithms calculate to 10^-7 decimal places, so knowing about these would have been helpful. When asked about it, the staff told us to write our own test cases and that they couldn't tell us how strict they would be on our answers (which essentially meant no rubric).
Overall:
I am not joking when I say that this class had the worst TA support not only in this program but in any college class I have taken. The textbook/ class was written and taught by a professor that has since retired, but the videos are the old ones from years ago. So you are being taught by someone that is not even on staff anymore, which just blows my mind.
This course should just straight up not be offered for summer again. It is too rushed, crammed, and hectic. And if it is, they really should restructure it in a better way. Hopefully the OMSCS programs administration sees the grade distribution (23% of the class did not receive a grade high enough to fulfill the theory credit) and reviews and does something about it. If you do not have the prior knowledge, just take another class for the theory credit and avoid this.
Overall Rating (1.4 / 5): ★☆☆☆☆
Professor Rating (1.4 / 5): ★☆☆☆☆
Lecture Rating (2.1 / 5): ★★☆☆☆
Difficulty (3.6 / 5):
Workload: 10 hours/week
Pros:
1. None
Cons:
1. Confusing course material
2. TAs tried but were generally unhelpful
3. It's the Zigler show!
Detailed Review: I really really hated this course all around. The course material started out interesting, but it quickly became clear that much of what Zigler is teaching is either outdated (1960-70s papers), uncommon (used terms that no one else uses ever) or just wrong. He also chose many articles that were extremely poorly written as examples of certain concepts. It quickly became clear when reading these articles that the question I should be asking is not "what are the authors trying to say?" but "what does Zigler think the article is trying to say?" This made the homework assignments insanely frustrating because even when I thought I had a solid understanding of something while watching lectures and reading the text, I would still get things wrong. Furthermore, there was little guidance on the homework questions that required some statistical analysis in R. We were given some code that was supposed to help us follow the lecture demonstrations, but it was poorly written and very hard to follow. We were left to our own devices for the most part because TAs didn't want to "give away too much."
The lectures themselves were not that bad, but they were not very well organized. Additionally, they often did not cover all of the materials necessary to help you understand the assignment for that week. A lot of the coding information came from external sources. I couldn't find good information/better examples on certain conceptual concepts online because the terms are used only by Zigler and like 2 other scientists from the 1900s. There were also a few times that Zigler said something in Piazza that seemed to contradict something that was said in his own lecture.
The first exam scores disappointed a lot of students because many of the "theoretical" questions seemed to have at least 2 right answers and you were down to blind luck to pick the right ones. While one of the TAs tried very hard throughout the semester to help students with their understanding, it seemed that her primary function was to support Zigler's answers and (sometimes flawed) reasoning for the "correct" answer choices. The amount of mental gymnastics that was required to explain the nuances between almost identical answer choices was astounding. The other TA was much less active and honestly, for a while, I forgot that we had more than 1 TA. I attended his office hours a few times in the beginning, but found his answers to be more detrimental to my understanding than anything else. On more than one occasion, his answers to a pointed question about a concept on the homework made me switch my answer from the correct one to the WRONG one. Hm.
Lastly, the 'quizzes' were not very informative. It was difficult to figure out what the questions were asking a lot of the time, which made it impossible to guess exactly what would score points during the peer grading. I also found that the peer grading was not always very fair or helpful. On many occasions, a student would give me 0 points for a section without explaining themself. Edx also only took the first ~3 grades into consideration when giving you a score, so sometimes the true median of all of your scores (usually 5-8 grades) would be different. Depending on which 3 students graded your assignment first sometimes put your grade down to luck. We then had to email the TAs/instructor to give points back. I realize this is more a limitation of Edx, but it made it no less frustrating because I also feel like double checking grades is not very time consuming and a responsibility of anyone running a course.
I truly hope that this course gets better over time. There was a lot of (constructive) criticism about wording on just about every homework assignment and the midterm, and Zigler seemed to be pretty open about incorporating those changes when he wasn't being elusive. While I cannot say that this course was difficult because the course material itself was difficult, it became difficult due to the poorly explained concepts, confusing wording on assignments/tests and general lack of support.
Overall Rating (1.4 / 5): ★☆☆☆☆
Professor Rating (1.4 / 5): ★☆☆☆☆
Lecture Rating (2.1 / 5): ★★☆☆☆
Difficulty (3.6 / 5):
Workload: 30 hours/week
Pros:
1. Learn about how compilers work
2. Assignments build off one another
3. TAs were awesome
Cons:
1. Despite heavy projects, there are still exams
2. Problem sets (optional)
3. Professor was okay
Detailed Review:
I think the subject of the course is super interesting and the assignments were practical. The TAs for the course were awesome and went out of their way to explain everything.
What I did not like was the optional problem sets as these were used as potential grade boundary decisions. These problem sets were good for studying, but I just did not have much time to give them a 100% of my time. I felt it was difficult to complete these weekly problem sets while trying to write the compiler.
The professor was involved in the course, however, he is a pretty straight-forward type of person to say the least. This translates to an environment that is not really optimal for asking questions. There was a response on Ed from the professor where he said something like, "I don't expect questions like this from a graduate course". I get that, but the backgrounds of students can vary dramatically in this program, so I think that type of mentality is unfortunate.
If you do take this course, I'd recommend reading Crafting Interpreters and building something yourself prior--and use an AST it will save you so much time!
Overall Rating (1.4 / 5): ★☆☆☆☆
Professor Rating (1.4 / 5): ★☆☆☆☆
Lecture Rating (2.9 / 5): ★★★☆☆
Difficulty (4.3 / 5):
Workload: 6 hours/week
Pros:
1. Quizzes were a breeze
2. Learned a lot of basics re: statistics
3. heavy use of statkey for homework which was convenient
Cons:
1. Disorganized
2. Disconnect between material and exams
3. Hard to interact with staff
Detailed Review:
I thought this would be a good first course back into school to get the hang of things. Knowing what I know now, I would have selected something else like data viz. It's important to note that although the material and assignments themselves weren't hard, the sheer disorganization of the course and fickle auto-grading system were what made it more challenging than necessary because I often found myself losing points on technicalities. Coupled with the fact that hundreds of other students were experiencing the same issues, it was extraordinarily difficult to get corrections. It felt as though you needed to have a near-psychopathic relentlessness to advocate for your true score, which left me feeling so defeated I often just accepted spurious results.
My biggest issue with the course was the unnecessary volume with which Dr. Parker posted additional course pdf's and other materials -- some of which was mostly irrelevant, others which were crucial. For example, I missed one pdf which contained specific instructions for the exam that ended up costing me a ton of points, the difference between an entire letter grade in the grand scheme of things. The document was sandwiched between seven or eight others with titles like: "pre-lecture notes" "lecture notes" "post-lecture notes" ... why not just make a singular post called "lecture notes" and avoid cluttering the work space? Better yet, post such important info in the exam instructions.
When I discussed this with Dr. Parker, I could tell that she was overwhelmed with the amount of feedback from students related to re-grades and disorganization and had lost patience. Although I sympathized with the situation, I felt that it would have been appropriate to seek help from other instructors on how to manage the course, or to change assignments to completion credit -- rather than deflect blame back on the students for struggling to deal with such a chaotic class.
Don't bother with textbooks, you can learn all of the concepts in this course with a simple google. The most you need for this class is familiarity with statkey and loads of patience.
Overall Rating (1.4 / 5): ★☆☆☆☆
Professor Rating (0.7 / 5): ★☆☆☆☆
Lecture Rating (0.7 / 5): ★☆☆☆☆
Difficulty (2.9 / 5):
Workload: 10 hours/week
Pros:
1. Interesting Content
2. Responsive TA's
3.
Cons:
1. MIA Professors
2. Class run by TA's and it's not clear they should be running a class or making these types of decisions
3. Disorganization
Detailed Review:
The basic content was interesting, but the lectures were poorly organized with incomplete and poorly stated statements. It was difficult to know what was going to be on the exams. Peer grading is necessarily unfair and random grading. This is what happens when professors make a bunch of videos and walk away from a class, leaving it up to grad students to run a class. This class was on autopilot with students flying the ship. The TA's were dealing with a difficult situation and in some cases became hostile. I would stay away from this class if I had to do it again. I got a B+ in this class which pissed me off b/c I usually get higher. As an example, someone decided to give a bonus point if you completed the ECIS Instructor reviews, but they couldn't even get it together enough to get the actual Professors on the Review, only (some) of the TA's. I certainly would have graded the professors quite low, b/c they did not even participate in the class. The textbook was awesome, but the class had nothing to do with the textbook.
Overall Rating (1.4 / 5): ★☆☆☆☆
Professor Rating (1.4 / 5): ★☆☆☆☆
Lecture Rating (1.4 / 5): ★☆☆☆☆
Difficulty (2.1 / 5):
Workload: 8 hours/week
Pros:
1. Reasonable workload, including for summer. Predictable format week to week.
2. No exams, drop lowest 2 homework grades
3. Professor and TA fairly responsive
Cons:
1. Lectures often refer to data without any context
2. Starter code uses minimalistic naming with poor formatting and most files have no comments
3. No textbook
Detailed Review:
I suppose if there were any silver lining to the class, I was able to sharpen my math skills (including typesetting) a bit given that I don’t have the strongest mathematical background. If you’re in the same boat, I would recommend taking or reviewing probability beforehand, as opposed to taking probability and regression concurrently. This course specifically applies probability distributions, expectation/variance, and maximum likelihood estimators throughout the semester, and at the very least, I was able to solidify some concepts that I wasn’t completely solid on when I took DSC 381.
Prof. Walker was fairly active on the Ed discussion board. The TA and the LF’s were pretty helpful and quick to address issues, including with the peer grading software Peerceptive (which the grad program appears to have scrapped, thankfully). However, the discussion board was a ghost town by the end of the semester, other than when there were grading issues.
Overall, I didn’t really find the class enriching, especially in the broader context of this program, and my thoughts aren’t too much different from most reviews here. The material isn’t presented in a very interesting or applicable way. The lectures and starter code especially are bare bones. I suppose this class is technically “self-contained”, though the content is presented in such an half-baked, sometimes inscrutable manner that people frequently asked for outside resources.
Thankfully, a lot of the topics are covered in other courses. I’m taking machine learning right now, and the two professors teach linear/logistic regression, MLE, Bayesian inference, and EM with so much more clarity.
Overall Rating (1.4 / 5): ★☆☆☆☆
Professor Rating (1.4 / 5): ★☆☆☆☆
Lecture Rating (1.4 / 5): ★☆☆☆☆
Difficulty (3.6 / 5):
Workload: 10 hours/week
Pros:
1. Free textbook and you can easily give the lectures a miss since they're not all that helpful
Cons:
1. The course is heavy on self-study with a textbook that could use some life.
Detailed Review:
The only reason I stuck it out was because it's a tick-box for the degree. Would've bailed otherwise, no question.
Think of this course as a self-guided tour through a textbook – no tour guide, no audio headset, just you and the pages.
Now, about those lectures – they were there, sure, but you won’t miss out on anything crucial if you decide to skip them.
The programming assignments? They're basically translating the book's pseudocode into actual code, which is as fun as watching paint dry, and it doesn't get much more 'real world' than that (read: it doesn’t).
And then we have the reading assignments – put bluntly, they're just busy work.
Sure, I got 90%, but did I come out with any practical skills? Not really. Don’t expect to walk away ready to tackle real-world tech problems. This class felt like putting together IKEA furniture with vague instructions – and no Allen key.
Overall Rating (1.4 / 5): ★☆☆☆☆
Professor Rating (1.4 / 5): ★☆☆☆☆
Lecture Rating (1.4 / 5): ★☆☆☆☆
Difficulty (3.6 / 5):
Workload: 15 hours/week
Pros:
1. 5 multiple choice homeworks to avoid all peer grading.
2. 2 homeworks dropped
3. There are no exams.
Cons:
1. The code. Holy Swiss cheese, Batman! I would have failed any CS class where this was my output. Completely indecipherable.
2. No application to real world data sets.
3. Not sure I feel confident in applying knowledge from the course to a data science problem and isn't that the point?
Detailed Review:
What I hope to gain from this masters is an understanding of the application of mathematics to data science issues. This course is not effective at addressing real world data science wrt regression. I understand the algorithms that can be applied but I don't know when, why, and in many cases how as we never explored the types of data that these algorithms would apply to. The data generated was often purely random based on a generic distribution. As a data scientist- I feel like I should also be aware of issues that arise while evaluating a data set. There are so many data sets available out there that apply to these topics that could have been used to discuss these topics or to compare approaches but the code given was so obscure and difficult to read that I generally ignored it as it would take hours to decipher. You can throw the provided code into ChatGPT and ask it to give you notes on each line which helped to understand what had been coded. (Even the AI was throwing shade about how bad the code was- pointing out inefficient uses of nested loops, extraneous variables that were unused, etc.). The data sets used in problems were meaningless. Why? This topic could be so fascinating if we were gleaning insights from actual data sets- even working the exact same problems. The lectures also simplified derivations to the point that you could do large sections by hand by making assumptions about the data- convenient for the course questions, but not additive career wise as data encountered outside of a pure mathematics distribution would like have pitfalls or issues that I was hoping the instructor could lend their insight to: how to address, how to spot issues, etc. I don't feel well prepared after this course to apply regression concepts to real world data. I'll have to take another outside course to understand this topic from a data science perspective.