Overall Rating (3.6 / 5): ★★★★☆
Professor Rating (3.6 / 5): ★★★★☆
Lecture Rating (3.6 / 5): ★★★★☆
Difficulty (3.6 / 5):
Workload: 5 hours/week
Pros:
1. It covers well the basics on probability and statistics, acting as a leveling course or to brush up the rust.
2. The statistics part provides a good practice on simulation methods, particularly bootstrapping.
3. The exams are compatible with the other assignments and material presented on lectures.
Cons:
1. There are some lectures on probability that seem to overcomplicate simple topics.
2. Little to none staff presence on Canvas for the probability part.
3.
Detailed Review:
For reference, I had a good previous exposure to math and probability, on a graduate level, and limited exposure to statistics. I spent about 5 hours per week on this course and got a A.
TLDR:
The course is overall a good one if you are not very familiar with probability and statistics or if you need to brush up some concepts. Adivisable for a first course in MSDS for most.
The course is divided between Prof. Muller (probability, first part) and Prof. Parker (statistics).
It has two exams (two hours each), first being exclusively on probability and the second mostly on statistics. Both exams were very practical in nature and reflected well the lectures and other assignments.
There are roughly weekly homeworks (13 in total) and biweekly quizzes (30 minutes timed assignments, 6 in total).
There are some other small proforma assignments (8).
The grade breakdown is like this:
HW: 29%
Others: 1%
Quiz: 30%
Exam 1: 20%
Exam 2: 20%
All assignments are open book and notes. For timed assignments you cannot use others people help, but you were allowed to discuss HW in small groups os students (we arranged this in a discord channel).
There is no curve, but the two worst assignments from each class except for exams are dropped.
You need a 93 for a A and a 80 for a B-.
There were a few instances where we could use either R or Python (mostly in MLE) but they are not strictly necessary.
For the simulation methods Dr. Parker used StatKey, a free online application. While this is not a industry standard, it provides a straight forward manner for us to perform the needed simulations without loosing to much time on the implementation, which I see as a plus at this point. Just be careful to avoid input rounding whenever possible (this was a headache for some in this course).
I found very helpful the course Canvas because one could ask and respond questions from fellow students, which I think is a great method for consolidating understanding. The TAs were not very present. I have not seen Prof. Muller there once. Prof. Parker was aways there on statistics weeks.
The books are fair. Because I had very little experience in statistics I used the lock book the most. Anyway, I don't think they are necessary, but a good complement.
Regarding the lectures, Prof. Muller based his on math derivations followed by applications. I enjoyed the derivations but some complained about notations and unnecessary complications. I idivise to watch the lectures, but avoid getting stuck if you cannot spare the time.
Professor Parker was a little philosophical at times, but overall her lecturers were useful.
Overall Rating (3.6 / 5): ★★★★☆
Professor Rating (2.9 / 5): ★★★☆☆
Lecture Rating (2.9 / 5): ★★★☆☆
Difficulty (1.4 / 5):
Workload: 3 hours/week
Pros:
1. There's plenty of 'free time' in this class; this could be a chance to build your Github data science portfolio with small original/unique projects related to the course topics and, of course, your final project
2. The high-level overview was helpful to me. I have taken DL, ML, and NLP, all of which are far more demanding. Sometimes you can't see the "forest from the trees" in these more rigorous classes because you are too immersed in details, whereas this class was such a breeze that I could sit back and see the "big picture" -- kinda nice to catch my breath for once in this program
3.
Cons:
1. I would have appreciated more interaction, such as making this class more rigorous and tailoring it for portfolio development -- see thoughts below**
2. Reinforcement learning not covered
3. GANs not covered
Detailed Review:
**Suggestion: Perhaps format this class around helping students' develop their personal Github portfolios. Maybe require a a complete README.md that is a well-written overview and implementation for 2-4 projects + code repos that only the TAs review (maybe allow peer review) -- instead of 1 big final write-up at the end.
I think this could be a great class for helping people build not only their ML knowledge and coding skills (and Github collaboration skills!), but just as importantly, their communication/ documentation skills! The Github repos could be material to share with potential employers. It would make this class difficult but very rewarding. A lot of potential here!
Would have been great to also discuss data, data, data! -- where to get it, how to annotate it, clean it, etc. This is probably the biggest hurdle once you get a job in data science or ML.
Overall Rating (3.6 / 5): ★★★★☆
Professor Rating (4.3 / 5): ★★★★☆
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (2.9 / 5):
Workload: 6 hours/week
Pros:
1. Covers a good range of topics
2. Projects 1-5 are quite intriguing
3. Quality of lectures is very good
Cons:
1. Lectures will become outdated soon
2. Final project is not useful
3. Projects don't cover a lot from the second half of the course
Detailed Review:
I felt that this class was fine workload wise because everything is available in the public domain and I was able to finish all the assignments before the semester started. The final project, however, was disappointing as I didn't learn a lot from it even though my team got a good score. I would advice others to not take only DL during a semester but pair it with a tough subject, and finish most of DL before the semester starts.
Overall Rating (3.6 / 5): ★★★★☆
Professor Rating (2.9 / 5): ★★★☆☆
Lecture Rating (2.9 / 5): ★★★☆☆
Difficulty (4.3 / 5):
Workload: 15 hours/week
Pros:
1. TA's were helpful
2. If you have A good background in C its easy, and if you don't it is a good intro
3.
Cons:
1. A lot of work during the summer
2. Lectures and hw didn't really match
3. Hidden tests for hw can be annoying
Detailed Review:
During the summer it is a lot of work, and I felt like some of the assignments should have had more time. However, the course is a decent intro to C if you are new to it, but it will be better in that scenario to take it during the fall or spring as you will have more time to learn as you go. In the summer I only recommend it for people with a decent background/understanding of C. TA's generally responded quite fast. I only watched the lectures around exam time as thats the only place they are quite useful. One big complaint for me were the hidden tests, due to limited submissions onto Canvas, you had to try and figure out all edge cases and hidden scenarios and be able to test them which added more time, which was a bit hard during the fast pace of a summer course.
Textbook isn't necessary but I found it useful in understanding the concepts to prepare for exams.
Overall Rating (3.6 / 5): ★★★★☆
Professor Rating (5 / 5): ★★★★★
Lecture Rating (5 / 5): ★★★★★
Difficulty (2.9 / 5):
Workload: 8 hours/week
Pros:
1. HW required actual coding in Python
2. Clear lectures
3. TAs generally helpful on Piazza
Cons:
1. Several extremely difficult quizzes
2. Most conceptual material not directly relevant to most real-world data science jobs
3. Homework autograder seemed arbitrary sometimes
Detailed Review:
If this is your first experience with Python, you will be in over your head on the homeworks. You should take a crash course in object oriented Python before you start. I have a fair amount of Python experience and each homework still took me 6 or 8 hours. Be prepared for quizzes in the second half of the course to be difficult - the average grades on some quizzes were only a shade above 50%. I still find myself a little bit at a loss for how I could have done better on those quizzes. In the end, the grade distribution was generous, with A being the modal grade and the curve allowing grades as low as 85% or so to be As.
Bottom line: If you know your Python and don't let the occasional tough quiz or weird autograder fluke get to you (knowing that there'll be a decent curve), it's a fairly good class, especially if they smooth out some rough edges.
Overall Rating (3.6 / 5): ★★★★☆
Professor Rating (4.3 / 5): ★★★★☆
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (3.6 / 5):
Workload: 10 hours/week
Pros:
1. I gained a lot of knowledge throughout the semester.
2. The online textbook was easy to understand and follow.
3. The exams were take-home which made it more convenient.
Cons:
1. The piazza support was poor, and most TAs did not seem to care about the students' questions or concerns.
2. The grading process was slow, taking more than a month for most assignments.
3. The TAs and instructors seemed disorganized at times.
Detailed Review:
Unfortunately, the piazza support and TAs were the weakest aspects of the course. While there were five TAs and one professor, only one TA responded to the vast majority of piazza posts. It appeared that many of the TAs did not seem to care in helping the students.
Class is overall okay, can learn a lot and not too difficult too follow even if you don't have much linear algebra material.
Definitely improved from prior iterations but you still need to be self-motivated
Fall 2021CS 395T · Optimization
Overall Rating (3.6 / 5): ★★★★☆
Professor Rating (4.3 / 5): ★★★★☆
Lecture Rating (3.6 / 5): ★★★★☆
Difficulty (1.4 / 5):
Workload: 5 hours/week
Pros:
1. Lectures, particularly Professor Constantine's, were pretty good
2. Problem sets were good for learning and not TOO stressful (generous grading scale with regrades if you get unlucky with bad peer reviewers) with optional problems for deeper dives. Definitely easier than the ML class.
3. Really not much of a time commitment relative to other courses, so ideal to pair this with something else
Cons:
1. Multiple choice exams with all-or-nothing questions (including "select multiple checkboxes" where one mistake means a 0 on the whole question) can be frustrating as a source of assessment. And sometimes the questions had too ambiguous wording.
2. It's very easy to coast thru without learning much if you are perfectly fine getting a B (just turn in everything with a reasonable effort and quickly review prior homeworks before exams).
3. Some logistical issues could have been handled in a more timely manner by the course staff, but nothing too egregious
Detailed Review: I am assuming that you are entering this class with at least a background in undergrad linear algebra (e.g. ulaff) and differential 100-level calculus (being rusty should be ok); otherwise, please don't take this class as you would be learning very inefficiently. Ideally you take this after Advanced Linear Algebra, but really undergrad linear algebra should be enough. Anyway, assuming all that, here goes: At the end of the day, this course from a learning perspective is essentially "you get out of it what you put into it". Professor Constantine added new and very helpful lectures to support the original 2019 lectures and that has given the class a major boost. The problem sets also more closely match what is actually taught in the lectures. The multiple choice exams can be really frustrating with the all-or-nothing nature but there is a nice fat curve to final grades at the end to compensate and you do get your grades back pretty quickly. If you really care about getting an A, I could see the frustration with the exams (though again, there is a nice fat curve at the end), but if you don't care about such things (B is easy to get) and only care about the learning aspect, then this class is actually pretty good IF you are properly self-motivated. But it can get very tempting to coast without learning much if you aren't.
Overall Rating (3.6 / 5): ★★★★☆
Professor Rating (3.6 / 5): ★★★★☆
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (3.6 / 5):
Workload: 12 hours/week
Pros:
1. Applicable and interesting material
2. Strong potential to alter your (critical) thinking skills
3. You will learn
Cons:
1. Official solutions rarely provided
2. Piazza discussions are limited
3. YOUR final grade depends on others' performances
Detailed Review:
This review is mainly to provide an updated review. Many of the earlier reviews still apply.
Regression is listed as a pre-req. I took it concurrently with this class; it is doable if you are willing to learn a couple regression topics on your own. The main tenets of regression are taught before they are needed for this class.
The material is interesting. It will very clearly apply to data science. It will get you to question assumptions about your own thinking and others - which is valuable. Lectures are straightforward. Concepts are not difficult to understand.
Some assignments/questions do seem to make you guess what Dr. Zigler is thinking or meaning which yields ostensible multiple "correct" answers. Often the answer choices have very subtle differences. Sometimes this leads you to get zero points for a question that you narrowed down to two choices because you knew 95% of the correct reasoning. This was the most frustrating aspect of the course. Review lecture notes carefully, even when you don't think you need to.
Official answers are not typically provided. This unfortunately can result in us not learning whatever it was we were supposed to learn - another, but smaller, point of frustration.
Navigating this course's culture on how much discussion with other students would be tolerated was challenging. (Refer to the syllabus and every pre-assignment "no cheating" attestation). Piazza discussions were limited in number from other students and instructors. Help from others was rare for our class but picked up noticeably in the final few weeks. This was in clear contrast to the other 3 courses I've taken where people seem willing to help all semester.
Knowing one's own grade depends on how well or poorly others do can bias how much people are willing to help and how they grade your quizzes. If requested, the TA was willing to regrade your quiz with a good regrading policy.
In contrast to some other reviews, the TA (for summer 2022, Bernardo) was helpful during office hours.
Grading: (similar to other reviews) Grades are based on the distribution of everyone's grades. This is both good and bad. It can be unnerving not knowing how you are doing in the class grade-wise. While the instructors do typically provide the distributions of each assignment, the means vary.
Overall, it's a bittersweet course - It was equally stimulating and frustrating.
Overall Rating (3.6 / 5): ★★★★☆
Professor Rating (3.6 / 5): ★★★★☆
Lecture Rating (3.6 / 5): ★★★★☆
Difficulty (2.9 / 5):
Workload: 8 hours/week
Pros:
1. Strong theoretical foundation in machine learning
2. Moderate time investment
3. Only a few homeworks
Cons:
1. Programming assignments are very simple
2. Math prerequisites are assumed well-learned (not major con, but student beware)
3. Exams graded fairly harshly, but there is a curve
Detailed Review:
This course is split into two halves, one for each professor. I will address them in turn. Furthermore, any students taking this course should be well versed in the basics of linear algebra, calculus, and probability. The course also lists discrete math as a requirement, but that is not really explicitly used for the course.
Part I:
The beginning of the course is focused entirely on some algorithmic methods of machine learning. This leans fairly heavily on the linear algebra side of the equation, with some cases of calculus and probability used to help proofs. The lectures are split into small pieces (very helpful for rewatching / searching for sections), but there is little else to help here. Furthermore, the lectures are lean with very few examples. For those seeking quick and distilled theory, this will work for you. For students seeking more explanation and examples, this section of the class will be wanting. There is a recommended textbook for this half of the course, but it is of little help. It is even denser mathematical proofs with few examples. The material is pretty well represented in lectures, but it may be worth considering outside resources (like YouTube) for further study.
Part II:
The end of the course is very heavily probability focused. Being comfortable with probability is a must. This discusses algorithms to an extent, but spends more time viewing methods from a probabilistic lens. This set of lectures are uploaded as full videos (being regularly ~1 hr long), so the videos are harder to review. The professor does append the handwritten notes from the video AND a text he is working on. Both are valuable resources for quicker review. This section of the course took me more time (most students say the first half takes more time), but the homework assignments were certainly easier in the second half.
In terms of exams this semester, the first exam was pretty straightforward, but challenging. The second exam had more unexpected material and the average score dropped as a result. Furthermore, the grading can be fairly harsh, but there is a curve that can bring up your grade substantially. Furthermore, TAs are the best support you will get from Piazza. The professors do comment, but it is uncommon. I cannot speak to office hours as I could not attend any of them.
Overall, I learned quite a bit in the course, but would have preferred a little more application on the homeworks. This should prove a decent theoretical base for further machine learning study.
Overall Rating (3.6 / 5): ★★★★☆
Professor Rating (3.6 / 5): ★★★★☆
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (1.4 / 5):
Workload: 8 hours/week
Pros:
1. Covers a lot about virtualization
2. Assignments are fun and not too challenging
3. Exams are straightforward
4. Content is tailored towards current research and events
Cons:
1. Staff engagement was very bad
2. Expect little additional directions
3. Grades are coming 3 weeks after the assignments are submitted and you just have to deal
Detailed Review:
I enjoyed the content of this course a lot. The topics were very well put together and relevant to current topics in industry. Exams and assignments were not particularly difficult and this class can easily be paired with another even for those who worked full time.
The assignments are pretty fun, but if you don't take time to understand what you're actually doing, it's quite easy to push some boilerplate code and get next to nothing out of them. The associated readings they pair with the assignments are great for understanding what's actually going on under the hood. It's also clear that this class is meant to be taken after AOS. It definitely is not a prerequisite, but making a set of changes to OS code doesn't really provide you with any understanding of what's going on if you don't understand how an operating system works in the first place.
Also, the fact that you are working on teams isn't really beneficial at all. One person basically does the coding portion while another does the prelab questions. Our team had one individual contribute absolutely nothing for the final 3 assignments and the worst part was, it was hard to fault them, because they didn't have anything to really do.
The bad part of this class didn't really have anything to do with the course. There seems to be a worsening trend in MSCS of the TAs being quite happy to not do anything. The average time to grade an assignment was 2.5 weeks, the engagement on ED was nonexistent, and as always zero flexibility with office hours.
In any case, the scoring won't really reflect that point, but something to keep in mind for the course.