Overall Rating (5 / 5): ★★★★★
Professor Rating (5 / 5): ★★★★★
Lecture Rating (5 / 5): ★★★★★
Difficulty (5 / 5):
Workload: 25 hours/week
Pros:
1. Course material covers a broad range of topics from the ground up (and also covers practical tips and gotchas for implementing them) and is approachable for people without significant DL experience.
2. Course material is well-organized (videos, assignments, and presentations are available online http://www.philkr.net/dl_class/), and assignments highlight interesting applications of DL (mostly with a focus on CV) and make use of SuperTuxKart (a racing game), which I found to be pretty cool (even as a person who doesn't play video games).
3. Assignment grading is automated via Canvas, so feedback on assignments is essentially immediate. Solutions are released after the assignments close, which is useful for figuring out what you did wrong or could improve for the next assignment.
4. Instructor and TAs were extremely responsive on Piazza and genuinely tried their best to help out.
Cons:
1. Taking this course in the summer semester might not be best if you intended to have plans for the summer since the abbreviated class schedule means that this course will likely take up most of your free time if you are working full time. I was able to tune the hyper parameters for my models and monitor training during the work day due to WFH from COVID, but I don't know that I would have been able to complete the assignments on time if I had to go into the office.
2. Assignments can be challenging if you don't have experience developing and tuning CV models, and the performance benchmarks you have to hit are difficult to achieve for later assignments. As someone without that sort of experience, I got really stressed when doing the assignments since it was difficult to disentangle whether failures were due to bad hyper parameters, under-training, bad model architecture or some combination of those issues.
3. Ideally, you probably need to be 1-2 weeks ahead of schedule in order to build up a buffer. The final project is extremely time-consuming (I was putting in 40 hours+ in the last 3 weeks or so) and may not pan out the way you'd hoped, so it would be best if you could build up enough extra credit to where your final grade is not jeopardized by your performance on the final project.
Overall Rating (5 / 5): ★★★★★
Professor Rating (0 / 5): ☆☆☆☆☆
Lecture Rating (0 / 5): ☆☆☆☆☆
Difficulty (2.9 / 5):
Workload: 10 hours/week
"Review at week 10, after assignments 1~5 were done
The content is 50% from the undergraduate classroom course (CS378) and 50% from the graduate classroom course(CS388), though both classroom courses do have a lot of overlapping. It contains the literature as late as 2020. Lectures are 80% about the theory and 20% about literature survey. Presentation is organized by topics and topics may not necessarily tightly connect to each other. Not all topics are equally important, especially in the aspect of assignments. It is an overall a survey course with some emphases on the most popular methods. Some example codes are provided as jumpstarters though they are not discussed in lectures.
The grade is completely assignment-based and the professor offered 15% extra credit (so 93 out of 115% to get A). With autograding and multiple chances to resubmit, you are quite sure what you can get. 4 (#1/2/4/final) assignments are taken from undegraduate course and 2 (#3/5) are from graduate course. Acutally these assignments were simplified with no write-ups required. Assignments are programmed in Python/Pytorch with some basic OOP skills needed. The implementation of Neural Network takes a significant percentage of the workload.
I took ML but not deeping learning previously. I can generally finish the assignments independently without further TA input. Full credit thresholds are not hard to reach with a few hyperparameter trials. Estimated time for 5 biweekly assignments except the final project is 10/10/20/10/15 hours.
Recommended for moderate difficulty, moderate workload, updated content and highly predictable outcome (Reviewer: SD)"
Overall Rating (5 / 5): ★★★★★
Professor Rating (4.3 / 5): ★★★★☆
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (4.3 / 5):
Workload: 15 hours/week
Pros:
1.
2.
3.
Cons:
1.
2.
3.
Detailed Review:
Overall Rating (5 / 5): ★★★★★
Professor Rating (5 / 5): ★★★★★
Lecture Rating (3.6 / 5): ★★★★☆
Difficulty (3.6 / 5):
Workload: 15 hours/week
Pros:
1. The TA's have been great on ED discussions.
2. Introduced fundamentals of good programming, with a lot of enfasis on testing and debugging.
3. Covered the must know algorithms and data structures.
Cons:
1. The lectures are based on a chack board, not aways very organized/easy to read
Detailed Review:
Overall it is a great course. Very well run. Covers the basics really well. Brought me to a whole new level of proficiency/confidence in programming (I had some experience programming, but I do not have a CS background).
Some projects could realistically need +20 hours of work if you are not that experienced with programming. Totally worth it.
If you have a CS background, you will spend a lot less time on this course, and then it could be advisable to pair it with another.
If you can, take it soon into the program, provided you have the time to dedicate. It will impact all the other courses that require an extra dose of programming skills.
Overall Rating (5 / 5): ★★★★★
Professor Rating (0 / 5): ☆☆☆☆☆
Lecture Rating (0 / 5): ☆☆☆☆☆
Difficulty (5 / 5):
Workload: 35 hours/week
Great course. Tremendous amount of work. The projects were cryptic, dense coding trying to figure out what the professor had coded before. The videos were only loosely connected to the projects except a few that had hands on coding examples. For theory it was very loosely stated. It's definitely a great applied course.
Overall Rating (5 / 5): ★★★★★
Professor Rating (5 / 5): ★★★★★
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (2.9 / 5):
Workload: 13 hours/week
Pros:
1. Content is very engaging and relevant
2. Assignments directly tied to relevant NLP models
3. Final project allows creativity
Cons:
1. Lecture content after the midterm seems a bit forgotten/glossed over
2.
3.
Detailed Review:
This is one of the best courses in the program! The content is very engaging and the professor is very knowledgeable and passionate about the subject. Lectures are concise yet informative, and cover a lot of relevant material that includes both models as well as fundamental math/statistical frameworks.
The 4 programming assignments are well-balanced and vary from reasonably straightforward to fairly challenging (Assignment 3). The implementation here is very useful to get good practice with pytorch and understanding the different components of the models.
I found the midterm exam to be quite tricky, and got a lower mark here than everywhere else in the class. Be sure to do all of the edX exercises fully and study all past exam questions thoroughly to get an idea of the types of questions asked.
The final project was open and intended for critical thought. I enjoyed this wrap up to the course as it not only forced a different type of analysis, but also required a very thoughtful written report to clearly communicate ideas.
The only knock on the course was that the lecture content after the midterm seems a bit forgotten, as there isn't a strong reason to dive deeply into the content since there is no evaluation on it.
Overall, this course is fantastic and executed very well!
Overall Rating (5 / 5): ★★★★★
Professor Rating (5 / 5): ★★★★★
Lecture Rating (5 / 5): ★★★★★
Difficulty (0.7 / 5):
Workload: 2 hours/week
Pros:
1. The course is extremely well developed; Professor Wilke clearly knows his subject matter and does a wonderful job explaining the concepts clearly and concisely.
2. Project based assignments.
3. Instructor & TAs are responsive on Piazza/office hours.
Cons:
1. Peer grading
2. N/A
3. N/A
Detailed Review:
Professor Wilke does an outstanding job with this course. He is clearly passionate about the subject matter and does a good job of explaining how data visualization fits into the larger degree program. It is a great class to take if you are just starting the program, especially if you haven't been in a formal academic environment for a few years. The assignments are quite easy (almost too easy), but they definitely give you an opportunity to learn the fundamentals of R and data visualization in general. As the class progresses, you will have more freedom to make creative choices for your visualizations and can really dig into the nitty gritty of ggplot2 as much as you would like.
If you are new to programming, this class can be a good jumping off point to become more familiar with troubleshooting and reviewing documentation; the lectures/assignment instructions don't always provide the details necessary to generate the right plot. Though, to be fair, those situations are the exception rather than the norm. Professor Wilke typically breaks his lectures up into a theory component and practical component. You will usually get one video on theory/abstract principles for data visualization in general, followed by a second video describing how to implement those principles in R/ggplot2. I personally enjoyed this format, but it may not be for everyone.
I have a strong distaste for peer grading in general, but there quite a bit of thought put into this course to mitigate any issues that may arise from peer grading. You also have the opportunity to dispute grades with the instructor/TAs if you believe that you have been slighted. I never had to go that route, but it is worth noting that it is available.
All in all, I loved this class. My only regret is that it was the only class I took this semester. Based on the workload, I could have paired this with another course, even while working full time.
Overall Rating (5 / 5): ★★★★★
Professor Rating (4.3 / 5): ★★★★☆
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (2.9 / 5):
Workload: 5 hours/week
Pros:
1. Python programming for all assignments. Python familiar peeps would have absolutely no problem
2. Lecturer and TAs are very responsive on Piazza and gradescope in convenient to use
3. Materials such as lecture notes are quite good but you do have to read up some things on your own
Cons:
1. One of the assignments needs Java and no installation instructions were provided
2. Libraries used for each assignment are not in the assignment question
3. Some assignments are hyperparameter tuning heavy
Detailed Review:
If you have decent math, stats, and Python background, this class can be enjoyable. Else, you'd find yourself spending time looking up the fundamentals.
Overall Rating (5 / 5): ★★★★★
Professor Rating (4.3 / 5): ★★★★☆
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (2.1 / 5):
Workload: 10 hours/week
Pros:
1. Unlimited number of submission
2. Hands on
3. Well structured
Cons:
1. Not enough content
2.
3.
Detailed Review:
Very good class. However, I'm not sure I'm ready to tackle real problems (even though I got a 115% grade)
Overall Rating (5 / 5): ★★★★★
Professor Rating (5 / 5): ★★★★★
Lecture Rating (5 / 5): ★★★★★
Difficulty (2.9 / 5):
Workload: 15 hours/week
Pros:
1. Professors do a great job of presenting theoretical material
2. Lectures are largely self-contained (you don't really need to read textbooks outside of the provided notes)
3. TAs are helpful and patient. Peer graders are generally encouraging and nice as well :)
Cons:
1. It's a larger intro class, so some people might find the learning curve steep while other people have been exposed to the material before
2. Peer grading can be hit-or-miss since there aren't clear guidelines for grading (you're given the solutions, but there isn't a standardized grading rubric)
3. Problem sets can be time-consuming, especially if you want to typeset with LaTeX
Detailed Review:
I think that this course is a really solid introduction to ML theory. Given the complexity of the material, the professors really seem to make an effort at presenting the information in an intuitive but rigorous way.