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 (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!
Overall Rating (3.6 / 5): ★★★★☆
Professor Rating (5 / 5): ★★★★★
Lecture Rating (5 / 5): ★★★★★
Difficulty (3.6 / 5):
Workload: 8 hours/week
Pros:
1. Lots of helpful example code to get you through first few assignments
2. Due dates were very accommodating for a summer course
3. Professor is very approachable and responsive
Cons:
1. Staff was not prepared for the huge uptake in enrollment this semester (Sum21)
2.
3.
Detailed Review:
Summer is completely doable if you follow the professor's advice and take advantage of the whole MONTH given for the first assignment. The first assignment should take less than a week to do. For the remainder of the entire month, you should work ahead and plan for the rest of the course. Don't wait until deadlines start rolling around to start assignments. If you do, then you get stuck with a new deadline every week after the first free month is over.
All you really need is basic knowledge of python for the assignments. PyTorch is relatively easy to pick up. You should probably also brush up on Calc 2 and 3 for the quizzes. All assignments are public on http://www.philkr.net/dl_class/. It is highly recommended that you start early.
Lectures were good and covered a variety of topics from fully connected networks to POMDPS. The assignments will teach you the basic building blocks of a DNN, how to collect data, and how to train models. I definitely feel that I am more fluent in AI related topics because of this class.
You might not need Colab Pro until HW3, because HW1 and HW2 can be done with just CPU. However, I highly recommend getting it for HW3+. It will save you a lot of frustration from timing out in the middle of a long training session.
Overall Rating (3.6 / 5): ★★★★☆
Professor Rating (4.3 / 5): ★★★★☆
Lecture Rating (3.6 / 5): ★★★★☆
Difficulty (1.4 / 5):
Workload: 12 hours/week
Pros:
1. Light workload
2. Clear lectures
3. Good communication on Piazza
Cons:
1. 2nd half of course does not encourage deep understanding
2.
3.
Detailed Review:
First half of the course is a breeze if you recently took Optimization -- extremely repetitive to that course. The workload was higher than the second half of the course, ~15-18 h/week.
The second half of the course was just alright. The lectures are super high level and the homeworks, while helpful for understanding the algorithms, were extremely light and didn't encourage deeper understanding other than surface level implementation. ~8 h/week