Overall Rating (3.6 / 5): ★★★★☆
Professor Rating (4.3 / 5): ★★★★☆
Lecture Rating (2.9 / 5): ★★★☆☆
Difficulty (4.3 / 5):
Workload: 20 hours/week
Pros:
1. Interesting topics
2. TAs and professor helpful on piazza
3. Really develops your python and ML skills
Cons:
1. VERY difficult with no prior ML and Pytorch experience, BIG difficulty spike after A2
2. Can get overwhelming since you only have 2 weeks for some of the assignments
3. Lectures after A3 aren't helpful with the homework
Detailed Review:
Note: I had a good amount of python and no ML experience prior to this course. This is the 4th class I've taken
This class gives a great intro to NLP. The cadence is completing the 2-week modules of lectures and supporting questions on EdX, then doing the 5 homework assignments in total. The final was to make a change to a model and write a paper on it.
The pros are that the lectures are very interesting and the assignments are well thought out. The TAs and professor were great too. Also, I enjoyed the subject and writing for the final, and I became much more competent with PyTorch.
For me, the class was not smooth sailing at all though. The first four weeks and two assignments were fine. I watched the lectures and completed the assignments in ~10 hours with only asking one question on piazza. Once assignment 3 hit, it got a LOT more demanding. I easily put in 30hr or more into A3 and still ended up not getting an A. A4 and A5 did not get easier as the relevant lectures gave little technical direction. During this section, I had to take off days at work to make sure I could get everything completed.
With the grading scale being "Hit this accuracy or you get an F," this was not welcoming to newbies unless you absolutely no-life the last half of the course like I did. I ended up with a good grade, but this was easily the hardest course I've taken.
Overall Rating (3.6 / 5): ★★★★☆
Professor Rating (3.6 / 5): ★★★★☆
Lecture Rating (2.9 / 5): ★★★☆☆
Difficulty (4.3 / 5):
Workload: 16 hours/week
Pros:
1. Professor Mary Parker is very helpful, engaging, and responsive.
2. The students are knowledgeable and class community are collaborative and added significant value. Students actively engaged in clarifying content and correcting errors, particularly on Ed discussions
3. Statistics component is much more application based and the overall class did enhance my understanding of statistical concepts.
Cons:
1. The probability content leaned heavily on theory, often making it challenging to grasp. The lecture notes and videos, being directly derived from the textbook and therefore does not add additional value.
2. Need external resources to supplement learning and understanding.
3. Homework are very theory based and requires a lot of time to do.
DSC381 was a challenging yet rewarding course, deepening my understanding of both theoretical and practical aspects of probability and inference. While there were gaps in the execution of the probability section, Mary Parker’s support and the collaborative class environment were invaluable to my learning.
The required textbooks, available online for free, were a mixed experience. The probability textbook was highly theoretical and lacked practical applications, making it difficult to follow. A more balanced textbook or supplementary materials focusing on real-world examples would improve the learning experience.
Mary Parker’s lectures were clear, well-paced, and engaging, providing solid explanations of the material. However, Peter Muller’s lectures were dry and at times unclear, which hindered engagement. More examples and practical applications in these lectures would have made the content easier to understand.
The lecture notes closely mirrored the textbook but did not provide much additional insight. They lacked sufficient context or application-based explanations, which would have been helpful for students struggling with the theory. More detailed, application-oriented notes would have been beneficial.
The workload was substantial but justified by the depth of the material. Study groups were essential for managing the workload and filling in the gaps left by unclear examples in the lecture notes.
Professor Mary Parker’s support was excellent—she was always available during office hours and went above and beyond to ensure students understood the material. I highly recommend attending her office hours. There was no office hours for Professor Muller.
Some of the TAs were helpful but not exceptional. While they provided basic support, they were not always effective at addressing common questions. I found attending Professor Parker’s office hours to be more useful.
Grading was delayed, which made it difficult to assess progress in a timely manner. While answer keys for homework and quizzes were provided, detailed feedback on specific mistakes was lacking. Timelier grading and more thorough feedback would help students identify knowledge gaps and improve performance.
Overall, the course content was strong, particularly in the statistics section. However, the probability portion was more theoretical and could have benefitted from more practical applications to align with the applied nature of the statistics content.
Overall Rating (3.6 / 5): ★★★★☆
Professor Rating (4.3 / 5): ★★★★☆
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (2.1 / 5):
Workload: 13 hours/week
Pros:
1. Felt like I obtained a good understanding of the theory behind RL
2. Overall class is pretty easy, perfect to take during the summer
3. Professors were nice and had an AMA at the very end of the class
Cons:
1. Writing summaries for each chapter was extremely annoying
2. You're graded on your final answer and its very easy to mess up the computation purely due to arithmetic errors
3. Yes, I'm saying it again: writing summaries for each chapter was super annoying
Detailed Review:
For one last time, having to write summaries for each chapter made me feel like in high school or even middle school again. They should just make the problem sets after each module bigger and make us do those instead. I will admit though, it actually was interesting to read the book at times, especially when they try to compare all the techniques. They really only do that occasionally though, sometimes it gets confusing to follow the logical ordering they're going in and you have to synthesize the comparisons yourself.
Since RL calculations depend on other RL calculations, if you make one dumb mistake early on, the rest of your calculations are wrong then. Not really a way around this, but just be very very careful and always double check your work. You do get multiple tries on the problem sets which is really nice, but you of course do not get on this on the final exam.
Like I said, my memory is hazy, but I think there was only a single exam, the final. It was pretty fair with a couple tricky questions, but be careful: you have access to pretty much everything, including the lectures and textbook (no LLMs though), but given the number of questions, you definitely do not have enough time to search for all the answers. Funnily enough, being forced to write the summaries helps you a lot here, and so does reviewing the lectures where the professor walks through specific numeric examples (ESPECIALLY the grid ones).
Overall, the class was decently easy. Took it in the summer, so with the shorter timeframe, there was always something due every week, namely a chapter summary. I think like every 3-4 weeks there was a programming assignment. They could take a bit to get your mind wrapped around on what to actually do, but they gave you test cases you needed to pass, so it's straightforward at the end of the day.
Finally, I took this class after taking ML and DL. I don't really think the order matters, but I do like that I took it after those (and before NLP). You don't directly need ML for this, but that class exposes you to ML in general, while this class is focused on RL directly. As for DL, there is an assignment or two where you need to make a neural network, and if you have taken DL, it's very easy. Moreover, there was a chapter touched on the concepts of DL and helped solidify those concepts for me.
Overall Rating (3.6 / 5): ★★★★☆
Professor Rating (4.3 / 5): ★★★★☆
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (0.7 / 5):
Workload: 2 hours/week
Pros:
1. Good and concise lectures
2. As well organized as things get in this program
3. Easy A
Cons:
1. Piazza "participation" required
2. Only focused on one tool (ggplot)
3.
Detailed Review:
This course hits the goldilocks zone of being easy but also being useful. The lectures are good (much better than most other courses I've taken) but I ultimately didn't watch all of them.
I think this is a decent course to take as your first in the program or paired with one of the harder classes (assuming you are working full-time). I took it with Deep Learning.
The assignments are pretty unexciting, most of them are basically just telling you what visualization to make and you copy the code from the lecture slides. I feel like this course would work well with a final project where we can find our own dataset and make our own report.
I wish this course was more tool-agnostic than it was. Every assignment was in ggplot R code and a lot of the lectures are about getting used to the giant programming anti-pattern that R is. Considering how many tools exist today, I feel like we could learn more broadly applicable information with just markers and paper creating visualizations by hand rather than sifting down with R documentation for an hour at a time.
Unless you forget to do a peer evaluation or forget to turn something in, you should easily get an A in this course.
Overall Rating (3.6 / 5): ★★★★☆
Professor Rating (4.3 / 5): ★★★★☆
Lecture Rating (2.9 / 5): ★★★☆☆
Difficulty (2.9 / 5):
Workload: 12 hours/week
Pros:
1. Helps to have the correct mindset to read scientific papers
2.
3.
Cons:
1. Not enough content
2.
3.
Detailed Review:
The first 2 homework were the toughest. I took it during the summer so maybe it's because of that.
I learned a good amount of theory but I feel not enough content.
Some TAs were not that helpful.
The second part was easier to follow.
Overall Rating (3.6 / 5): ★★★★☆
Professor Rating (4.3 / 5): ★★★★☆
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (3.6 / 5):
Workload: 20 hours/week
Pros:
1. Professor is very knowledgeable and passionate on the subject. He spends time teaching the concepts. The delivery is not at all hurried so you can understand concepts
2. Labs (once you know how to do) are very good and directly relate to concepts being taught
3. Exams questions were pretty good and makes you apply all the knowledge
Cons:
1. MIA TAs - Piazza was completely driven by Students. TAs would rarely answer a question and if they do , it will be weeks after
2. Assignments were poorly driven- test cases were more often than not wrong. Students fixed and provided correct test cases, TAs were completely clueless
3. Very excessive workload. At the end it felt as if everything was crammed up. This course definitely has enough material to be driven as two separate courses. Even though the topic is interesting, too much content made it very hard to learn
Detailed Review:
Overall Rating (3.6 / 5): ★★★★☆
Professor Rating (3.6 / 5): ★★★★☆
Lecture Rating (3.6 / 5): ★★★★☆
Difficulty (2.1 / 5):
Workload: 11 hours/week
Pros:
1. Good introduction to OS fundamentals
2. Practical experience by working with the xv6 kernel
3. Lectures and book are well aligned with projects and exams
Cons:
1. "Advanced" topics are covered, but far from the focus of the class
2. Team projects are difficult to collaborate on
Detailed Review:
As I hadn't taken an OS course before, I appreciated how this covered the fundamentals (as the book is titled "Three Easy Pieces"). However, if you have already taken an OS course, I suspect much of this will be review. Some advanced topics were covered, but they weren't anything too novel.
The projects heavily rely on C and pointers, so if you aren't familiar it will take self directed time to learn. Projects count for the vast majority of the grade. They are done as a team that is formed by the students, so it's luck of the draw if you get a team that is able to contribute or not. The projects can be very difficult to divide the work and will likely have a single person doing most of the heavy lifting. Fortunately, tests are provided before submission which can be used to validate your solution.
Exams followed lectures closely, were open notes, and overall not too difficult.
Overall, I recommend this course so long as you aren't looking for truly "advanced" OS work.
Overall Rating (3.6 / 5): ★★★★☆
Professor Rating (4.3 / 5): ★★★★☆
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (2.1 / 5):
Workload: 7 hours/week
It's very good organized course that touches all concepts in probability including discreet and continuous random variables, and import statistics and how to calculate them for various types of RVs. I think that the inference part of the course could be organized better.
Overall Rating (3.6 / 5): ★★★★☆
Professor Rating (3.6 / 5): ★★★★☆
Lecture Rating (2.1 / 5): ★★☆☆☆
Difficulty (2.9 / 5):
Workload: 13 hours/week
This course is purely about programming exercises. If you've shipped code before, this won't be particularly challenging. If you're relatively new to programming, it'll be a fair amount of work. There's helpful code in the class exercises, but a fair amount of figuring it out on your own. Some of the lectures are outdated so are no longer relevant, and the teacher/TAs help on Piazza using the Socratic method which isn't particularly helpful.
Watch the videos and use the demo code to get you through the homework exercises.
Overall Rating (3.6 / 5): ★★★★☆
Professor Rating (4.3 / 5): ★★★★☆
Lecture Rating (3.6 / 5): ★★★★☆
Difficulty (4.3 / 5):
Workload: 4.1 hours/week
Pros:
1. Great balance of theory and application
2. Nice general perspective on supervised ML
3. Very engaged teachers who teach on the students’ level
Cons:
1. First part of the class introduces ML in a “different” way
2. First half of class is intense
Detailed Review:
Pros:
1. This class ranges in the lecture and homework from theory to mathematical examples to implementing math in code to using some real packages. I loved this wide range of theory to application. It made the class feel very well rounded and helped me to understand things from the ground up
2. Given I’ve had some previous experience with ML modeling, the way ML was brought up in the beginning of the class was a bit strange to me (PAC learning, function classes, etc). But over time I appreciated the theoretical approach. I was used to jumping straight into model training, prediction, accuracy and all of the buzz word terms. They also presented the concepts of K-Means, PCA, NNs, Kernel Methods and other topics in an easy-to-understand way. In general, the teaching approaches were engaging and refreshing.
3. This course is broken up into 2 parts with a different professor for each part. I felt both professors were great teachers. The first part of the class is taught with Professor Klivans writing his lecture out on an iPad while addressing a room full of students. He asks a lot of questions and talks through everything he writes. The second part of the course is taught by Professor Liu. Liu writes out his whole lecture throughout the videos and talks through everything he writes (no reading through powerpoint slides). I found both lecture styles to be very engaging and interactive. This was one of my favorite parts of the course.
Cons:
1. As mentioned above, the introduction to ML by Professor Klivans is a bit different than the traditional approach to ML. I came to appreciate the perspective, but it was difficult to follow at first. Just beware the the first couple of units will take more time to decipher and digest than the rest of the class.
2. On top of the different approach, the first half of the class is intense in general. The assignments are complex, the lectures are dense and the exam is difficult. I definitely think the material is valuable, but it can be a lot to get through, especially compared to the lighter second half of the class. Again, beware of this and try to plan more time for the first half of the class.
Ultimately, I really enjoyed this course. The material was interesting, the professors were engaging and the course was impactful. The first half the course is intense, but getting through it will be valuable. Best of luck!