Overall Rating (5 / 5): ★★★★★
Professor Rating (4.3 / 5): ★★★★☆
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (3.6 / 5):
Workload: 17 hours/week
Pros:
1. Projects. Seriously, I loved the projects
2. Responsive TAs
3. Up-to-date
Cons:
1. ALLOT of students. It's popular for a reason
2. Uneven time commitment (projects had varying degrees of difficulty)
3. Really, that's about it. I can't think of a third con.
Detailed Review:
I finished this course just as ChatGPT hit the news. I kind of what to see how the coursework changes in the following semesters. This area is so active, in only a few years, resources can be completely deprecated. And that is a good thing!
I took this as my second course. If I were to reconsider, I probably would take Machine Learning into Deep Learning (not taken yet) and finally into NLP. The DL though is very much optional, but could be helpful as NLP is dominantly concerned with Neural Networks. If you don't already have an ML background, I would consider that course a firm prerequisite.
Overall Rating (5 / 5): ★★★★★
Professor Rating (5 / 5): ★★★★★
Lecture Rating (5 / 5): ★★★★★
Difficulty (3.6 / 5):
Workload: 15 hours/week
Pros:
1. Relevant, updated content
2. Challenging, thought provoking homework
3. Enthusiastic professor (who was also engaged with the class)
Cons:
1. Timed midterm
2.
3.
Detailed Review:
I took this course after it had been refreshed in Fall 2023. I see this falling into two chunks: NLP without transformers, and NLP with transformers. For completeness, the professor goes over a good portion of NLP before transformers came on the scene, but acknowledges which things are no longer really being used, so we don't focus on those (which I appreciate). The transformers chunk is where I feel like I learned the most, because I hadn't worked with them before this (Instead of just using a transformers library, you implement them from scratch!) After the midterm, the lectures become less intense, which was helpful in completing the last homework(s) and project. I think the project is unchanged from previous years, but I liked that it was fairly open-ended and you could take it any direction you wanted. I like that there was a lot of focus on critical thinking about the output of the models in this class and how to identify or maybe fix some of the problems you see or explain some behavior (it's not just programming).
I would suggest anyone new to Pytorch to take DL before this only because there can be a learning curve with that (DL has a very good intro to Pytorch; NLP will introduce you as well, but you are expected to zoom up to speed quickly). As with most other courses some linear algebra and probability would also be useful but not in-depth. TAs were very helpful. Even the professor was active on Ed occasionally! The workload in this class was more intense at the end of the course due to the final project. I don't think I referenced the book beyond the first half of the class very often, but it's useful to supplement the lectures.
Overall this was a great course. The class went by super fast, but it was worth it to feel freshly up-to-date at the end!
Overall Rating (5 / 5): ★★★★★
Professor Rating (0 / 5): ☆☆☆☆☆
Lecture Rating (0 / 5): ☆☆☆☆☆
Difficulty (5 / 5):
Workload: 25 hours/week
My favourite class so far. Lots of work, but worth every minute. You will learn a lot, and it will be very practical knowledge that you can apply in your every day programming. I think every student should take this class. Huge shoutout to the professor and TAs for being very active and helpful on piazza and email. Workload can range from 20 to 30 hours.
Overall Rating (5 / 5): ★★★★★
Professor Rating (0 / 5): ☆☆☆☆☆
Lecture Rating (0 / 5): ☆☆☆☆☆
Difficulty (1.8 / 5):
Workload: 15 hours/week
This has been one of my favorite classes in this program. The lectures are fun and I really felt like I got a lot out of them but the projects/labs are where the real meat of this class is. Given a passing familiarity with parallel programs (basic threading/multiprocesses) most of these were pretty easy. Except CUDA. Prepare to spend some serious time on that lab. Some of the strategies to to these labs are very different than the simple multithreaded version so start them early to make sure you have the time to comfortably read the documentation of whatever language/library you are using because you will need to get comfortable with it. This is typically where the difficulty lies and otherwise the projects are fairly straightforward. Having and IDE or some other tools to give feedback on code other than the sometimes cryptic compilation or runtime errors can be extremely helpful. Everything felt extremely practical and I would be confortable stepping into a codebase that used what we learned in class and feel like I have a clue about what is going on. The lack of a simple autograder for program output makes correctness checking a little difficult.
Overall Rating (5 / 5): ★★★★★
Professor Rating (5 / 5): ★★★★★
Lecture Rating (5 / 5): ★★★★★
Difficulty (2.1 / 5):
Workload: 10 hours/week
Pros:
1. Fun assignments
2. Interesting Lectures
3. Helpful TA's
4. You always know your grades before you submit.
Cons:
1. If you don't know Pytorch I could see this class moving quick.
2.
3.
Detailed Review:
This was a great course. All your grades are known before you submit the assignment (except on the final project) and it is easy enough to get an A if you put in the work. I would strongly suggest you take DL before this course though. Not knowing Pytorch could easily add 5-10 hours per assignment. I loved the assignments and found them quite interesting. The final project is nice because you can take it a lot of different directions. Just make sure you watch the lectures and schedule time to work on the homeworks and you will be good to go.
Overall Rating (5 / 5): ★★★★★
Professor Rating (0 / 5): ☆☆☆☆☆
Lecture Rating (0 / 5): ☆☆☆☆☆
Difficulty (2.9 / 5):
Workload: 15 hours/week
It is an excellent class overall. Pytorch is the framework of use. Highly recommended to have ML background
a priori. The course kind of skips through the ML basics and assumes you can pick it up fast. The programming
assignments are super practical and useful if you find yourself working in this arena in the future. The final
project was quite entertaining and I loved what I ended up coding up. I learned quite a lot in this class. Note
that the class is focused on convolutional neural networks, and somewhat on reinforcement learning. It
only slightly touches on recurrent neural networks.
Overall Rating (5 / 5): ★★★★★
Professor Rating (0 / 5): ☆☆☆☆☆
Lecture Rating (0 / 5): ☆☆☆☆☆
Difficulty (3.9 / 5):
Workload: 17 hours/week
Highly recommend this course. All the projects except for the first one are super fun and interesting. On weeks that projects are due, I definitely spent a lot more time. Professor Rossbach is very engaged with the students, and the TA was also very helpful. Workload can range from 14 to 20 hours
Overall Rating (5 / 5): ★★★★★
Professor Rating (5 / 5): ★★★★★
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (2.9 / 5):
Workload: 15 hours/week
Pros:
1. Very clear explanations of content, understandable even without a lot of prerequisite knowledge.
2. The course is practical, and you are assessed on your ability to build projects.
3. Lectures are digestible in size, and more time will be spent on projects.
Cons:
1. The projects can be very time-consuming if you do not budget your time well and anticipate project workloads far in advance.
2. Some of the content around transformers was very difficult for me to understand, results my vary.
Overall, I would highly recommend this as an excellent course. It is coding heavy and light on math. I truly feel like this is the best course I have taken in a long time.
Overall Rating (5 / 5): ★★★★★
Professor Rating (0 / 5): ☆☆☆☆☆
Lecture Rating (0 / 5): ☆☆☆☆☆
Difficulty (1.8 / 5):
Workload: 15 hours/week
Really enjoyed this course. As others said, the first two HWs are pretty straightforward, particularly if you're using the example code the professor uses in his lectures. However, HW3 takes a large jump in difficulty and the HW assignments diverge significantly from the lecture videos. I strongly suggest getting a jump start on the material even before the semester starts to give yourself a buffer when you hit the later HWs. There's lots of little things that can trip you up, but that aren't clear how to diagnose. The TAs over the summer were awesome and quickly helped with questions, but if they were worse I could see this class being harder. Final project is massive, so definitely start early and get a group to do it together.
Overall Rating (5 / 5): ★★★★★
Professor Rating (5 / 5): ★★★★★
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (2.9 / 5):
Workload: 10 hours/week
Pros:
1. Interesting content that is well taught
2. Super helpful TAs + professors
3. Interesting projects
Cons:
1. Some of the starter code is constructed a little weird and can take some time to figure out how to use.
Detailed Review:
This class is generally well taught and has a bunch of interesting content. Your grade is only based on assignments and a edx quizzes that have unlimited attempts. The assignments are fairly interesting and straightforward, and the TAs were very helpful if people got stuck. Occasionally the starter code for the projects was a bit weirdly constructed, but it didn't take too long to figure out what was required. The final project was open-ended and took a fair bit of work, but it was nothing ridiculous. The professor lectured well and there were usually papers to read if you wanted to go more in-depth. I might recommend taking Deep Learning before this class as the knowledge of pytorch is helpful.