Overall Rating (3.6 / 5): ★★★★☆
Professor Rating (3.6 / 5): ★★★★☆
Lecture Rating (2.1 / 5): ★★☆☆☆
Difficulty (1.4 / 5):
Workload: 12 hours/week
Pros:
1. Demo code provided is well-commented and compliments lectures nicely
2. Project-based, no exams
Cons:
1. Socratic piazza format with lots of over-ambitious students providing incorrect answers
2. Lectures are not very helpful if you are already an experienced programmer demo code is sufficient
Detailed Review:
Project-based course that anyone who his written and delivered production-level application code will find fairly easy. Weekly "flipped classrooms" that take ~1-3 hours to complete and bi-weekly homework assignments that take varying amounts of time (each homework gets progressively more involved) but for anyone with the programming experience I mentioned above, should take no longer than ~15 hours.
Without solid programming experience, I would HIGHLY recommend taking some MOOCs to prepare, as you will find this course work-intensive.
My biggest gripe with this course was Piazza, though the issue may be only specific to this semester. There were plenty of threads that would be answered by students only, with incorrect or incomplete responses, that the instructors would not answer (presumably because Piazza marked the question as "student-answered"). Programming tends to fester egos, so I think this was just the result of several experienced programmers thinking they could answer every Piazza thread by themselves. Questions regrading some unclear corner cases in homework assignments would often take awhile to answer because of this, significantly delaying development/completion efforts.
Overall Rating (3.6 / 5): ★★★★☆
Professor Rating (4.3 / 5): ★★★★☆
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (3.9 / 5):
Workload: 14 hours/week
Pros:
1. Heavily focused on fundamentals of ML that often go neglected in other courses.
2. Notes and Lectures are quite detailed, often didn't need to seek outside resources to understand the material.
3. TAs and Office Hours were very helpful and among the best in the program.
Cons:
1. Peer Grading is annoying
2. Exam format is quite restrictive
3. First half of course can be difficult to understand at points, second half goes by very quickly.
Detailed Review:
I can overall say I'm glad I took this course, it was challenging but not too overwhelming (outside of the first 2 HW assignments). There's definitively more math required than other ML courses in the program (particularly calculus, linear algebra, and statistics) but that allows for a deeper understanding of the material than I got from the other classes on this topic. I'd say the first half of the course is generally more difficult from a conceptual point of view, while the second half requires more math but is overall more straightforward. The Office Hours and support on edx are also quite helpful, especially when compared to some of the other courses in this program.
That being said, there are definitely a few features of this course that prevent it from being perfect. The required peer grading is annoying as many of the other students will randomly take off points from your assignment without comment even if it is virtually identical to the solution. There is an option for a regrade but, it can often take a while and it would just be easier overall either there was no peer grading or stricter guidelines were set for the peer graders. The exam format is also quite annoying: it's open book/notes, but only if they are printed out. For a program that is completely digital, it seems a bit backwards to force students to print the online material out, especially when we already have to share our screen for the exam anyway.
Overall Rating (3.6 / 5): ★★★★☆
Professor Rating (2.9 / 5): ★★★☆☆
Lecture Rating (3.6 / 5): ★★★★☆
Difficulty (2.9 / 5):
Workload: 7 hours/week
Pros:
1. Great TAs
2. Overall useful material
Cons:
1. Two midterms (with some annoying policies)
2. No professor presence on Piazza
3. Compressed schedule (12 weeks vs 14)
Detailed Review:
TAs - Overall TAs did a great job. They were very active on Piazza, held lots of office hours with good times for working professionals, and were very prompt in grading both of the midterms (both graded and returned ~ a week)
Homeworks - As others point out, homeworks get progressively easier as semester progresses. Overall they didn't take up too much time to complete on aggregate.
Midterms - I didn't think the midterms were as difficult as mentioned in some other reviews and were fair in the material you were expected to know. TAs provided some practice exam materials which were around the same level of difficulty as the actual exam, so you weren't too surprised going into it. They also gave a pretty generous timeframe to take the exams. However you had to record yourself and can only bring in printed notes (no electronic notes). I found it super annoying to print out all the lectures notes for the exam, and you definitely want to print them out because you will almost certainly need to reference them extensively.
Professors - They were completely absent from the course. This is the first course I've taken in the program where there was zero professor engagement. Dr. Klivans' recorded lecture were just ok in my opinion, however I did really enjoy Dr. Liu's teaching style and clarity.
Schedule - The course was cut two weeks shorter than normal, making it run at around the same pace as a summer semester. At first this was pretty rough, especially during the first few weeks trying to balance the tougher assignments of this course along with work from the other course I was taking. However by the end of the semester it wasn't too bad to manage due to the easier assignments. In hindsight ended up being a good thing as I could focus all my attention on the final assignment in my other course.
Prerequisites - This is a theory course, so honestly the more math taken beforehand the better in terms of preparedness. I took probability, regression, and LAFF prior to taking this course. Knowing probability and linear algebra is really critical to understanding the material in this course. Taking regression prior is also a major plus as there is a lot of overlap in the topics, and regression is definitely the easier of the two due to the lack of exams.
Overall Rating (3.6 / 5): ★★★★☆
Professor Rating (3.6 / 5): ★★★★☆
Lecture Rating (3.6 / 5): ★★★★☆
Difficulty (3.6 / 5):
Workload: 14 hours/week
Pros:
1. The simulation based approach to statistics was very interesting and practical
2. The midterms and quizzes were fair and the homework problems and lectures prepared me well for the tests
3. The course materials were relatively organized and my questions were answered quickly on Piazza
Cons:
1. The probability portion of the class has a lot of room for improvement
2. The probability lectures often didn't prepare me to solve the probability problems on the homework assignments
3. There were more proof problems than I would have liked
Detailed Review:
This course was divided into a probability section taught by Professor Mueller and a statistics section taught by Professor Parker. Overall, I thought the statistics portion of the course was excellent but the probability section needs to be improved. I loved the simulation-based approach to statistics and the decision to teach this material with Statkey. I have reviewed this fundamental statistics material several times over the last few years but this simulation-based approach helped me see the "big picture" and I am now much more confident about using these methods in my work. In contrast, while the fundamental topics of the probability section were very interesting and useful, there were many other topics that were only briefly mentioned in the lectures (or appeared in the homework with no appearance in the lectures) and were neither explained well enough to fully understand nor motivated well enough to appreciate why they might be useful. I would have liked the probability section to have focused on a subset of the most fundamental material and spent more time on the applications of that material, rather than on theoretical proofs and auxiliary topics which I will likely never revisit.
The quality of the instruction in the statistics section was significantly higher than in the probability section. There were many typos in the lecture slides for the probability section which negatively impacted my ability to understand the material, especially since some of the typos were not acknowledged by Professor Mueller in the video lectures. Also, the lectures for the probability section frequently failed to prepare me to solve the problems on the corresponding homework assignments. Both professors were very likeable and I believe they both want their students to succeed, but Professor Parker was a much more effective instructor. Her video lectures did a great job of explaining the material and I always felt prepared to complete the corresponding homework assignments with little to no external references. There were a few typos in her course materials as well but much less than in the probability section. Professor Parker was also very active on Piazza and made sure to answer student questions in a timely manner. I am very pleased with Professor Parker's instruction but I believe the probability section should be improved.
I did not interact with the TAs but I saw that they were active on Piazza and regularly answered student questions, which was helpful for me as well.
To help put my review in perspective, I received an A in the course.
Overall Rating (3.6 / 5): ★★★★☆
Professor Rating (2.1 / 5): ★★☆☆☆
Lecture Rating (3.6 / 5): ★★★★☆
Difficulty (2.9 / 5):
Workload: 16 hours/week
Pros:
1. Well structured course
2.
3.
Cons:
1. Horrible staff support.
2. Cutthroat grading scale.
3.
Detailed Review:
This class is great for creating a strong foundation in linear algebra. The course is very well laid out, but I would not recommend taking it in the summer as it seems like it was definitely structured to benefit from the longer fall/spring semesters. I don't think the course has changed much in the past few years - there are a total of 9 (weekly in the summer) homework assignments (2 lowest dropped), 1 proctored proof-heavy midterm, 1 take-home coding midterm, and 1 take-home coding final.
You can expect a flipped-classroom-like setting for most of the course - the lectures can sometimes be short and instead guide you to proof a lot of the content to yourself through "homeworks" from the text. Overall, I think this works well for understanding a lot of the content.
The bad: the staff support was horrible for this class. Questions on Ed discussion were completely ignored by the staff, even if they were asked weeks in advance. Not completely unheard of, but the grading can be very cutthroat - you either get 100% for a perfect answer, 50% for a small to semi-large mistake, or 0% for a completely wrong answer. It seemed that sometimes the "perfect" answer meant you had to proof things the exact same way as the key the TAs were given - no alternative proofs. These things combined made for a horrible experience with grading, as you could easily lose points off of your overall grade by small mistakes. Overall, this class can really benefit from revising its grading structure and staff support.
Overall Rating (3.6 / 5): ★★★★☆
Professor Rating (2.9 / 5): ★★★☆☆
Lecture Rating (0.7 / 5): ★☆☆☆☆
Difficulty (1.4 / 5):
Workload: 15 hours/week
Pros:
1. Ample amount of time to 'ACTUALLY READ' the papers given, and experiment on your own.
2. Seung Jun Choi and the rest of the TAs reply almost immediately and the overall availability of staff is there.
3. You get hands-on experience in writing a paper using latex and thinking about building a case for your final paper using academic papers and publications.
Cons:
1. More context on the why rather than the concepts would have added more value to the content. I felt that we covered mechanics and less details on comparative assessments to gain deeper insights. maybe it would be too much, but I would have appreciated the attempt.
2. I think for the lectures, it would be better to give deeper insights, not just covering the slides. for a graduate course, having lectures almost read is not much of a value add.
3. On the research problem, you are almost on your own; Its very hard to get a TA involved in a problem you are facing esp if its core to your model. Its not their fault but its a concern if you are looking for more hand holding.
Detailed Review:
I do agree with some of the feedback regarding the lectures. However, not taking this course is a MISTAKE for those who : 1- Do not have experience in Latex or academic paper writing, 2- Machine learning newbs (Tensorflow, Pytorch) 3- Never read research papers or used them to build a case for their own ideas 3- work full time and or have kids but they need to stay fresh with ML research papers and get a grade for it.
Some reviews state that the workload is 2 hours a week. I think if you watch the lectures on 1.5x and labs on 1.5x you'd have 20 minutes to go over the papers. This is without counting the quiz time if you want to have a full mark. Not sure how 2 hours would work.
If you want to push the limit, you read the papers, and experimented building LSTMs, CNNs and other models on your own then pass over this or take the easy A knowing that you are probably not gaining much.
My experience is different. I read the papers for the first time, experimented with the labs, tried different architectures and optimizations. I never worked on a paper with latex.
If learning on your own, with a guard rail, is what you seek, then this course is the right choice to get into Machine learning and into writing academic papers.
Learned about neural networks and computer vision, but extremely stressful and frustrating at the end.
Fall 2021CS 394D · Deep Learning
Overall Rating (3.6 / 5): ★★★★☆
Professor Rating (2.1 / 5): ★★☆☆☆
Lecture Rating (2.1 / 5): ★★☆☆☆
Difficulty (4.3 / 5):
Workload: 15 hours/week
Pros:
1. Lots of coding in Pytorch/Python
2. Applications course where you learn by doing.
3. Helpful TA's (most of the time)
Cons:
1. Projects can be very complex and unguided.
2. Final project is an absolute nightmare.
3. Models can take a long time to train.
Detailed Review:
I took linear algebra and machine learning before this course. Mainly, that background was helpful for the theory quizzes that we had to take, ~10% of grade. 60% of your grade comes from 5 homework assignments, which range in levels of complexity. They are focused on applying deep learning architectures to play a mariokart-esque video game called SuperTuxKart. The first two are easy to knock out in a reasonable time frame because the prof gives you hints on how to do them in the lectures. However, the 3rd & 4th homeworks were significantly more challenging as they are very complex and have concepts not introduced by the lectures. The 5th homework returns back into to "managable" territory. Luckily, you can drop your lowest score and there's also an extra credit homework.
Then comes the final project, the last 30% of your grade. Everyone is given some skeleton code and asked to split into teams to come up with the best model to play the video game in hockey mode, where the object is to score goals against an opponent instead of drive on a track. This was probably the biggest cluster of a project I've ever seen. My team tried everything we could think of for 4 weeks. Before work, after work, & on the weekends. But had very limited success with our model. Eventually we were able to scrape together some points, but overall what we came up with was a flop, despite how much time we sunk into it. Very frustrating and exhausting. Luckily, the code itself was only worth ~30% of our grade for the project. The other 70% was based on a 1 page write up explaining our approach and all of the things we tried - basically designed to prevent people like me from failing. However, I do know other teams were able to score higher than us and get good grades on the code portion. It's a mystery to me how they did it, though. Maybe you'll be one of those. Or, maybe you'll be one of me. It's a crap-shoot.
Overall, when I look back on this course I'd say that I learned a lot. But, it was very painful. Time investment can vary week to week. I had weeks where I was dumping a ton of time into the class trying to get the projects done. But I also had weeks where I wasn't doing anything for it.
Overall Rating (3.6 / 5): ★★★★☆
Professor Rating (3.6 / 5): ★★★★☆
Lecture Rating (3.6 / 5): ★★★★☆
Difficulty (2.9 / 5):
Workload: 16 hours/week
Pros:
1. Topics are highly relevant to Optimization, ML and many other areas
2. Course authors structured the contents very neatly
3. Head TA was very helpful
Cons:
1. Lack of ownership from current staff
2. Some of the topics covered are very esoteric and useful only in scientific computing
3. High pace in the first few weeks
Detailed Review:
This course should be taken as first course in the program by those who are not familiar with LA beyond vectors and matrices. Without understanding norms, semidefinite matrices and eigenvalues, you cannot learn much of machine learning theory. However new staff were not fully into the materials yet, that was my experience.
However towards second midterm and finals they realized this somehow and graded more leniently. I somehow felt that I did not need to put that much effort into painfully solving the last questions in finals, because they were freely awarded due to lack of time for staff to evaluate 300+ submissions.
Overall Rating (3.6 / 5): ★★★★☆
Professor Rating (2.9 / 5): ★★★☆☆
Lecture Rating (2.1 / 5): ★★☆☆☆
Difficulty (3.6 / 5):
Workload: 30 hours/week
Pros:
1. Excellent TAs
2. Deep Theory Dives
3. Not bad for a first course
Cons:
1. The first half of the course is a gauntlet
2. The assignments are not sufficiently updated between semesters, so some students essentially have cheat-sheets
3. The lectures' usefulness was meh
Detailed Review:
Well, I'll give it this: as soon as I updated my linkedin with this course, I got contacted for a job interview, so that payoff was fast. I will reiterate what the other reviews say: survive the first half of the course, and the second will be comparatively easy. Also, don't panic if you don't feel like you did that well on the first exam. There is a curve. Note though: if they don't update assignments, the curve is likely to get even more skewed. Speaking of assignments, the theory HWs will take more of your time, but the two exams (not cumulative) are 60% of your grade. The programming was useful, but just not nearly as intense. Suggestion though is to do the theory first. It may give you a sense of the pseudocode you need. Finally, go to the office hours, and I mean all of them. I work full time, but I made slots for task. It paid off, heavily. The TAs provided instruction with real feedback. (Also, they kept up with Piazza quite well.) Note: I took this course during the summer, so it was compressed. My 30hrs per week would have been less during a normal semester. Also, I did not come from a CS background, so I definitely needed additional learning compared with the SWEs or stats people in the class.
Overall Rating (3.6 / 5): ★★★★☆
Professor Rating (4.3 / 5): ★★★★☆
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (2.1 / 5):
Workload: 5 hours/week
Pros:
1. Can make it as easy or hard as you want to
2. Good lectures
3. Well organized
Cons:
1. Very easy to take shortcuts if not disciplined
2.
3.
Detailed Review:
This class was fun and is a well run class. It is very low stress, but you can go as in depth as you want with the homeworks. The class is setup to be four homeworks and many quizzes that can be completed on your own schedule (all quizzes due last day of class). Homeworks are spread out over the semester. Lectures are well done. Material is useful and seems practical. The homeworks are very good at applying the material from lecture. The homeworks they give you a local grader to run, so you know when you are on the right track or not. Overall I would recommend taking this class, it gives a good overview of deep learning without adding too much stress to your life.