Overall Rating (4.3 / 5): ★★★★☆
Professor Rating (5 / 5): ★★★★★
Lecture Rating (3.6 / 5): ★★★★☆
Difficulty (2.9 / 5):
Workload: 15 hours/week
Pros:
1. Good progression of difficulty throughout semester.
2. Assignments are well thought out and focus learning
3.
Cons:
1. Android APIs can be frustrating to learn.
2. Takes time to get comfortable with the material.
3.
Detailed Review:
Overall I really liked this course. It is more practical training for a software engineer than any other class I've taken in the program. The assignments were well thought out, and give you enough to start so that you can focus on learning the concepts at hand. Complexity is added as weeks go by and some of the training wheels are taken away.
The time investment will vary greatly depending on your experience. If you are not comfortable with app development it could easily consume 20hrs some weeks.
Of the 8 classes I've taken so far, this is probably my 2nd or 3rd favorite.
Overall Rating (4.3 / 5): ★★★★☆
Professor Rating (5 / 5): ★★★★★
Lecture Rating (5 / 5): ★★★★★
Difficulty (0.7 / 5):
Workload: 8 hours/week
Pros:
1. Lecture and slides very well put together
2. Lots of worksheets and code examples
3. Instructor and TAs very responsive and helpful
4. You will learn R
Cons:
1. Too easy
2. Piazza is impossible to keep up with
3. 100% peer reviewed
Detailed Review:
The class was enjoyable with clear, well organized, interesting lectures and assignments. Lots of easy to follow code examples. You will learn usable R. The instructor and TAs were very active on Piazza and quick to respond to questions.
I have a strong programming and analysis background and I found the course to be very easy. It didn't feel like masters level work. There is a Piazza participation component to the final grade. There were way too many people in the class to be able to keep up with Piazza and I quickly quit trying to do so. The class is 100% peer review grading (which I dislike).
I did purchase Dr. Wilke's book "Fundamentals of Data Visualizations". I like the book and frequently referred to the directory of visualizations in chapter 5 when working projects, but it is definitely not necessary to succeed in the class (and available for free online).
Overall Rating (4.3 / 5): ★★★★☆
Professor Rating (5 / 5): ★★★★★
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (2.1 / 5):
Workload: 8 hours/week
Pros:
1. Solid and clear lectures
2. HWs don't take too much time (~4-5 hours)
3. Weekly office hours held by the Prof. is very helpful
Cons:
1. The MCQ format of the exams can get frustrating especially with no partial grade when you have to answer select all that apply type of questions
2. Few typos in some lectures
3. Boyd book is not very helpful towards the second half of the course
Detailed Review:
I was quite apprehensive when I took the course as it had several negative reviews but look like the Prof. has really put in some effort to make it better. The HWs weightage towards final grade is increased to 45% and the several problems in the HWs were made optional so that HWs on an average takes only about 4-5 hours if you get a good grasp of the lectures. The Prof's weekly office hours is quite helpful to get answers on some gray areas if any in the HWs or lectures - try to utilize it to the max potential. I never attended any TA sessions so cannot comment how useful were those. There are 2 midterms and 1 final and all of them are MCQ format so if you happen to get anything wrong there is no partial credit. The grades are curved so definitely a good possibility to get an A if you get >95% in the HWs and clear the exams with decent grades.
Overall Rating (4.3 / 5): ★★★★☆
Professor Rating (1.4 / 5): ★☆☆☆☆
Lecture Rating (3.6 / 5): ★★★★☆
Difficulty (1.4 / 5):
Workload: 5 hours/week
Pros:
1. Programming assignments are fine
2. First half of lectures are easy to follow
3.
Cons:
1. Second half of the course is an information dump
2. Quiz questions can be ambiguous for the sake of it
3.
Detailed Review:
This is an overall easy course to pair with a harder or more labor-intensive course. Interesting concepts that I'm assuming you'd have seen in some undergrad classes (non-CS undergrad yay), but it's a nice soft introduction to some of the algorithms if you have not seen them before like me.
The class has 4 programming assignments (50% + some extra credit) and 5 quizzes (50%). Everything is autograded, so by the end of the semester you'll know your grade early on.
The programming assignments are generally easy - both in implementation and quality. I will only complain about the final assignment as there were some ambiguities that needed to get ironed out. If you've seen python before, the assignments are doable. The second half of the course, however, is left untouched by the assignments. It's a shame too, since those concepts would have been nice to implement.
The quizzes are generally good as well. Closed-note, but no proctoring as of this review. If you pay attention to the lectures, the quizzes are doable. I do want to put a disclaimer here to not underestimate them like I did from previous reviews lol. Luckily, the two highest scores out of the first three quizzes are kept. By the time the last two quizzes come around, you'll have a good idea of what the questions might look like, so there's that.
Ed support is probably some of the best I've seen in the program so far. TAs are engaged and generally replied to all questions.
Overall, good course to pair up with something with heavier workload or if you're needing a more chill semester.
Overall Rating (4.3 / 5): ★★★★☆
Professor Rating (4.3 / 5): ★★★★☆
Lecture Rating (3.6 / 5): ★★★★☆
Difficulty (5 / 5):
Workload: 20 hours/week
Pros:
1. Learn a lot about the subject matter
2. Improved my coding skills
3. Huge grading curve
Cons:
1. Difficult environment set up that wasted a lot of time
2. Office hours are overcrowded
3.
Detailed Review:
We know at this point that the prerequisite of "1 semester of coding" was far off from reality, more like a couple of years. I would add that coding experience is also not as helpful unless it is OOP. There were some difficult concepts for me to grasp that probably were much simpler to students with a CS background. The course was very challenging and assignments took way longer to complete than what was advertised. Even those that were already very skilled programmers seemed to take longer than expected. I learned a lot from this course, but mostly from the independent study required to complete the assignments. I considered dropping this course after the projects quickly ramped up in difficulty after the first couple but pulled through.
Overall Rating (4.3 / 5): ★★★★☆
Professor Rating (4.3 / 5): ★★★★☆
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (4.3 / 5):
Workload: 16 hours/week
Pros:
1. Great lectures.
2. Good content.
3. Presumably generous curve, and opportunity for "Karma points" which presumably can bump your grade a bit to the next letter if you're borderline.
Cons:
1. Assignments are way more complicated than examples in the lectures. Presumably there's a generous curve, but a score of ~86% with TONS of Karma work still yielded a B+ (pretty much as if little to no curve had been applied). Maybe their curving scheme benefits lower scores more disproportionately; not sure as the strategy was not disclosed.
2. The "hidden tests" are largely useless because you have no feedback as to what the tests are testing for and why they might be failing; even if you perform dozens or even hundreds of other tests to ensure your data structures are correct and your algorithms are efficient, you can still miss points because of some arbitrary "hidden test" they chose to base the grade on. This is not very conducive to learning, compared to letting you know what test is failing, and leave it to you to figure out why and how to fix it.
3. It's terrible that quizzes have a hard deadline and can't be retaken or taken late; some people travel actively for work and internet connections are not always reliable.
Detailed Review: Pretty good course; better than Probability & Inference (the only other one I've taken), but definitely more challenging.
Overall Rating (4.3 / 5): ★★★★☆
Professor Rating (5 / 5): ★★★★★
Lecture Rating (5 / 5): ★★★★★
Difficulty (4.3 / 5):
Workload: 20 hours/week
Pros:
1. Class is heavy on the programming.
2.
3.
Cons:
1. None of the assignments (excluding the final) allow you to start from literal scratch to understand the entire deep learning workflow.
2. Final Project requires more than the allotted time given.
3. The quizzes are annoying since there are so many of them.
Detailed Review:
I really enjoyed this class because you actually get hands on experience with deep learning and you really have to understand what is going on to be able to get everything working. If I can give any advice it would be to start as soon as possible on all assignments because the time allotted for the final project is only a couple of weeks (I think it was 2-3 weeks) which, if you have no prior experience with deep learning outside of this class, is not enough time. I finished all my homeworks early so I had more time to work on it which really saved me in the end. In the end, this class alongside Data Structures and Algorithms have been the 2 most helpful classes in my career so far.
Overall Rating (4.3 / 5): ★★★★☆
Professor Rating (4.3 / 5): ★★★★☆
Lecture Rating (3.6 / 5): ★★★★☆
Difficulty (4.3 / 5):
Workload: 20 hours/week
Pros:
1. Programming heavy and very application focus
2. Lectures are fun and often times not boring
3. TAs are very helpful on Piazza
Cons:
1. VERY heavy workload if you have not done Java and Android development
2. Weekly homework and assignments, making it very very rushing
3. Hard to complete the assignments if you do not have enough time to understand the concepts
Detailed Review:
I strongly advise to only take this one course for the semester if you have not done Java or Android before. Every week there will be one or two deadlines to complete.
Overall Rating (4.3 / 5): ★★★★☆
Professor Rating (3.6 / 5): ★★★★☆
Lecture Rating (3.6 / 5): ★★★★☆
Difficulty (3.2 / 5):
Workload: 9.5 hours/week
Pros:
1. Very useful material: covers many relevant spatial, temporal, and matrix applications
2. Assignments were fairly useful and consistent with the weekly topics
3. Workload was manageable in the summer listing, especially compared to past iterations
Cons:
1. Second professor has fairly poor lectures
2.
3.
Detailed Review:
This was course 7 out of 10 for me in the program and I have to say that I quite enjoyed it.
The first portion is R based with geospatial and time-based analysis. The topics explained were very relevant, although they were taught at such a rapid pace that it was hard to do a deep dive into the concepts before the next big group of models was introduced. I feel like this could have been a whole course in itself, but it makes sense why everything in the course was taught together.
The second portion is Python based with matrix-based models. While I feel that this portion was even more helpful/relevant for general data science, the lectures were not taught particularly well.
Overall this course was quite good and enjoyable. The evaluations were very fair and the workload for the summer was very manageable. This was one of the better organized and designed courses in the program.
Overall Rating (4.3 / 5): ★★★★☆
Professor Rating (5 / 5): ★★★★★
Lecture Rating (5 / 5): ★★★★★
Difficulty (2.1 / 5):
Workload: 13 hours/week
Pros:
1. You actually get to learn about LLMs finally in a deep learning class
2. Compared to NLP, I actually think I got a MUCH better understanding of LLMs because he really goes quite in depth with how to train them and how they work. I am sure NLP did cover part of this material, but it did not "stick" in my mind until now
3. Homeworks are surprisingly pretty straightforward and easy
4. 2nd class with Dr K, and I like his overall teaching style with how he structures his lectures, content, homework structure, etc
5. TAs answer questions in a very helpful manner on the discussion boards
6. You can use LLMs on the homework, and it is (mostly) quite helpful
7. Only 4 homeworks, no exams or major projects
8. I do not work as an MLE, but I feel like if you did or were to, the content in this class would be very, very helpful.
Cons:
1. Tons of lectures, but a lot of it is to give you the development history behind specific models
2. Required quizzes which honestly felt like more busy work than anything
3. You definitely need a relatively modern GPU for this class
Detailed Review:
Feeling a bit lazy considering this is going to be my penultimate review in this program and I am feeling a bit sick while writing this: I think the numbered list above encompasses everything you should know about this class. Definitely one of the best ML/AI classes in the program and I think my placement of taking it (ML/DL -> RL -> NLP -> ADL) was perfect. I definitely get and appreciate LLMs a lot more now. Homeworks, given the course name "Advanced", I had thought would be quite difficult, but he gives you SO much boilerplate code, it's awesome. The READMEs generally do a pretty great job of holding your hand and letting you focus on the actual aspects you need to do and learn from. Really did not require much effort: I took it in the summer, watched the lectures passively while driving, and started on the homeworks maybe like the Thursday before they were due (Monday nights) and that worked out quite well. You could definitely take another class with this during a long semester.
***Forgot to mention: You definitely need a relatively modern GPU for this class. I had a 1070 and that was fine for two of the homeworks but I had to go use my 4070 for the other two homeworks. I personally hate the idea of paying for Collab since I got burned by it during Parallel Systems. I am sure as other reviews have mentioned, there are ways to complete the homeworks without having a personal GPU.