CS-7641 - Machine Learning

Search for a Course:

    ML
    Toggle to Select Spcific Semesters

    Reviews


    Semester:

    This really sucks to say because the learning material for this course is great and really really fun and really well done, but I strongly recommend not taking this course. Tons of mental strain trying to figure out awful instructions for the projects and insanely vague grading standards. Each project was ridiculously painful to complete, not only did they ask for like a thousand graphs of pointless stuff, but in addition would ask “now discuss your results” and you’re left with an insane amount of data and code and most of it totally inconclusive.

    Like try to discuss why running K means clustering on data reduced by ICA on some dataset you found online for which ICA is totally irrelevant has a different convergence pattern than K means run on the same data reduced by PCA… ????

    The instructors seem to be completely obtusely aware of the fact that their course structure has massive downsides and do not care at all, and try to provide any range of justifications on the forums, despite the fact that this is the only class I’ve ever taken in undergrad or 9 masters courses where the students had absolutely no clue what their final grade would be, and had no clue the standards for any assignment. It’s just silly.

    The professors seem to have really funny sarcastic personalities, and these are truly fantastic for the recorded lectures, but they somehow aren’t able to turn it off for stressed out anxious students asking “please tell me if i’m going to fail this class” or something similar in the discussion forums.

    I talked to someone who took the in person section and apparently it’s like an actual course with real assignments and a group project… why not just do that online?

    the lack of guidance and the grading standards left me zero motivation to try to have any insight at all on my assignments. I just pumped out garbage for the last two and since there was so much busy work (the third one specifically asked for like a thousand graphs to the point where I had to reduce margins as low as possible to fit within the required 10 page limit), I guess that drowned out the crappy work, and i got higher grades than the first 2, which were about 50%s, which was just about the median grade, which apparently corresponds to an A? I have no clue. It’s just dumb


    Semester:

    Just got done with this class although none of the meaningless grades have been returned. If you want to do well, just watch Josh Starmer’s StatQuest videos.

    PROS

    • Talks about ML which is cool I guess
    • Can give you the baseline of what to research on your own
    • Grades are tbd but from what I can reckon, if you submit all your work, you will get a B

    CONS

    • Grades are all over the place. So far, i’ve gotten pretty good grades on everything so I expect an A but I have no idea.
    • The Professors preach that grades don’t matter but then turn around an require a B or A to pass courses in your specialization
    • The schedule of the assignments is made just to mess with you. No reason there should be a week period with 3 items due, but start the the class with 4 weeks of nothing.
    • The lectures. I know people say they are good but there is much better on youtube. StatQuest videos are the way to go.
    • I’m only 1 of I think 3 people that got any points on a random test question just because I knew the answer from statquest while the real lectures never mentioned it
    • The professors seem like great people but get lost in talking in riddles. Don’t ever expect a direct answer from anyone.

    I took this class with IAM which I’m glad I did because IAM had much better lectures, so I was able to learn from those lectures and apply my knowledge to this class.


    Semester:

    This course has some very good things and some very bad things. I am into ML and have done a couple of MOOCs and work on NLP projects in my company. So I come from a very solid understanding of ML from an applied side but this course pushes you to think beyond applied ML and into the empirical side of it. Here are a few things Good and Bad things:

    Good:

    1. It’s a fun way to learn about the subject through 2 people discussing it (Check why this is also bad)
    2. The topics are very well selected and cover a good spectrum of ML. However I think it should be broken into 2 courses (I and II), there are so many things that didn’t get covered.
    3. Office Hour helps answer so many questions and Dan is awesome and tries very hard to answer all the questions.

    Bad:

    1. Projects are open-ended & excruciating and students spend the majority of their time chasing them. It hampers their learning. I didn’t get any chance to go over Mitchel chapters. Let’s be honest, most are chasing grades and GPA.
    2. The style of teaching is sometimes complex and often complex math is introduced without explaining the concepts well. It took me some time to get a grip on MDP’s until I stumbled upon a Stanford Lecture on it. Check this and you will see how well it was articulated -> (https://www.youtube.com/watch?v=9g32v7bK3Co&t=563s)
    3. Grading is a blackbox without a Rubric.

    Overall i am Ok with the course, learned a lot of new things but the experience was bitter. I might have thought multiple times to quit it. Today I gave my final exams and I look back and would say, its was OK, just hang onto this class.

    Lastly, come prepared by taking some ML MOOC classes and also refresh your linear algebra and predicate calculus concepts before taking this course otherwise you will be amongst 33% of dropouts.


    Semester:

    Echoing what others have stated. The lectures are great and I feel I learned a lot and had fun watching them. The assignments are brutal. Office hours are a requirement if you want to remotely know what the TA’s are looking for. A big part of the assignments that bothered me was their open ended nature. I’m sure many students will learn by “exploring” the subject but for me it was just stressful and anxiety inducing. I need hard requirements like it IHPC where if you want an A you are asked to get the program to run below x seconds. Asked to “explore” does not work for my learning style and I feel i did not learn nearly as much as I would have had I been tasked a more focused assignment.
    Switching to Computing Systems after taking this class in fear that any other machine learning classes are remotely like this one (plus computing systems has a ton of classes i’m interested in)


    Semester:

    Previous assignment grades are released after submission deadline of next assignment.

    This is the case till now. So how do we use feedback from previous assignments?

    It’d be a miracle if we get grades for A3 before A4 due date

    Edit: we did not


    Semester:

    The course videos are OK but the TAs are Terrible. I strongly suggest the TAs let go of their arrogance and clearly describe everything required in the assignments. Students do not have time to play such boring riddle games with you.


    Semester:

    Positives:

    • Open-ended. Keeps us on the edge. Can share own inputs
    • Tests understanding instead of guessing
    • Good Exam Structure

    Negatives:

    • We haven’t received any grade back at all. A1 - no grade so far ; Problem sets aren’t looked and graded. Exams aren’t graded yet (at least that’s understandable).

    • No way for a student to incorporate feedback from previous assignment to the next one.

    • Harsh schedule. Having midterm and due date for A2 on the same week is not right.


    Semester:

    This class could really do a lot better, the material is very interesting but the grading is not done right. The class has multiple HWs all through anaconda so get familiar with that quickly.

    To see my full review on the course, check out my youtube channel: https://www.youtube.com/watch?v=0ytgG1DeVco


    Semester:

    This was my 9th course in OMSCS and so far best where I learn most which I apply in real world example. The best part of course is its pragmatic approach on focusing on analysis instead of code. OMSCS is course primarily created for experienced working professionals. And we all know real production grade application use stable libraries and reuse code instead of creating from scratch. This course thankfully understand that and focuses more on analysis. My advise would be focus on assignment questions very well and make sure you address add justify all answers instead of just providing statement. Do not get alarmed if you score less on Mid Term or Final exams. The course is designed to make exam tough. However if you are persistent and improving consistently you can still get good grade. So do not give up. This is must have course for anyone in ML or Interactive Intelligence track.


    Semester:

    Only take this class if you absolutely have to, and if you do, don’t drop the class. This class is needlessly difficult and the grading is atrocious. The whole class is taking already implemented machine learning algorithms and running them on data you select and then writing a 10 page report on it. You are encourage and told NOT to implement the algorithms with your own code which takes away a a key way to truly understand how the algorithms work. Half the class is also reinforcement learning which is taught much better in CS7642 Reinforcement Learning where you actually implement your own code on some cool examples.

    Like I said above, the grading is horrible. Very little comments back on the reports. There is no rubric so the grading is subjective and varies quite a bit from TA to TA. With all grades in including the final I sat at a 42% and still got a B in the class.

    Summary, don’t take the class unless you need to and don’t worry about your grade if you do. As long as you put in a little effort you should get at least a B.


    Semester:

    If you need this class for the machine learning specialization then take it and don’t drop it. There has been a lot said in previous reviews about the worthlessness of the course. I won’t belabor that point. Instead, I’ll give some numbers for anyone thinking about taking the class (and more importantly anyone planning to drop it). For context, I had a serious life event the week of assignment #2 and exam #1 that essentially made putting 20+ hours a week into the class impossible for the rest of the semester. I was going to drop it but decided to see it through. Anyway, the following is how the course progressed for me.

    Assignment 1: 86

    Assignment 2: 10

    Assignment 3: 36

    Assignment 4: 48

    Exam 1: 32/120

    Exam 2: 27.5/110

    Overall Grade: 37.5%

    Letter grade: B


    Semester:

    Overall: I did not enjoy the course. In fact, I’d say that this is the 2nd least favorite course out of the 6 I took at OMSCS (Info Sec is the clear winner of the worst course ever, mostly because of the immature, paranoid TAs). There are two main reasons for that:

    1. I tend to agree with most reviews here that the class tends to be very tedious for no particular reason. I believe that there seems to be a misconception about what graduate school is about. Some TAs and students that liked the course indicate that ‘of course it is hard, it is graduate level course’ when referring to the general amount of time spent on the assignments. I disagree with these statements. If the homework is to write ‘I will do my homework every week’ 100,000 times then it will be very time consuming, however, that does not mean that it is graduate school level work. Graduate school is about diving one step deeper, relative to undergrad, into a topic/field that one chooses to study. This class is a very general, non in-depth overview of general ML topics.

    2. I found myself spending way more time writing the reports than experimenting with ML or writing code. This is a Master’s program in Computer Science. My expectation is that in every class the majority of the time will be spent writing code. I found the coding component of this class to be minimal. The code is not even graded or looked at. The code that I submitted was completely disorganized, with no comments and I am not even sure whether it fully worked on some my assignments in the end after all modifications made along the way. Additionally, all the assignments are structured so that you do not implement anything on your own. For most projects you just call scikit-learn or some obscure libraries created by former students of this course that you will never use ever again. This was neither helpful in learning the algorithms and their implementations nor a reproducible knowledge that one can take advantage of in the future.

    Lectures: I enjoyed the lectures. The material was clearly presented. I enjoyed the little jokes and student/professor role play. Probably the most enjoyable part of the course. I do wish they went into a bit more theory, but I understand that the course is for more general audience.

    Assignments: There were four assignments just like any other semester. I found the assignments to be easy to complete from the perspective of figuring out the code and running the experiments. What took the most time is writing the mind numbing 10-12 page reports that the TAs only skim through and look for specific key words. This created a particular frustration during the semester as the grading was very inconsistent. Further, (as opposed to Farther) the comments provided from TAs were often incorrect and displayed either a lack of knowledge on ML concepts or lack of effort to read the assignments. I do realize that there are nearly 700 students in this course and that the TAs were overwhelmed but at the same time, if this is the case, perhaps the structure of the assignments needs to be reconsidered. There is nothing more frustrating than spending a significant amount of time on a project and to receive a bad grade with abysmal feedback. After about the 2nd assignment I stopped paying attention to any TA feedback as I realized it is a complete waste of time.

    I am guessing people who went to office hours got some more guidance as to what exactly to put in the assignments in terms of graphs + language in order to improve their grades. If you really care about getting good grades on the assignments it may be good to attend these.

    Problem Sets: There were two problem sets, that I found pretty interesting. I am not sure of the grading on these as we never got them back, but definitely look at them and solve them. It is good for your knowledge and can help your final grade, or so the class staff said.

    Exams: These were much more enjoyable than the assignments. A lot of the questions were open ended so that left a lot of room for ‘I expected to see this but you wrote this’. Since the midterm and finals were both after the 2nd assignment I never checked to see what the feedback was or what I got wrong. I just kept it moving. The exams are based on the lectures. I noticed that the questions later in the exam were worth way more points than the questions at the beginning. I’d recommend working your way backwards as time is limited (especially on the midterm).

    Summary: I completed this course without attending any office hours or interacting with slack, ed discussions. I have previous knowledge in ML and am decent at coding. The reason I took this course is for the ML specialization. I would highly recommend for students in the ML specialization who want to learn ML at graduate level to try and find a different program that offers the course and transfer it. If you are worried about your grades know that it does not matter what the actual score is on the assignments or the exams. If you get 10/100 and everyone else got 8 or less you are the best student in the class. Rather than focusing on the actual points that you received on the assignments or the exams, look at where you are relative to the average of the course. My grades on the four assignments were in the 70s, 80s, 50s and 60s in no particular order. My exam grades were in the 60s and 70s. I ended up with an A. I was above average on all but 1 assignment (I was right at the average for that one) and i was above the average for the exams.


    Semester:

    I only took this one class in this semester (with a not-so-busy full-time job), yet I found I literally had to work every waking minute in order to get things done. I ended up with a solid A but I am skeptical on the learning to effort ratio of this class. In my opinion, the effectiveness of this class could be significantly improved if the grading rubric could be made more transparent.

    On the positive side, Prof. Isbell and the TA’s have been quite active both on Ed and on Slack. The final grades turned out to be quite generous despite miserable assignment and exam scores. Packages and libraries made by previous students significantly lowered the difficulties of some assignments. Former students’ advice and comments on Slack have been very valuable especially in getting things started.

    In general, I regard this class as a carefully designed psychological experiment in order to shatter and rebuild one’s confidence and self-esteem. As it transpires, if you bite the bullet and manage to stumble through this class, it may just be enough to turn yourself into a believer and practitioner of machine learning. For that, I think this class serves its purpose.


    Semester:

    One of those classes where it’s occasionally more tedious than difficult, and most people either love it or hate it.

    The professor and TAs are probably the best out of any class I’ve taken. They’re active on slack, give good office hours, and answer pretty much all reasonable questions.

    I think the issue most people have with this course is the subjective grading of the reports and exams. Being mostly stem majors, I think most are used to submitting their code in Gradescope, which spits out exactly how well you passed your tests cases. This class is not like that. The TAs talk about some of the report requirements in their office hours, but it’s easy to confuse these things as all you need. I did poorly on my first report, bombed the midterm, and was on the verge of withdrawing. I decided to ride it out, and on later reports really hammered down my analysis, explaining my charts and anything else that could be compared, and what that said about the datasets. As a result my report scores greatly improved (also think I did get luckier with graders). For the final I mostly took my own notes, studied George’s notes, did the ungraded problem sets, and ended up doing very well.

    Overall I think this course has shown me the value in really understanding your experiments and the accompanying analysis. While the average grades are pretty low, as long as you stick it out, something like 60% of people end up getting an A after the curve. Even though the class was a rollercoaster, I don’t think I’ve ever come out of a final this satisfied with the progress I made throughout the semester.


    Semester:

    I’m sort of conflicted about my final rating for this class because I feel it’s taught extremely well, but the projects and tests are abysmal.

    The professors do a great job of teaching the material. They’re charismatic and relatable, and they’re able to make very tough content accessible. Professor Isbell and the TAs are available pretty much any time and very responsive - sure, they’re a little snarky sometimes, but they’re also very helpful. I cannot complain about the teaching component of this class. It is genuinely one of the best teaching experiences I have encountered in this program.

    But, the big but, is that everything else is absolutely awful. Some other review characterized it as a “hazing,” and that feels absolutely true. Tests are intentionally designed too long to be completed by anyone who is actually here to learn the course without already having a strong background in the subject, leaving you to throw away points simply because you can’t answer the questions in the time alotted. Projects are even more enormous, but the metrics by which they’re graded are neither transparent or accessible - nor are they objective. In fact, they’re so subjective that you cannot learn what it is that you can do better, because it’s going to depend more on your grader and the mood they were in when they graded it than anything you could possibly put to paper. Worse, asking for a regrade comes with steep potential penalties, so you’re better off just accepting your score than risking a lower one. Tests can’t be regraded at all, near as I can tell, but are just as subjectively graded.

    None of these things are unknown to the teaching staff. Professor Isbell and the TAs brag openly that the median score is low every semester, as you can see in any review here. Sure, a curve exists, but a curve doesn’t help you learn how you can do better. It doesn’t help you figure out where you are in the course. It certainly doesn’t motivate you to learn. It’s largely just a degrading experience that serves no purpose other than to delight the course-runners - you know, a hazing.

    For the record, this is my second to last course in the program. I’ve scored an A in every class up to now, with a 100% or higher in many of them. I put in the time in this course and every course before it because it’s meaningful to me. ML is the first class to give me a B, and I put in twice as many hours as any class before this one. I’m sitting at the end of this thing and I don’t know what I could have done better, and I’m kind of angry about it and the dent this terrible course had in an otherwise perfect GPA. I simply could not have learned more. I’ve always made fun of those students who become combative with TAs and professors instead of putting in the work, but I couldn’t have put in more work if I tried. Maybe I should have been “that guy” and fought for more regrades, but the course was exhausting enough as it was and I just didn’t have the energy left to be a jerk about it.

    Skip this course. Are there people who are happy with it? Absolutely. That’s the result of subjective grading, especially in a program where it’s very likely that many enter with domain knowledge. Some people have a good time. But most don’t, and it’s a terrible learning environment. I don’t know why Dr. Isbell decided to sabotage fantastic lectures with horrific coursework, or why it has continued for years and years, but it is a decision and it’s probably not going to be one he changes if he hasn’t changed it by now.


    Semester:

    This is one of the greatest courses on this subject ever made, no matter how deep is your background in ML you will have a few jaw dropping moments.

    The support you get from the Prof himself, lead TAs, fellow classmates, alumni over Ed/slack is unlike any other course in entire OMSCS program(in my opinion).

    My 2 cents:

    1. You have to trust the system/course, and believe that the TAs genuinely want you to do really well in this course. So listen carefully and follow their instructions.

    2. Get a split keyboard, and make sure your setup is ergonomic etc. Your mind will love learning but your body will feel the pressure from all the typing.

    3. Focus on understanding rather than knowing. Optimize on having fun with the subject rather than optimize for scores/grades/GPA.


    Semester:

    This is one of the worst courses of the program which is either designed to fail students or lower their grades. The lecture material vs the projects/exams are in no way relevant, and you are at the mercy of the grader. This course will do its best to make sure you struggle in every assignment and exam and you don’t learn anything at all. If you are surprised to see all these negative reviews here, well it’s because it is indeed handled & designed very poorly. Unless you have a group of friends who are taking this course together so that each one will take turns for exams, it is very rare to score over >70 (You can check the grade distributions for the proof when you take the course) Overall, Prof. Isbell is an enthusiastic professor and very accessible but doesn’t change the fact that this course is designed to fail students, there is a difference between challenging a student vs harshly prepared and graded projects/exams. If they do an internal review for this course, they might have to refund every dissatisfied student for their loss of time and money.


    Semester:

    Honestly I really hated this class. I started off getting awesome grades in the class and I slowly drifted down until I ended A4 with a less than average score. I started off the class with a like 90+ on one of my assignments. The exams were very hard and I bombed them every time and was below class average there. I have something like a 50% in the class according to canvas. Hopefully I pass when they actually release the grades. As for learning well I got some general knowledge on ML which is useful, but other than that I learned how to BS very well. I would not take this class literally ever again.


    Semester:

    TL;DR: Despite all the reviews this class is fair. The “hidden rubric” is more that they don’t tell you how to do the analysis and expect you to figure it out on your own.

    My Background: This was my 8th course, I am doing the ML spec. I am SWE at a non-FAANG (non-MANGA?) company that has background in python and other backend languages. I had some background with ML. Mostly basic stuff from ML4T I took as my 4th class and undergrad course. I have an undergrad degree in both CS and Stats.

    Overall Review: This is class is fair. Its stressful, but fair. This course expects graduate level work, it does not hold your hand. Everyone refers to this course having a hidden rubric, which is a half truth. You are graded on criteria you don’t know about. However every assignment is about the analysis of your experiments. If you can understand how to compare and contrast the different algorithms/problems and relate it to the outcomes of your experiments you have met the criteria. This means comparing everything from runtime complexity, to accuracy, to actual runtime, etc. You also should not BS any information. They will deduct more points for wrong information than information not represented in the report. My grades on the assignments were 100/90/100/75. The last assignment I had some issues come up and wasn’t able to start until closer to the deadline due to family issues. Even still it was higher than the average for this class. The assignments take a long a time to run so make sure you have some kind of strategy for parallelizing and storing your experiment results. After taking this course I can’t understand all the hate. This may sound mean but this course will not hold your hand and requires you to put in the work. If you can understand how to compare and contrast two experiments then there is no reason you shouldn’t be able to do well in this course, even without knowing what the hidden rubric requires. For the record I attend the office hours once.


    Semester:

    The thing that makes Machine Learning hard is that is asks you to think differently. You get no points for how elegant or efficient your code is. In fact, the graders don’t even run it unless there is something fishy in your report. What is important is showing that you understand the topics and how they interconnect with each other. After so many classes with autograders and multiple-guess exams, this was a little hard to get used to at first. However, I can say with confidence I have never come out of an exam remembering more than I did after completing ML.


    Semester:

    Despite what everyone else is saying, I want to make a point for why this class is not hard or unfair. Disclaimer: I have a strong background in software engineering and python, but did not have any experience with pandas/matplotlib and other libraries, and had not done data science before. This was also my first course at OMSCS.

    Time-management: The schedule is quite challenging, with assignments, (optional) problem sets, and exam study periods overlapping frequently. You will have an average of three weeks per assignment, which for working people means three weekends. This time is contested by exams and problem sets.
    The good news is that problem sets are very good for preparing for exams, so complete them as part of your study process for exams. Being good in the assignments doesn’t necessarily help with the exams, but the lecture content is useful for both the exams and the assignments, so you’ll want to make sure to watch the relevant lecture content first.

    How to write assignments: Imagine each assignment as a three week block. You’ll want to focus your first block on watching all the relevant lectures for that block. E.g. for the supervised learning assignment, watch all lectures that are categorized as supervised learning. Make sure to take breaks in between, take some notes, really do the the mini-quizzes in the lectures. All the usual techniques for effective learning apply. Possibly watch on 1.5x speed and pause where necessary. If you already use a system for flashcards, make some flashcards, otherwise just quickly review your notes every week. Then, take a look at the assignment requirements and description. They will be slightly ambiguous, but to keep things simple: always use python, always use the libraries suggested either in the assignmnets or in slack, don’t implement anything you don’t need to (use libraries for everything!). Before starting, take a look at those libraries. Your general goal is to run some experiments and then plot the results and talk about them in your submission. As for what to plot and discuss: you can either think about this hard and choose what makes sense for you (and include your reasoning), which takes some time, or watch the office hours that go over that assignment and just take the straightest path to the plots and discussions that are mentioned there. The reason why we do all the lectures in the first week of every block is that you can then watch the office hours before actually starting to take the assignment. If you care about people, summarize what you learned from the office hours and post it in the course Slack, possibly discuss there. From here, it should be easy to think about which plots you need, and how to generate them. You’ll have 2 week chunks left for the implementation. Again, sometimes you’ll have to sacrifice one of those chunks for studying for exams, but it should be easy to get 60% on an assignment with <20 hours of coding/analysis.

    General tips for coding and running experiments:

    • Save your results to a csv if possible and then plot later as you need it. This will also save you from having to re-run experiments if you mess something up.
    • If your experiments take a while to run, run them on a shorter example or smaller chunk of the dataset to test out how the plots might look like, and then run with larger datasets overnight. You can also totally only use small datasets and never have anything running over ten minutes on a decent notebook.
    • Write your analysis while you code.
    • Focus on getting that first graph out, even if it’s not the one you’ll use in the end. Discuss in your writeup, give reasons for why things look like this, and you’ll notice when you’re missing a basis for your arguments.
    • Your machine learning models do not need to perform well. You only have to run interesting experiments.

    How to learn for exams: Watch the lectures and think about the content. Make sure you understand all the concepts mentioned. Try to come up with some example exercises that are similar to the mini-quizzes and do those too. Then do the problem set and re-watch the lecture about those topics if you can’t yet solve some of the problems. Watch some youtube videos about specific topics if you have a hard time grasping them.

    Overall, I feel like I’ve learned a lot, especially intuition for all the foundational concepts and skills in doing data science with python. This review is for 2021. Things might change so be careful with any advice, though it’s unlikely major parts will be different.


    Semester:

    It is a very hard course, takes a lot of time and devotion but you also get a lot back. I learned so so much and this is the best OMSCS course that I did by far.


    Semester:

    Machine Learning is a must take class for 3 specializations, much to the detriment of the topic. The class is too broad, the needs of the students are too broad, and the skill range of the students is too broad. In fact, the entire class can be summed up as frustratingly broad.

    The class contains 4 vague assignments, each 3 weeks long, that are at least 10 pages of writing in addition to a midterm and a final. In order to succeed on the assignments, which require a significant amount of work, you have to watch the office hours. This is silly. Rather than having the assignments detailed enough instead we’re required to figure out what to do based on an optional part of the class. Because of how much material the class covers, you’re allowed to use existing libraries and borrow code from the internet to complete the assignments. Worse, the feedback from the graders is detailed but not actionable. It’s hard to know what you did wrong for a report. It takes 2-3 weeks to get grades back because of how long and broad the reports are, which prevents students from getting a real feedback loop to improve as the class progresses. Exams test your theoretical understanding of the material and were fine for the most part.

    This class has had the worst quality Ed discussion and Slack discussion out of any class I’ve taken at OMSCS. A third of the posts are about theory, a third are about some very specific library problem, and a third are about the assignment requirements. Many posts were left unanswered and it was frustrating to see such an interesting topic not motivating discussion among students.

    I was very disappointed by this class. It should be reworked so the material can be focused. Maybe split into multiple classes. Assignments shouldn’t be black boxes. Prof. Isbell is involved with the class and clearly cares about students, but the needs for the class are beyond what the current course can handle. This class isn’t even that difficult – it’s just stressful for no reason and offers little support.

    Some suggestions: the problem sets are interesting! Some of the theoretical proofs were unexplored in the class. To reduce how long it takes to grade, include some sort of coding assignment or quiz. Reduce the big report size or number.


    Semester:

    To preface this, I want to state that before taking this class, I have taken ML4T, RL, CV, and CP. I feel that these classes were good preparation for taking this class. I also have 5 years of experience as a Data Scientist with a very heavy math background working primarily in Machine Learning, and went into this class already knowing sklearn and general data preprocessing, along with experience in reinforcement learning.

    Projects: Beating the dead horse, but these were the bain of my existence. I get that these are made to make us search and learn, but CP did a much better job of making us do that, with reasonable expectations of how to try and get the best grade possible with growth and exploration in a reasonable fashion. The requirements passed to us wouldn’t be so bad if there didn’t seem to a inconsistent grading standards and expectations, and the hidden rubric.

    Problem sets: These should be done, even though they are ungraded. I found that they were trivially easy, but did help in pre-pairing for the final. Do all the problems in each to have a decent preparation for the midterm and final.

    Tests: After having taken RL, I was prepared for the brutality of the tests, and while I found them challenging they were relatively accessible with adequate studying.

    Recommendation: Don’t take this class unless required, you will get more useful experience in the other ML focused class. This class is just hazing, and is not worth the stress. I like machine learning, but this class made me feel resentment for the class design and I had no interest in the projects, and felt like a battle of attrition.

    A1: 72

    A2: 88

    A3: 70

    A4: 85

    Midterm: 63/120

    Final: 75.5:110

    Final Grade: A


    Semester:

    Prerequisites: I took ML4T and RL prior to taking this class and I think it was extremely beneficial. The background you will get from these other classes will definitely help to make your life easier when looking at the material in this class. This class can be done without them because it is an introduction class in theory, but the workload makes it very hard to practically spend time mastering some of the basics. If you were feeling ambitious I would say watching the lectures on Udacity ahead of time would be extremely beneficial in terms of time management with this class.

    Assignments: These are by far the biggest test of your time, patience, and knowledge. While they are fair for the most part, the amount of data you need to generate can be pretty crazy and the analysis you need to put into it is very time consuming. The rubrics they give you are fairly vague but there is certain criteria they are looking for. To get this you NEED to go to office hours. Office hours are essentially not optional if you want to get the best grades on these assignments. Don’t spend a ton of time making your code perfect or trying to make every graph pretty. Get the data and move on. Start typing your report ASAP because I promise you will learn something along the way that will make you change your code anyways. I’m almost positive they rarely look at the actual code in the end.

    The big thing here is they make you choose two datasets which you will use for your first three assignments. You DO NOT want to have to change these during the course - it will just make more work for you. For people who aren’t familiar with Machine Learning I felt it was a pretty tough ask since you don’t really know what good vs. bad data really is. They say to pick “interesting” data but it’s pretty vague. I personally recommend picking one binary classification dataset and another with multiple. It’s a good contrast. Don’t pick something with a million data samples either - I would say keep it all under 10k and even less is probably fine. You will want every minute back when your learners take forever to run.

    Most people used Python and if you took another ML class before this you will likely already be familiar with SKLearn. This is heavily used in this class. Do get familiar with it if you aren’t already. For ease of use and consistency, the datasets provided in this library are ok to use. I wish I had in hindsight.

    Exams: I feel like these tests are strategically written. They are fair but there’s definitely questions which are intended to separate the best students from the pack. The average is usually insanely low so don’t worry if you don’t do amazing - you aren’t alone. I personally didn’t spend a ton of time preparing for them because I felt there was a point of diminishing return and I think i was correct in my assumptions.

    Problem Sets: These are optional but resources are readily available online. They seem difficult when you initially read them (and some of the questions are) but it’s worthwhile in the long run. It can help your grade and in hindsight they will help you prepare for the test. Just do it even if you have to get better understanding later - you will already be in a time suck anyways!

    Summary (TL;DR) / Tips and Tricks: Picking datasets is key for making your life easier here - look at what SKLearn has and stick with those or something similar. Don’t get crazy unless you really feel confident. They are just used to show understanding of concepts, not to reinvent information theory. Start writing your reports ASAP. Even just get the introduction done, explaining your datasets, etc. Just start writing and it will save you a ton of time later and it will let you know what you really need to code sooner. Just do the problem sets - even if you just get something down and make a valid attempt it could help you.
    I personally got a subscription to Medium & Towards Data Science online. The articles on these sites are invaluable. Join the slack channel. Don’t go it alone. People like collaborating and you will learn a lot and be able to ask questions faster. Office hours are key for understanding what you need to put in assignments - I won’t say you NEED to attend all of them but when assignments come out, definitely be there.

    Overall Impression: I personally feel like this class is much harder than it needs to be. The time you need to put into the assignments I think takes away from the learning experience. There is a lot of value to be had in this class and I think most people feel similarly to me. I’m not going to bash it like others because Isbell is a very good instructor and this is graduate level coursework. Just expect a big time commitment and don’t give up!


    Semester:

    Ugh! I just wrote a detailed review and it disappeared without posting. But read the review below that starts with how this class “… so blatantly disrespected my time and effort”. That statement perfectly sums up this class. Lectures are terrible. Professor IS sarcastic and down right rude. content is insufficient. Grading is arbitrary and, frankly, the TAs doing the grading are not even reading the assignments. For example, I got 40 points off on one assignment because (according to the only feedback provided) XXX is missing. But it wasn’t missing. I even started a sentence with “Next I did XXX” and then went on for 4 pages explaining XXX, including multiple graphs and tables. How can they get away with not even reading it?!?! So frustrating. If you don’t absolutely need this class for ML specialization, do yourself a favor and skip it entirely!


    Semester:

    As someone who works with machine learning models on a daily basis, my expectation of this course was to dive deeper into the essential aspects of the models and algorithms that empowers students to explore and experiment. However, the setting of the course makes it extremely hard to do so. With all common supervised learning, unsupervised learning, optimization and deep learning (game theory) packed into one course, for each section the instructor could not get too far on the topics except for general understanding and philosophy. I cannot images what it was like for the ones who don’t really have much experience in machine learning to take this course, since the videos are usually at elementary level, yet the assignment is asking for almost a review paper of the machine learning algorithms, and scores of the assignment are just frustrating.

    I understand that the goal was for the student to explore, but it could save the students so much time if the instructions on the assignments could be a little bit more specific. I took this course together with a computer vision course, which is equally time consuming because of the large amount of content that the teacher would like to share. Yet the computer vision course takes most of the time in sharing the overall structure of the computer vision academic field, almost like set a book shelf of the field, which enables students to fill in the content via more reading in a flexible manner. The CV instructor spends time to set the overall environment for the homeworks, so that students could spend time to understand and practice the core algorithm part. With limited time we could spend on each course, I just hope that the instructor of this course could spend a little more time on setting up the environment and the knowledge structure for students to learn the most out of the course.


    Semester:

    cleared because omscentral founder is being a bitch


    Semester:

    This course is miserable. I have never before taken a course that so blatantly disrespected my time and effort. The biggest problem with ML is that the Professor and TAs will insist that things work. For example, they will stubbornly defend that the assignment descriptions on Canvas are “complete”. No. No they aren’t. Don’t take my word for it. Take the dozens of reviews below mine. But the teaching staff seemed very indifferent to student feedback about the course.

    Assignments: Students will need to listen to 1 hour of Office Hours every week just to figure out what they should do on the assignment. And each Office Hour matters — you might think you have everything working until the week before the assignment is due where the TA specifies “Oh yes by the way, you need to show X”, and then you’ll need to go back and rework your project so you can show X. Want to work ahead? Lol, forget about it. Yes the assignments are released weeks in advance. No, you will not have weeks to complete them. You’ll likely be juggling other assignments and exams. You can’t even start on them until you have listened to an Office Hours that tells you everything the assignment description lacks.

    Exams: I actually was fine with the midterm, and kind of liked the format. It does really encourage students to have understood the material (rather than just memorizing formulas and such).

    Lectures: The lectures are great for some subjects, and meh for others. I felt like the Supervised Learning lectures were phenomenal. We didn’t get too into the math, but we did do a couple proofs that I enjoyed. There is a good focus on building intuition. I thought the Reinforcement Learning lectures were quite difficult to follow, and didn’t distinguish the different algorithms sufficiently. I still haven’t really grokked what the difference is between Value Iteration and Policy Iteration.

    Environment: The professor is…condescending? I’m not sure what the appropriate word is. Maybe he perceives it as sarcasm, but sarcasm only works well when it doesn’t come from someone in a position of authority, especially when you go to that person with earnest questions about something you didn’t understand or are struggling with. Charles is the Dean of the College of Computing, and clearly a super smart guy. But if you don’t have something nice to say, maybe don’t say it?

    Grading: ATROCIUS. The grading is completely subjective based on whatever TA you get. It’s sort of the old proverb “This too shall pass”. If you’re getting great grades, be aware it may not last. If you’re doing poor, there’s hope yet. The flip side of this is that I never knew whether I should be confident in my understanding of the material, or whether I just didn’t learn anything. Sometimes I felt like I understood the material very well, but my assignment didn’t quite meet all the tickboxes on their hidden rubric. Assignments were also not graded on time. We didn’t have Assignment 2 feedback in time for Assignment 3’s deadline. We still don’t have Assignment 3 feedback in time for Assignment 4’s deadline. I don’t know how I’m supposed to improve in this class? I just do my best, spending +30 hrs/week trying to piece together something I think has compelling analysis. And then I get an awful score because I “didn’t go into detail about ___”. It’s just disheartening, and by far the worst experience I’ve had in a class.

    At the end of the day, this class was exhausting, especially for someone with a full-time job. We have a massive project due the weekend of Thanksgiving. It was the closest I’ve come to quitting this program, but some of the other courses here remind me that there is so much more to be enjoyed with OMSCS. As a data scientist, I thought I’d really enjoy sharpening my ML knowledge as I complete the ML spec. I was wrong, and even with what I’d consider strong time management, I struggled week in and week out with this course. Classes should be designed to encourage learning, inspire students, and provide useful feedback about whether the student has successfully mastered the material. This course has done none of that. As we wrap up, I just have burnout and frustration.


    Semester:

    This is my first semester in OMSCS, and the semester is not yet over, but I am doing better than the class average so I assume I’ll get an A if everything goes well.

    For a school as prestigious as Georgia Tech, I really would have expected the core ML class to be a lot better. The instructions for assignments are very vague and you are forced to watch office hours to get some more clarity, but even after than it is still pretty confusing. It makes no sense why the professors/TAs can’t give better detailed instructions.

    Many students ask so many questions on Ed/Slack and Dr. Isbell responds sarcastically most of the time as if the answer is obvious. Clearly the answer is not obvious if multiple students ask similar questions after reading your horrible instructions.

    The first assignment is probably the only one that is good, in my opinion. Doing hyperparameter tuning and comparing performance of different supervised learning techniques using sklearn is actually what I do on the job as a Data Scientist. The other assignments are not horrible, but because of the massive reports that are required and all of the wasted time spent figuring out what to actually do, everyone is encouraged to import obscure libraries like mlrose-hiive or mdp-toolbox and try to figure out how to make them work for the very specific application of this assignment.

    The midterm is not very difficult, in my opinion as long as you watch all the lectures and do the problem set.

    It seems like this class was designed in such a way to waste the most amount of time while learning the least. I am very much looking forward to taking classes like ML4T next semester where the class is more well-structured and the assignments are more clear.

    PS: Some people get really into this course for some reason and it can be a little unnerving/intimidating. There was this guy who constantly posts in the Slack, but he says he finishes all the assignments early and had a baby this semester. I feel so sorry for his family. If you are done with your work, please go spend time with your newborn and your wife, instead of spending multiple hours a day debating Q-learning with your classmates. There is this guy named jontay who is also constantly sending messages in Slack even though he took this course several years ago and already TA’d it. Don’t these people have anything better to do??

    PPS: If anyone in the administration is looking at this, PLEASE reconsider having this course as a core class for the ML Spec or at least design a better ML course that is not a waste of students’ time.


    Semester:

    It truly is a polarizing course. The course is graded on a massive curve where a traditional failing grade could be an A. To have success in the course (which is defined as better than class average), you must attend office hours to get the specifics on what the TAs are looking for in your papers. There are no “hidden rubrics”, just “hidden expectations” which are clarified in office hours. Unfortunately the office hours recordings are an hour long a session, but they are timestamped so you can quickly find the relevant information. However, even if you do try to incorporate all the components, I still found the grading rather arbitrary.

    The midterm is ridiculous - no scratch paper or notes. You’re answering nuanced machine learning questions in a text box. However, the final is more relaxed and if you do better than the midterm it can pull up your grade.

    I was not a fan of the lectures. The professors take a jocular approach and banter with each other throughout the series, playing dumb at several moments. It’s a huge waste of time, especially for busy professionals with full time jobs and other OMSCS courses. I also found Prof. Isbell unnecessarily sarcastic on Ed Discussion to the point where he was coming across as rude.

    What I liked about the course was the survey style across supervised, unsupervised, and reinforcement learning. The projects are massive (3 weeks a piece), and give you an opportunity to do deep exploration on self-selected datasets.

    Get ready to work. The class is straight gas, and I would never pair this class again with another course if I could do it over. It’s not impossible to pair, but you simply won’t get the most out of the class if you don’t dedicate 30 hours a week. This class certainly gives OMSCS its credibility.


    Semester:

    One of the best classes in the program. ML really pushes you to get outside your comfort zone and learn.


    Semester:

    If you just want to pass, make sure to do the ungraded homework, and just give up the graded homework. You can also work very hard on the graded homework by going to the office hour where you will get the real requirement for them. After all, you can get a B with as low as 40%. If you are not familiar with the topic of machine learning this will be a good introductory class for this topic, as it covers some in-depth concept in a rough and fun way. The homework, if you try hard, covers some general items on how a data scientist evaluate a model. You will find this course pretty useful if are looking for a job in this field. The exam’s question is similar to a set of interview problem ( but easier).


    Semester:

    Course arrangement is very strange - assignments are “open-ended” on the surface but quite framed when it comes to grading. However, that is not the real problem because I’m sure the curving will help most students out. What frustrated me the most is the amount of effort I had to make just to figure out what the instructors want. (One suggestion, if we truly want a free and self-driven learning experience, let’s get rid of assignments and exams, let the students explore and test them with interviews.) Also, it makes me a little bit uncomfortable to see the amount of sarcasm from the professor when it comes to Edx posts. Yes, some of those questions were obvious, but it really created a toxic learning environment.


    Semester:

    Caveat: I dropped the course because of the workload, so take this review for what you will.

    The course projects are very open ended. You have to choose pretty much everything, down to the language to use. I really suffered in the first project because I didn’t have too many data cleaning skills. I spent way too much time cleaning / gathering data instead of actually working on the important parts of the assignment. I wound up dropping because this course ate so much of my time, it wasn’t worth the effort for me.

    That being said, I really enjoyed the open-ended nature of the assignments. It’s nice to be able to implement everything from scratch and have control over every aspect of the project. However, if you suffer from analysis paralysis like me, be warned. Certain decisions will beg your time, but you need to just make a decision and start working.


    Semester:

    The funny thing about this course is you don’t actually like it while doing it but will only understand how much you learned after you are done with the course.

    Pros-

    1. Assignments prepare us for real world Machine learning problems
    2. Prof. Isbell and TAs are highly active on piazza

    Cons

    1. Assignment description is not well documented. You need to follow Office hours, piazza to actually understand the requirements
    2. Lectures are very boring and make you fall asleep. They only cover uber level understanding of the topics but not the math behind
    3. Grading rubrics are not revealed


    Semester:

    I really liked this course, but I felt like it was a lot of work (four 10-page analysis papers in addition to the midterm and final). As someone who had never taken a machine learning class before, I thought this was a good survey of machine learning, both practically and analytically. The grading scheme is definitely something that you need to get used to because most of the assignment averages were in the 60s (meaning that a lot of people score BELOW that, and that’s normal and okay for this class). Dr. Isbell cares a lot about learning and improvement, so if you do badly at first but work hard to improve, it should pay off in the end.


    Semester:

    Worst Course I would have ever expected to be. Take this course only if you are already into ML and have good knowledge on Mathematics. Practice writing Analysis even before entering into the classes. Lectures are another bunch of worthless videos. Do not expect the feedback to be useful for the next assignments, all are cryptic.


    Semester:

    This course was one of a roller coaster. The lecture videos are very engaging and well executed. The course provides a broad overview of different ML techniques, so depending on one’s background, the takeaways could be limited. As many have pointed out, the assignments could be a nightmare given the amount of pseudo open-endedness it has. The key to ace the assignments is to attend the Office Hours and carefully jot down all the requirements the TA’s mention and include each of them in the report. The grading is solely based on the report, so there’s no point in putting unnecessary efforts in writing a well structured code. Keep atleast a week of time for writing the report, seriously. The page limitations on each assignments are a real concern. All the experiments, results and explanations across the required number of datasets need to be compulsorily included. In my first assignment, I ran out of pages, so, while for one dataset I provided elaborate explanations, for the second one I presented only the results, hoping that TA’s will consider the code and annotations. Unfortunately the graders marked my assignment as incomplete and deducted almost 50% points even though i had coded for both the problems. The midterms and final are also brutal to say the least. However the class is heavily curved, so grade B is doable, if not A. Lastly don’t let your experience with CS7641 stop you from taking CS-7642 (RLDM). I took 7642 before taking 7641 and it has a all together different philosophy.


    Semester:

    Worst course I have taken. As mentioned in other reviews, this course purposefully makes you feel bad in the beginning. And after the dropoff, everything becomes easier. This is a weed off course.

    I have learned more about ML and RL at ML4T in this new format of ML. Nothing useful is taught. It is more like “go do X” and tell us your analysis. Nothing about what you should put in the analysis, you find it yourself.

    Some might disagree and say that it is through self learning over the internet to guess the grading rubric is where they learn the most. I disagree.

    I think this is waste of student’s time, inefficient, and the worst of everything.

    If you are wrong, don’t expect them to tell you anything. The assignment and exam results are very generic feedback.

    If you don’t even know why you are wrong, how can you improve? This is just crazy.

    I repeat, nothing you will need to learn to be successful in the assignments is taught at all. They waste your time by telling you to read the textbook and the papers and multiple resources, but those have 0 relevant to the grading rubric.

    This is a required course for ML specialization, but it shouldn’t be. This is just a circlejerking and bullshitting together course.


    Semester:

    People either hate or love this course; I am part of the latter for different reasons than most are posting here. I came to OMSCS because of cost an the reputation of the university has kept me motivated to finish. I have joined countless machine learning MOOCS and always quit before getting through half; but I knew this course would be different, because it’s GaTech and I would have a shiny degree afterwards. I was extremely motivated to study more than I really had time for and experiment with the datasets more than I needed to. Yes, it is by far the hardest course I have ever taken in my entire life; it deserves the high difficulty rating it has but not because the material is so difficult, it’s because they have such specific ways of grading your work but they give you such generally vague instructions on what to do with your projects. So panic sets in and you rethink your work a million times before the deadline does not allow you to do any more updates. Exams were the most fair I have taken after 8 courses now, so don’t worry about the 50% of the overall grade from the exams; it is literally the reverse experience from the database course. Just listen to all the office hours multiple times, that was the only reason I had a clue what they expected and why I ended up with a B. Just set the playback to 2x and listen to each one multiple times.

    My strongest advice to keep your sanity and not comeback to omscentral with an angry review: avoid piazza entirely. I did not ask a single question the entire semester and got a passing grade. You will not get help and yes, I saw other posters get condescending, unhelpful ‘advice’ that was just unnecessary. Just watch the lectures and office hours multiple times and read every article / watch every video on YouTube about each subject you have time for; you won’t get help on piazza. I honestly think that’s the best way to learn on OMSCS in general: avoid people at all costs and learn completely on your own. Lol, ‘online community building’, yeah not here.

    They make this course hard for a reason: the only way to do well is if you work your ass off and try as many ways to represent your work as the space on your report allows. I learned so much I really didn’t mind not having weekends for an entire semester; it’s still Covid times so not much else to do anyway. Not knowing to the last minute if I was going to have to retake the course and hurt my GPA was the mind numbing part. As an deep dive into ML, I think it’s a great course but I had a lot of experience coming in and yes, ML4T is a great prep course; not sure why they say otherwise. The guys saying this course is bad didn’t listen to office hours multiple times; if you do you should be able to squeeze in at least a B and learn a ton.


    Semester:

    Machine Learning was my 8th course and very different from the others I have taken. The initial few weeks were tough because it takes time to get a hang of this course. I liked the lecture delivery and would have liked some mathematical proofs/derivations. The TA’s are knowledgeable and helpful. Prof. Isbell is active on Piazza and Slack.

    Assignments:

    Pros:

    1. The assignments are open ended. You select the data and you analyze what you see.

    2. You get to use any external library. That lets you explore various hyper parameters of the learning algorithm that would not have been possible if you were to implement it. I have implemented Decision Tree in two other classes but I only experimented with a few hyper parameters (since that was the requirement of the assignment). This also enabled exploring multiple learning algorithms in a short time.

    3. You need to analyze your decisions and the results. This helped me better understand each learning algorithm and what effect different hyper parameters have.

    Cons:

    1. The project description does not has all the requirements and the TA’s have to discuss them in office hours.

    2. Grading at times seemed ambiguous.

    I scored 96/99/80/96 on assignments. I would say that don’t overthink. Analyze and justify all your choices and results. Do not put anything in the report that you do not wish to analyze. Attend office hours to get an idea on how to analyze.

    Exams:

    The exams test how well you understood the material. I scored 66 and 79 in exams and would recommend to watch and understand the lectures, read the text book and spend less time on True/False questions.


    Semester:

    I hate this class so much. As an engineer in machine learning field, I cannot imagine I will hate the machine learning class so much at OMSCS. It is not hard, it is just the whole experience that makes you feel uncomfortable.

    For TAs, if your purpose is to make the student go to your office hour and show results/graphs as you expected, why don’t write a clearer outline, instead of making students believe they can really submit their creative assignment? TAs are rude and not open-minded at all. The assignment instruction makes you believe you can be creative, but it is not true. TAs may have a list that contains everything they want from your report. If you catch up on everything, you’re lucky. Otherwise, be prepared to be surprised by your grade.


    Semester:

    This was by far the worst OMSCS course I have taken so far.

    PROS:

    1. Assignments are straight forward but you need to plan way ahead.
    2. Exams are brutal but also tests your ability to synthesize the content.
    3. If you just do decent work on your assignments, you will easily get a B
    4. Slack channel is very helpful.

    CONS:

    1. I don’t exactly know the reason behind this but it seems that almost everyone (TAs + Professor) has this habit of not answering the question directly. They will keep beating around the bush but will never provide answer to your query.
    2. Professor will not miss a chance to brag in front of you.
    3. Due to some weird unknown reason, they have decided not to provide all the assignments requirements in the assignment description itself. Instead, you have to spent 2 hours listening to every office hours just to ‘decode’ the matrix. It is tough for some of us who have high work pressure and kids to take care of. I ended up ignoring all the Office Hours sessions and still ended up with an A.
    4. Lectures content is not at all good. Even for basic concepts I had to search the internet. One thing that I disliked is that Professors skim over some concepts and leave it to the students to figure it out.


    Semester:

    There are 100s of reviews of this class already. I have nothing new to add besides the following pointers:

    • Go through all the lectures up until SVM prior to the semester start date. Make sure you take notes and really understand the quizzes in the lectures. I highly recommend supplementing the lectures with statquest, datacamp, and Andrew Ng lectures on YouTube.

    • Pick 2 simple binary classification datasets. I had one with 400 rows and the other with 800 rows. I averaged 96 across the 4 assignments. There is no need to pick crazy complex and large datasets. You can use make_classification() and make_blobs() from scikit-learn to generate datasets if you wish.

    • Prior to the semester, get familiar with scikit-learn (orielley has great books on this) and know what bias-variance tradeoff means and how to create and analyze a learning curve, and a validation curve. Scikit-learn has pretty much the code for all the plots you would need. So use them!

    • You need to develop a good intuition on all the algorithms in the assignments. By that I mean you need to understand the strengths and weaknesses of each one and fit your analysis in the report accordingly.

    • Go to all TA office hours (recorded) and literally transcribe everything they say on a doc. Use them as much as you can for the assignments. They provide you all the keywords that they want to see in your analysis.

    • Don’t drop the class. Pretty much everyone (95% of the students) gets an A or a B in the end.


    Semester:

    It’s better than the reviews seem to indicate.

    Pros:

    • You’ll learn a lot. I had taken a couple MOOCs on Deep Learning and had played around with that, but here you’ll go back and get a good grounding in the other ML approaches you should have in your toolkit.
    • The assignments are useful, because while they are vague, they are a pretty good simulation of solving some real problems and going through the whole ML process. It’s funny, but some people think they didn’t learn ML in the process of doing these assignments, because you just use libraries and don’t code everything from scratch. I’ve got news for you: this is what you do in the real world. You have a problem, and you google to find ways of solving it and you use other people’s code and libraries.
    • TAs did a good job in office hours

    Cons:

    • Lectures are an acquired taste
    • The first test is a bit ridiculous. It seems to be made to shake out the people who aren’t serious, or who can’t cut it. About 1/3 of people who enroll drop the course.
    • The worst thing about the course is the vague grading of the assignments. I turned in good quality work 4 times, but the grading was all over the map, everywhere from just above the mean to well above the mean. My work just didn’t vary that much from project to project, so I think there was a random number generator involved here. But in the end it doesn’t matter much because if you’re above the mean, you’re on track for an A.

    My advice would be take this course if you are passionate about ML. If not, you probably won’t like it. If you’re into it, though, don’t get shaken out if your first assignment or midterm grades aren’t great. Stick it out. You’ll at least get a B if you have the required background and put in the effort. And maybe you’ll get an A with the curve (I did).


    Semester:

    You might be shocked by the first assignment grades and shocked by the first exam, but it is not difficult to do well in this class. If you work smart and pay attention to what they are asking of you and do it, then you will do well. It’s actually a medium/hard difficulty class, but it can be time consuming. I went in thinking I could blab on mindlessly in the reports about what I did and not study very much for the exams, but it isn’t like that. Try some proper analysis in the reports (paying attention to the specific questions the assignment is asking) and closely watch the lectures for the exams (stopping frequently to understand), and you should have an A at the end. I dropped my first attempt because I couldn’t handle ML and CV in the same semester. The second time through was much better because I knew what was expected (though frankly I didn’t do as well on the exams as I could have). This is NOT a “very hard” class. Oh, and do all of the extra exercises to get prepared for the exam.


    Semester:

    Avoid this class if you can, this is the worst ML class.

    Why it’s bad

    • Arbitrary grading. There’s too many students to properly grade on analysis, so what ends up happening is TAs skimming through everything and if what they’re looking for isn’t dead simple to find, they’ll slash like 30% off even if it’s there. Regrading is non existent and the rest of your grades are pretty much relative to your first paper.
    • Waste of time. You don’t truly implement any code, so it’s difficult to gain a practical understanding of ML, yet you have to spend hours grinding sci-kit learn docs and formatting your paper just write.
    • Awful lectures aside from reinforced learning. This isn’t surprising as the professors specialize in RL.
    • The exams also have arbitrary grading. It’s T/F but you get graded on your explanation, which is subjective IMO especially for how fast the TAs will have to grade things.

    How it could improve

    • Create code repos with unit tests for assignments and use gradescope like every other class. You can then design what parts you’d like students to discover on their own.
    • Have a LaTex template for everyone
    • Either get rid of the exams or actually put effort into them.

    If you have a pulse (complete all the assignments and watch the lectures), you’ll at least get a B.


    Semester:

    The projects are very focused on theory, which imo is not great for getting your feet wet in a topic of this complexity. First, the project requirements are vague and basically go explore and explain your findings, if you don’t know what you’re findings mean make something up and try to sound intelligible. This is my second time taking this course, after flunking the first project the first time around I’ve learned the less effort spent leads to higher grade. I didn’t have to watch any lectures (nor could i stand to) and put in some cursory research on wikipedia and did fine on the papers. Little coding knowledge is required for this class, and I think the focus on exploring in the paper is counterproductive since the TA’s seem to have as little idea as the students what is required. Professor please redo the videos like Graduate Algorithms does, and cut out the fluff. It may seem funny to you, but for someone trying to understand something its distracting. Also please create projects with achievable goals.


    Semester:

    As someone else said, this class is indeed polarizing.

    I came in as a software engineer that has no experience in ML, although I have strong fundamentals in math and computer science.

    This course was a beast and a half but I enjoyed it thoroughly and expect an A.

    Pros:

    • I felt that this class gave a broad enough overview that I can go off and get deeper into areas of interest. As Professor Isbell mentioned, this class is meant to give you a foundation.
    • Unlike many others, I actually enjoyed the assignments. They took a LOT of time between coding and writing, but it was much more satisfying than being handed a rubric. The open-endedness sometimes troubles students. I found, however, that the open-endedness made me go out and explore more than if there was a strict rubric. If you generally listen to office hours and stay active in slack/piazza you’ll do fine. I ended up getting a 100 on 3 of the 4 written assignments.
    • The course staff is sometimes a bit sarcastic but otherwise present and extremely helpful
    • Some alumni like to hang around the slack channel to help, so having more people is a big plus

    Cons:

    • My biggest con was that there was no break in the assignments (because of no spring break since coronavirus). It felt like you were always on your back foot trying to catch up with the work. You get a month for each assignment, try to do a little bit each day to stay on top of it.
    • The midterm was a bit over-the-top. It’s designed so you purposely run out of time. Do the T/F last and try to get something down for everything.
    • The non-linear grading scheme is spooky if you’re conditioned to other GaTech classes. My final raw score was around an 80% (assuming midterm and final are the same). Here’s the biggest piece of advice: DO NOT DROP. Unless you seriously got 0s on assignments or have some sort of issue preventing you from doing the work, do not drop. Statistically, only 3% of students get below a B.

    Overall: I felt like I learned a lot, but it was not without sacrifice. This was the hardest class I’ve taken so far, but also the most rewarding. I think back to a startup interview where they asked me to talk about the machine learning life cycle and I didn’t know what to say. I could nail that interview now.


    Semester:

    I ended dropping this course.

    The assignments are open ended - you even have to find your own data to play with. So you might think you have finished them, got a working code etc, but they will pretty much fail you because they want to read “something interesting, not the obvious”.

    It was seeming like a creative writing course. I do not have that kind of time, and getting basically an F in an assignment after working 4 days flat out, was too much to handle.

    Don’t take this course unless 1) you have tons of time to spare 2) you are a researcher in this field.

    The lectures are light, the prof is quite active and helpful. The textbook goes on and on. For a technical person, reading such textbooks is quite annoying.


    Semester:

    See “Difficulty” and “Workload”.


    Semester:

    This class really bothered me. I don’t feel like I learned what I had hoped to learn. The lectures really focus on the theory of various algorithms, and unfortunately the assignments focus on theory as well. If you aren’t required to take this course, then don’t take it. You will save lots of time by taking any other online course on coursera or similar, and learn just as much if not more.

    Pro’s:

    • The lectures are actually enjoyable to watch. Prof’s Isbell and Litman are entertaining and are good at explaining most concepts (except for the MDP lectures)

    Con’s:

    • the assignment work is very monotonous and unexciting. you will spend lots of time setting up experiments and figuring out how to run them efficiently and make plots describing the results. very theoretical, not very fun. I wish the assignments focused more on applied problems faced in the world
    • you’ll have to watch all the office hours in order to understand what to do in the assignments, since the assignment description does not explain the best/expected approaches to take. In my opinion, office hours should be for those students who didn’t understand the concepts presented in lecture. They should NOT be to explain how to do the assignments.
    • Personally, I think I could be great friends with Prof. Isbell- he’s a funny and intelligent. However I think the way that he communicates is annoying- sometimes it seems like he is intentionally being vague and convoluted

    All in all, I got very high grades on the assignments but didn’t put in as much work as many other people. My advice for assignments is watch the lectures, watch the office hours. do what the TAs say to do in the office hours. in your analysis, try to relate concepts you learned in lectures to the results you see from your code. They don’t need to be perfect, just explain them using concepts from the class.


    Semester:

    This is a terrible course that provides little value to the students and should be avoided. The course requires a large amount of effort to learn very little. There are several free machine learning courses available that are significantly better than this course.

    This class seems to be solely designed for the professor to not need to make any updates to the class. The assignments are extremely vague and 2-6 hours of office hours are needed for each one to describe what is actually required. The reason the assignments are not improved is because what is actually required is trivial, and the course appears hard as students struggle to figure out how to meet the vague explanation rather than spending time learning something.

    The only improvements to the course have come from students creating libraries for the assignments, making up for the lack of effort put into the course material by the teaching staff.

    Overall there is a ton of effort required by the students just so the professor doesn’t have to make any changes to the course. You end up learning very little compared to the time spent because there is actually little content. The course passes anyone that turns in the 4 assignments so it fails in every regard that a course could be measured by.


    Semester:

    Lectures are fine but way too long and includes too much useless distractions in my opinion; some people like that style, for sure, but as a core course, I feel like it should really stick to the content even if some people find those drier and less interesting. If they cut out the meaningless banters, they could save students about 50% of the time without missing any actual ML content… Besides, they claim that in these conversational lectures, one of the professors is unprepared and is reacting to the questions given by the other professor - however, in multiple instances I’m pretty sure the professor answering the question is just playing dumb - like how can you not know the answer to that question even if you are not prepared? I personally find this playing dumb part really annoying. In fact, I’ve watched lots of other lectures (e.g. Stanford ones) and found those to be much more concise, to the point, and with greater depth.

    The assignment grading is kind of a joke. I’m sure some TA’s provide accurate and constructive feedbacks to some of the reports they grade, but there is very little consistency in the grand scheme of things. The trick here is to not care about the grade at all. I feel like they could save some cost by just running the reports through a random number generator instead of having TA’s go through them and then spitting out a random number. Like my project 2 was kind of a hot mess but got a high grade, and my project 3 which I’m pretty sure adheres to the office hour instructions, got a barely average grade. The feedbacks were like “I know we’ve said this, but actually, do that” lol.

    Good thing is I stopped caring after project 1 (project 2’s grade was a pleasant surprise haha). I do have a pretty decent ML background, so the exams are not too much of a challenge for me. Pretty sure I’m getting a solid A, mostly just due to the exam grades.

    Bottom line: if you can avoid this course, avoid it. If not, if you can get decent grades on the exams (at least above average), stop caring about the project grades and spare yourself some frustration from thinking about the grades - turn something in and hope for the best, you may get a high score or you may get a low score - doesn’t matter as long as you get “okay” grades. If you aren’t particularly good at taking exams, well then best of luck and hope you get assigned a TA that actually cares about enforcing consistency.


    Semester:

    This must be the single most polarizing class in the OMSCS program. For whatever reason, it also easily has the most misinformation surrounding it. The class is a good survey class to machine learning, full stop. It places a strong emphasis on intuition and analysis rather than deriving algorithms and equations, which often throws people off. And frankly, students go about the class in all the wrong ways and then give blame the class with bad reviews here.

    Follow these practical tips and this class will be so much more manageable.


    Semester:

    No point of really going into details for improvements because this class will never change anything, but here’s some heads ups.

    IMO, first assignment is the easiest, and most reasonable in terms of the assignment description and libraries needed to use. (scikit-learn probably)

    The second assignment isn’t too bad either, but it’s the same week as the midterm, which makes it a much bigger struggle. (I mean seriously, the midterm could easily be a week earlier or later smh) However, the libraries needed for this, (mlrose-hiive probably) are unclear and problematic.

    The third assignment is by far the worst, with a super vague prompt, and we aren’t really given any of the tools needed to do well on this assignment IMO. (Visualizing clusters is vaguely discussed, but turns out to be super crucial for this assignment)

    The fourth assignment is also frustrating because the libraries are problematic again (mdptoolbox-hiive probably), and unclear assignment prompt.

    Office hours are bizarre, they essentially just answer a stream of Piazza questions with vague common sense answers and a hidden assignment prompt detail here and there, which if that’s all there is, I’d prefer they just type out the answer, so at least we can ctrl-f.

    Also, some people spend stupid amounts of time on experimenting (i.e. 10 hours on one small piece of assignment which is silly IMO), I recommend trying to put an upper bound on the amount of time you want to wait for an experiment.

    Also, some people hate on lectures, but I think they are pretty good. Readings are nice bonus, but honestly more supplementary and can be skipped.

    Tests are silly hard also, but at least they hard for everyone.

    Anyways, biggest gripe is by far the assignments, but hey at least the class is curved, and there’s a pretty grading curve so it’s all justified.


    Semester:

    Do not take this class for any reason

    If you are in the machine learning concentration it is worth changing concentrations to not take this class.

    This class is a giant waste of time and is an embarrassment to Georgia Tech when comparing it to the several other freely available Machine Learning Online Course which are significantly better and actually teach something with the time taken on the course.

    The assignments in no way help the students learn machine learning concepts and the grading does not correlate at all to whether students understand the topic of the assignment.

    The professor claims that the assignments are very vague and open ended to allow students to explore the topic but in reality this is just so the professor doesn’t have to change the course and can just rely on the T.A’s to grade off the hidden rubric that takes about 4 hours of office hours for them to babble through.

    If the assignment rubric was actually written out it would take about 5 sentences to get all the useful information required for each assignment.

    Again, do not take this course, you will learn very little and waste a significant amount of your life for nothing. My only suggestion if you decide to take the course is to sign up for another course so when you realize how terrible this course is you can drop it.


    Semester:

    If you are in HCI like me, you do not have to take this course, you can take CS 6601 Artificial Intelligence instead, and it has much better reviews. so if you can avoid this course just do it.

    The Cons in most of the reviews are true. If you are new to the topic of ML, this course can make you hate the field or burnout, I actually burned out, or at least my psychologist thinks so, lol. What I dislike most was the material, it was just not professional, I like the humor but not at the expense of learning, it was just a lazy delivery. The exam exercises were at least 5x difficult compared with the toy examples, it seems there is not a progression from easy to difficult in the lectures. It is a shame because I guess both Isbell Charles and Michael Littman are very knowledgeable and recognized in the area, I am pretty sure they can deliver better in didactical terms (they also seem like nice guys in podcasts :) ).

    The pros of this course are that you will touch a lot of topics of ML and you will have a lot of hands-on experience, just do not expect to be an expert, this is more like a survey course. The course has a generous curve, most of my scores were around 50 or even below and I got a B.

    While you will “learn” a lot, the actual information is not difficult, but the hidden rubrics and workload of the projects make this course unnecessarily hard. This is the example of a difficult course with a lot of material/projects but in the end, you felt that you learned very little compared to the actually invested time. That is, I am completely sure that one can learn much more and investing less time in another course.

    Recommendation to professors and students

    1. Please, update this textbook, it is horrible and not engaging to read (Tom Mitchell’s Machine Learning). I learned more from O’Reilly’s books.

    2. Office hours are important, but, please, do not use them to reveal the hidden rubrics, be clear upfront in the assignments.

    3. There are several new students eager to learn ML, just do not ruin their passion by burning them out. One way is to have preselected datasets that are no big, but enough for learning purposes. In the beginning, people just do not know how much time they will waste in iterating large or crappy datasets (students at that point do not really know what is large or good). Please be more specific.


    Semester:

    The class material was slapped together with minimal effort, which earns it a minimal rating from me. At least 33% of the lecture videos just fluff/bromance banter. The class producers created zero code framework to work with, forcing some heroic past students to do their job for them (e.g., make the mlrose library). Exam grading is arbitrary and capricious, and homework grading is draconian. The main professor (the dean of the CS department) thinks he is teaching people the same way one would teach a machine, which is the wrong choice and is really a rationalization to save him time and feed his ego. I urge you NOT to specialize in Machine Learning specifically because of this man. There’s plenty of better ways to learn ML out there.

    Yes I got an A because of the extreme curve, and yes I learned something but only because I spent an ungodly amount of time on this class. I’ve taken Intro to Operating Systems, Computer Vision, and Intro to Graduate Algorithms and spent less than half as much time on any of those. This class is 5x less efficient for learning/time than going through FastAI notebooks. I leave you with a direct quote from him on Piazza, and a brief reubuke:

    “A couple of years ago, a good samaritan student would post a ‘requirements’ document for each assignment.

    For one of the assignments (maybe it was #3), he missed something that was written down explicitly in the assignment and talked about during office hours and on piazza (he just forgot to put it in; to err is human). Some ridiculous percentage of the students missed that part because they just followed his list (some admitted to me out of band that they didn’t bother with office hours, etc).

    That’s amazing on multiple levels, and a lesson about how folks internalize information.”

    First of all, office hours are supposed to be optional. Second, one could follow the assignment instructions to the letter and still get a zero if they didn’t watch office hours. If a student needs to clarify the instructions and that many people felt the need to depend on them, don’t victim-blame the students. It means the instructions failed and the teacher is a failure as a professional. Stick to being dean.


    Semester:

    Any difficulty in this class comes from the fact that you will never know if you’re on the right track as expectations are never made clear. As a result, this class actually caused me to lose interest in ML, sad, since that is a large part of my career.

    Here’s the deal; The assignments are all easily completed (1-2 hrs each) with basic knowledge of sklearn or t-pot, its the writeup that are the issue. You have no clue what they’re looking for, and you have 10pages to fit everything (including graphs) in. In the end I just described the trends in a few graphs, didn’t even bother to think outside the box, and that seemed to work best. Essentially, dumb it down. The TAs are amateurs and won’t understand any in depth analysis or methods.

    The exams are long, but not tricky. IMHO, just watching the lectures once should be enough. Since they are open ended, try to use layman’s terms to ensure the TAs can understand anything at all.

    I ended up with an A in the class, but I didn’t know my grade until the transcript was up. :/ If you can avaoid the class, do. If not, I’m sorry…..


    Semester:

    Review: 7641 is a highly polarizing class, you basically either love it or hate it, mostly due to the assignments. You can put in 50 hours on a project and still get only a 40, which is intensely demoralizing. I managed to get a 100/100/100/87 and solid As on both exams, so I think I cracked the formula on how to succeed, which is in my advice below, but it’s not easy. The A in the class was around a 60 or higher which goes to show how much of a curve there was. I really liked this class as it was my first real ML course, but it was by far my most work intensive course of OMSCS so far.

    Advice:

    Things you can do in advance before the semester:

    • Watch through the SL lectures - https://www.udacity.com/course/machine-learning–ud262
    • Read first few chapters of of Tom Mitchell’s Machine Learning
    • Familiarize yourself with scikit-learn, figure out how to run some basic supervised learning algorithms on datasets and it’ll give you a good leg up when the semester starts. Look at GridSearch and cross validation using scikit.
    • Start looking for two datasets. They should be small (<10k rows, <20 columns) and interesting from a machine learning perspective, which could mean different sizes, number of classes, etc… I recommend going with a binary classifier if possible or just a few classes, avoiding images or continuous outputs. You’ll be using these datasets over three assignments, so make sure it does not take that long to run algos against them. I recommend datasets the UCI Machine Learning Repository or Kaggle. You get no points for cleaning the data or tackling a particularly difficult problem, so get a nice, clean datasets that’s interesting but not too massive (i.e. Iris is too simple/small).
    • You don’t need a powerful computer, but it really helps. I had an i7-9700k which I was running at 100% for at least a week, some for two weeks, for each assignment. If you have a weaker computer it’s well worth looking into Google Collab or AWS to run your experiments on. But if you pick small datasets, the CPU matters less.

    During the semester:

    • Stay on top of Slack (#cs7641) and Piazza. I was reading every new message each day and commenting quite often. Being engaged in the discussions helps you learn more than anything, plus the discussions help you figure out a lot of issues you’ll encounter in the assignments.
    • Attend Office Hours, or at least watch them on BlueJeans afterwards. The rubric of what the TAs are looking for gets discussed in the Office Hours, if the right questions are asked.
    • For the assignments fit in everything you can think of to talk about, cover all your bases. Basically if it can be plotted, plot it. If it can be tuned, tune it and show your tuning. If you need to choose something, explain your choice and why you made that choice. Talk about space and time complexity and whatever your metric for success is. Compare and contrast everything and explain why everything you put in is interesting. I played a lot with matplotlib making the labels and x/yticks bigger font so I could make the graph smaller to legibly fit 3-4 plots in a row on the paper.
    • Further you can steal any code as long as it was not written for this class, do so. O’Reilly has many great examples of scikit code you can copy/paste and change as you need
    • For the non-scikit assignments which use mlrose and pymdptoolbox, there are “hiive” branches which are newer/better. However the documentation still links back to the original fork, and thus many new features/parameters are “hidden” unless you read the source code to see what’s going on. Get comfortable opening up the github repo for the function you’re calling to see what it’s doing, and what else it can do you weren’t aware of.
    • As soon as you can get the basic framework of your code up and running. You’ll be running experiments for nearly the full three weeks you get for each assignment. You want to start those experiments ASAP. Even if the code isn’t perfect, getting something started well in advance will let you find your bugs or what you want to graph sooner.

    • Jontay offered great advice for how to work on the assignments:
    • ML assignments are long mini-project like things. You get ~3 weeks to do them. Here are some tips:
    • Plan, plan, plan. Read the question for each project and understand what you need to do for the project (it will tell you to show XYZ. Figure out what yo need to do to show XYZ). Read the other projects in the sem too, as they link up (1 ,2 and 3 are linked). You want to make choices in assignment 1 that will make your life easier in assignments 2 and 3.
    • Before writing a single line of code, you should have an outline for what you will be doing on the assignment. This will inform your report, and how you structure your code.
    • For the 3 weeks, you should spend the first 1-2 days planning, then the rest of the first week writing (draft) code. You will run the code in week 2, fixing bugs along the way (you will probably re-run experiments a couple of times, at 12-24hrs per experiment). Week 3 should be dedicated to writing your 10+ pages of report. You will get better at using the allotted space with practice.
    • Speaking of coding, there are no points for impressive. Just do what you need to do to answer the question and move on for time. I am talking here to the student who decides he (always a he) needs to run SVHN datasets with GoogLeNet. Trust me, the graders do not give a shit, and even if they do, there are precisely 0 points allocated to “OMG this assignment blew my mind”, Some of you will say “but I can present it to employers” and I will reply “yeah, and you’re not allowed to share reports”. Go ahead and do it as an exercise if you want, but my advice is that time is tight enough in ML that you’re better off doing it after the class is over.

    Review the recommendations on OMSCS Wiki: http://omscs.wikidot.com/courses:cs7641

    Recommended Texts:

    • Tom Mitchell’s Machine Learning
    • George’s Notes: https://georgek.dev/assets/ml-notes.pdf
    • Sutton & Barto’s Reinforcement Learning: http://incompleteideas.net/book/the-book-2nd.html
    • Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems (It’s on O’Reilly) - Lots of great code examples you can copy/paste
    • In general it’s good to just search https://learning.oreilly.com/ (being a Gatech student you have full, free access) for any and all concepts, particularly the code (e.g. scikit) to get good practical examples. I find it better than random code snippits online, such as medium, as there is a certain level of quality O’Reilly demands


    Semester:

    A survey course, covering a broad range of topics related to machine learning. Lectures touch the surface, and supplemental readings are provided that go deeper into the theory for the interested student. The assignments make up the majority of the effort, and are a lot of busy work. Unfortunately I don’t feel like I learned much from them. Little formal guidance is given to help you learn; and the feedback on the reports is very brief. In addition to the four assignments, there were two problem sets which were more useful from a learning perspective, but they are not emphasized much in the class, so that mitigates the learning. The exams are quality. Because most students do not learn much from the assignments, performance on the exams is poor.

    By throwing enough time into this class I was able to achieve a weighted average score of 80%, which met my objectives from a grade perspective. However I don’t feel satisfied with how much I learned (per unit time spent).

    I don’t recommend this course. Overall I think there are better courses out there for machine learning. Even self-study is probably a better option if you are disciplined enough to do so. Because this course is required for the OMSCS Machine Learning specialization, I don’t recommend this specialization; and if you are trying to learn machine learning, I don’t recommend the OMSCS program.


    Semester:

    This is the 4th OMSCS class I took and is by far the most difficult one. I’ve taken RL, AI and ML4T prior to this class. I would say this class is very open-ended compare to the other 3 classes I’ve taken before. There is no gradescope involved, so no assignment or exam answer is a pure right or wrong. You have to write a lot of explanation in all the exams and assignments to show your understanding.

    I’ve got 92/99/100/100 scores for the 4 assignments which is relative high compare to the majority of the class. My midterm is relative low (around 30%) which is mainly because of I only finished half of them, and final score is okay (70%) and got an A at the end. So here is some of my suggestions to succeed in this class:

    • The content is actually not that difficult, a lot of the topics has been covered before in other classes like AI and RL, but you still want to watch all lectures videos and understand them well before you start the assignments. Reading materials are optional, I found midterm covers some materials that’s not well explained in lecture videos but in reading materials. But I didn’t end up complete all readings but still did okay in this class.

    • Start really early for each assignment, on average I started 2.5-3 weeks before the assignment due date. I’ve seen people start 3 days ahead and end up getting not great score and they are wondering why they have a low score?? On average I spend 30 hours + on this course each week, and the assignments are taking more time than the lectures for me.

    • So all 4 assignments are very open-ended, and it requires you to pick your own datasets and write analysis using various ML algorithms discussed in this course. - The coding part usually takes me 1-2 weeks. There will be a lot hyperparameter tuning. Also sometimes when the results doesn’t make sense, I need to start over with a new dataset or some new metrics for measuring. So it’s very much an iterative process. You have to keep in mind, every result/graph you produces you have to write about it in your analysis. - Write as much details as you can, any assumptions you made and any hyper-paramter you tuned. Try to explain all the results you’ve got. That part also will involve you doing some research outside the class. For example, you will be apply different supervised learning algorithms on the same dataset and some will do better than the others. After doing research, you may find out some algorithms does worse with dataset with a lot of attributes and that explain the result you get etc. - I used some conference template for my analysis but it’s not required. But the reason I use those is to 1) make the structure of my report clear so the grader can see what’s my thought process 2) requirements are usually between 7-10 pages and there are really a lot of write in that limited space, using a conference template allow me to insert more content and graphs in the report. So I recommend doing that.

    • A lot of people mentioned this already. The assignment requirements are relatively vague. It will ask some questions but it won’t say clearly what kind of comparison/graphs are required. But TA usually will discuss these in more details during the office hours. So try to watch each office hour recording. That will help a lot on the assignment.

    • Another thing I’ve heard but not sure if it’s actually true is that the grade on the first assignments is going to somewhat affect the later grading. if you score high on the first one, better chance to score high on the later assignments. So try to do well starting from the first assignment! Also this is not to suggest that if you do well on the first one, you can take it easy on the rest of them.

    • The midterm is a disaster for me. The teaching staff didn’t made it clear that what type/how many questions we are going to face in the exams. So I started with a bunch of T/F in the exams and I wrote a long paragraph explanation for each of them. After I finish all the T/F in the exams and there is only 30 minutes left, I realized there are 7 more questions at the end that worth 10-20 points and the T/F only worth 2-3 points each. So I didn’t finish the exam and got a super low score. So my suggestion will be, remember to scan through the whole exam first before you start and better manage your time. The final has double the time allowed and a similar amount of questions as the midterm so it is more doable in my opinion.

    In general I think I still leant a lot from this course. But this is definitely not my favourite courses. If I were to make suggestions, it will be better to have a mix of written analysis and gradescope assignments which have more clear criteria and you know strictly it’s right or wrong.


    Semester:

    The assignments are designed to give you the freedom to explore and experiment with machine learning algorithms in your own dataset. All the negative reviews about grading are true but a large portion of students still do well in the final grade. An A paper is one of an expert in the field, I would rather have this than an easy A. If you don’t get grade anxiety easily then I highly recommend the class.


    Semester:

    The class has some pros and some contras.

    Pros:

    1. nice video lessons
    2. the assignments are actually not bad, you get to play with different ML algorithms and get a better understanding from the lessons.

    Contras:

    1. it is all OPEN ENDED, nothing is deterministic. Assignments are graded on the analysis reports. Exams are open ended questions only. You are subjected to TA opinions or maybe an AUTO grader with word search.
    2. as a result the GRADING for both assignment and exams are quite random.
    3. there is a mystery rubric for each assignment. There are some clues given during the OH.
    4. the grading feedback wants to be detailed with templates, but the ones direct to you are kind of unclear and make you say ‘I thought I did that’..one more reason to think that there is an auto-grader behind

    Bottom line, lessons and pizza are not enough. OH and slack could help to solve the mystery class. Try to do things like an auto-grader will evaluate you. Overall you will have to do lot of wondering about everything. Or if you are not shy, ask as much as you can to make sure you are not missing something …because that can/will happen quite easily.

    For the class

    1. I would recommend better descriptions of the assignments.
    2. Rotating the TAs for grading (this could be already done)
    3. At least have the assignments/exams graded by TAs twice in a blind way, where a TA does not know what the other TA did…to avoid bias reviews.
    4. if there is an auto grader make it available to students so they can learn how they are judged


    Semester:

    Mind-blowingly terrible. Professor (also the dean) had his fun. The lectures, assignments and the piazza is a place for him to show his arrogance. I don’t believe this kind of course exists, but here it is. It IS a chance for you learn how the real world is – this kind of person gets to do whatever he wants, and nobody cares, since it’s an online course. Which leads to a question of whether this program is worth it or not.


    Semester:

    This is a great class, and required for the ML specialization. The format is pretty simple - lectures focus on the intuition and theory behind different learning methods, the four assignments ask you to take what you have learned and use it to explore some datasets, and the exams test what you have learned.

    The lecturers have great chemistry, but there are puns and jokes that add some color to the lectures but could annoy some. Getting through lectures at 1.5x - 2x speed helps a lot. I personally enjoyed the supervised learning lectures and the reinforcement learning lectures the most.

    The graders are tasked with reviewing some crazy number of student papers, so there is a chance that your paper will only receive a small amount of attention. For this reason it is important to write clearly, structure your paper in a logical way, and use a lot of graphs. I found that when I spent more effort, I got better grades, and when I did the RL paper in a single night, my grade suffered.

    The average rating on this course has gone down over time, but the course has not changed. I saw more students asking for answers in this class than I have seen at any other OMSCS class. Take the bad reviews with a grain of salt. If you have a pulse you get a B, and the curve is very generous.

    If your goal is to get into ML engineering, data science, or whatever, you need both fundamental knowledge and trendier stuff (like deep learning). Do not skip this class to only take deep learning, as you will have a big hole in your understanding. If you only know the theory around neural networks, everything looks like a NN-shaped nail.


    Semester:

    I have audited different machine learning related courses before, either in an online or on-campus way. Since I chose the ml track, this course is compulsory and I took it in 2020 fall. I have to say this is definitely the worst one among all ml courses I have ever taken. The two courses I had before focus on theory and application respectively. Even though machine learning is sometimes hard to be understood, the courses try to combine the course materials and homework together to make it more clear. But I cannot see this course (CS-7641) provide that. The course contents focus more on theory. However, the homework is purely about the application of machine learning algorithms. In this case, homework cannot help students better understand the course materials. And the course contents cannot help better learn how to apply algorithms to actual problems. They are almost disjointed. The instructors are pretty professional in the field of machine learning but I do believe the contents of this course need some improvements. Some students in Piazza would argue that machine learning is a subject of application and defend that the course setting is good because we have the chance to apply the methods to some real-world data. But in that way, why should I pay for this course instead of just joining some free Kaggle competitions? I know application is the core of machine learning but this course did not give me at least the most basic instruction about that. I did learn something from this course, but I don’t think it is systematic.

    In addition, homework is annoying. The criteria are vague. You have to spend a lot of time and energy to obtain related information from the office hour or online sources to know what is expected for the homework. And the final grade also depends on different TA’s.

    So, my suggestions are: 1) If you are not in the ml track, I would not recommend you to take this course. There are definitely better choices from other sources. 2) If you are in ml track, try not to take another course with a heavy workload, and try to do the homework as early as you can. And absolutely, you need to refer to some other materials to help the understanding.


    Semester:

    I don’t like this class, especially the assignments.

    1. I get the point that the instructors want to design this as a higher level course where students should go beyond implement an algorithm, but actually can understand the mechanism behind it. But given that not all students in OMSCS were trained as ML experts or even computer scientists, I think the design of this course failed to get the balance of walking students through key technical issues and encouraging students to explore ML algorithms on their own.
    2. Coming from a social sciences background, I did a lot of exercises in my previous statistics/data analysis courses that are similar to the assignment setup in this course. Basically, you are not required to write an algorithm from scratch, but you need to explore the data with a given set of models/algorithms and explain why certain things work or don’t work on that given data set. The key difference is that, in my previous PhD level class, there were only 5 to 8 students in that class, which means I was given the sufficient attention from the professor to discuss my goal, my data set throughout the course, and my professor and TA knew the nature of my data set well enough to point out what could be the next step. For this class, one TA is in charge of 50 students who were working on probably 100 different data sets. The feedback is basically is that you didn’t do this and you could do that. Of course, I knew I didn’t do this but could do that, but what “this” and “that” are in that specific context?
    3. Along with my second point, if you absolutely have to take this course and is a ML rookie, I suggest you use your winter or summer break wisely by going through the four assignments (especially the ones where you need to choose your own data sets). Experiment on different kinds of data to see which one gives you the best results that you can discuss your your essay and have sharp comparison/contrast.
    4. I don’t have a hardcore technical background, and yes, I am happy with a B (I think my final grade is borderline B/A) and I definitely will put CS/ML on my resume. Does this mean I am happy about my experience with this course? Hell no. It only means that I probably need to find other resources, take other courses, reread the text book chapters to help me feel better about my ML knowledge so I can be more confident in my future work. But, it sucks.
    5. The video ….I watched the course videos at least three times. The first time is just for me to determine which clips are totally useless and filled up with the two instructors’ name-dropping, mansplaning, no-so-funny jokes chit-chat. These clips probably weren’t that bad if they branded themselves as geeky podcast channel.
    6. Lack of transparency. Many comments/reviews have talked about the issue with grading rubric, hidden information from office hours, mysterious curve/grade schema etc.
    7. Generally, from my perspective, I won’t suggest anyone drop that class after midterm if the main concern is getting an A. I already spent 2 months on this course, I will push through no matter what. Still learned something afterwards and check the course off list, so I can move on. I always wonder how they would handle the class if 40% of the students hadn’t dropped.
    8. My roommate introduced me to the world of OMSCS. I really appreciate the opportunity. But TBH, now there are many online master program in data science, CS, and alike in US. GaTech’s will face competitors. If the faculty team won’t change anything or do anything about the bad reviews, if the team simply recycles dated materials without improving it, I don’t know, GaTech OMSCS reputation could be gone.


    Semester:

    This class has good and bad elements to it, but I would say overall bad and my least favorite class in the program so far.

    The good part is that the assignments are very practical and can be approached like a research project with exploration and use of any tools you like (instead of writing your own algorithms). I was inspired to use some of the techniques at my work. The tests also focus less on rote memorization than synthesis of ideas which is cool. The instructors seem to have fun teaching, which is encouraging.

    The bad part is that the assignments say they encourage exploration but are really graded on a secret rubric that you must find out from office hours! You could waste a lot of time going in the wrong direction on the assignments and get a bad grade because you could not divine the secret rubric’s requirements. While the instructor may be enjoying himself on Piazza (good to have fun), some of his responses end up being a vague and cynical dismissal of the question when a clear answer would have sufficed.

    If you are in the ML specialization, you have to take the course so just go into it with an open mind and be ready to sink a lot of time into this class. If not, I would spend one of your 10 course slots on something else.


    Semester:

    I don’t understand why a lot of students still choose “strongly liked” this course. You should ask yourself whether you like the whole setup of this course or you just love machine learning in general! Over 50% drop rate in each term does mean something!

    To student who wants to know whether you should take this course:

    1. if your specification is machine learning, you have no choice
    2. if you are completely new to machine learning, don't take it, take ML4T (CS7646)
    3. if you are new to machine learning and you have taken ML4T, don't take it, take Reinforcement Learning (CS7642)
    4. if you have taken CS7646 and CS7642, don't take it, take Deep Learning (CS7643)
    5. if you have taken CS7642, CS7643, CS7646, dude, you should change your specification to machine learning! GOTO #1
    6. if you still don't feel confident, explore the internet, there are plenty of great resource! Be specific!
    

    In summary, in order to gain the knowledge in this field, you DON’T have to sacrifice your entire family time, and suffer the pain that the assignments in this class gives you. Yes, you will learn something eventually, but you would also waste a lot of time understanding the implicit standard from the graders!


    Semester:

    This course is a joke. And anyone who supports this course on OMSCentral or Piazza is also a joke. I feel sympathy for those poor guys who really do not know what is good and what is bad. It is for sure a disaster for them to get any improvements in the ML space by not knowing what they are supposed to learn. I am not talking about the assignments and exams in this course (I am getting average 80+ in the assignments and 75+ in the exams though). Even from the lecture content perspective, the course is a joke. I do not think Prof Isabell himself understands the ML algorithms from end to end. The lectures perfectly bypass any important technical details of any ML algorithms which are important for graduate level students, which I do not think is a coincidence. I am pretty sure the Great Great Prof himself does not understand them fully. Can anyone imagine a graduate level ML course does not even mention the concept of loss function in any single lecture? Isn’t it a disaster for students not to be able to answer questions like what the difference of loss function to optimize for a classification and regression problem in a job interview? Waste of time and money and I feel bad for anyone to take this course.


    Semester:

    I loved this class. And I may be on the very few minority that love this class. This class feels and is the actual graduate level class.

    There is no hand holding and directions like do x and y and you get to z. There are many classes in this program where your work are bounded by arbitary grading rubric. This class is not one of them. The assignments are unbounded by any sort of annoying grading rubric and we are free and supposed to explore as much as we can and write a report for each assignment.

    The class has no rubric in traditional sense. But you can and should attend or watch all the OH later to hear what kind of exploration or graphs TAs expect. The you can explore and write MVP hw report and then keep on exploring further. This helps in learning a lot.

    This is what a true graduate class looks like. The report writing helps you communicate what you did. And this is all what graduate education is about. What is the point of all code and research if you can’t write a cohesive write up/journal article to tell the whole world?

    All said this class takes a lot of time. I spent on average 25 hrs/week. I could have spent more on it if I had time but I had to time box my committment for the class to spare time for other aspects of my life.

    I am staying at B for now and I am happy that I took this class as I learned a lot abt ML.

    Unsolicited advice - if you are planning on taking this class play around with python scikit packages, mlrose, mlrose-hiive, mymdptoolbox and gym open ai.


    Semester:

    Wonderfully designed course. Typically, courses have dry exams, and coding assignments. This course is designed around making the students write papers that describe solutions they developed. It is very hard to get good scores without a thorough understanding of the subject. Exams were a delight as well, I enjoyed answering the questions. The grading of the exam is very strict though. At the end of the class, I feel I learnt a lot especially the fundamental concepts of ML. The format of the class assignments aids in learning and helps in retention of this knowledge. Professor isbell is involved in Piazza answering questions.


    Semester:

    This is the worst course I have had among the 7 I have taken so far. It has 4 assignment and two exams. Exams are pretty decent. Midterm is quite lengthy but questions are something you would be familiar with or will challenge your understand of the subject. The assignments though are disaster.They are too open ended . They dont mention much in the assignment about what they want but will point out that there wasnt much. Even the feedback that they say will help you isnt upto the mark. well most of the time I should say. There is one feedback which i sent for review was really good but other feedbacks were useless with generic statements like your analysis is wrong or it lacks depth. I enjoyed all my classes in omscs so far, AI, AI4R, ML4T, HDDA, NetSec etc but this was where neither I felt I learnt much nor did I enjoy it. Since this is a mandatory course foe ML specialization, my recommend to students would be to start the assignment early, they would look too easy but you need to do lots of experiments and will need time. Put in as much as you can with smaller figures and multiple figures in the same row. Try to write it as if you are writinng a technical paper. simlar language or use of referrences that I felt fetched better marks. dont get too demoralised by the marks you get from assignments.. they dont reflect on you but just the profs who designed this course poorly and lazily.


    Semester:

    This course was not fun. It could have been fun, but there were a number of stylistic and pedagogical decisions that made it not so. First, the basics: this course had 4 individual assignments and two exams. The assignments required you to write code in either python or Java, usually heavily relying on third party packages for the meat of the work. Code was not graded at all, only the reports, which were limited to 10 pages in most cases. The exams were short answer format. There was no group project, thank God.

    The primary issue of this course is one that’s been hammered in other reviews: the grading is awful. This is just one of those classes where you will never know what grade you’ll get until it’s over. You’ll probably sit at a 50-70 average for the whole semester, and then there will be a 20-30 point curve. The assignments all have hidden rubrics, and the requirements are never told to you. Apparently this is by design, which is ridiculous. ML4T covers much of the same ground as this course, and I learned much more there, and I was able to make sure I was on the right track based on my project output and grades. If you want even a chance at making above a 50 on an assignment, you have to pore over the office hours to tease out hidden requirements that you’d have never known from the assignment instructions. And even then, you’re looking at a seemingly random grade back, with insufficient feedback on what you messed up and how many points you lost because of it.

    Another, but less significant, issue is that the lectures are pretty long-winded. They’re done by two professors, not just one, so they’re all dialogues, which is an interesting idea, but in practice it just results in videos that seem twice as long as they could be. And the jokes… I won’t give them too hard of a time, but sometimes it was hard to get through the videos.

    On the plus side for this course, the exams I actually found better than in other courses. Up to this point, my exams had always been either very general closed-note multiple choice questions or extremely nitpicky open note multiple choice. In ML, they’re short answer exams, with ~18 questions that take 90 minutes (midterm) or 3 hours (final). I found the questions to be pretty fair and reasonable assessments of the course material, though the grading is again the very skewed sort where a 60 ends up being an A. The other positive is that every assignment does result in a detailed breakdown of the point distribution, which should give you an idea of whether you’re doing globally dismal or just locally dismal.

    All-in-all, this was a tragic course that I wanted to enjoy, but couldn’t. Because of the grading and the curve, you’re more in competition with your classmates to make sure you’re above the mean rather than just trying to score highly on each assignment. Unless you absolutely have to take this course, I’d suggest avoiding it and taking ML4T instead, which was great. If I had to rank this course with respect to the courses I’ve taken thus far, it would go like this: KBAI > ML4T »> SDP > HCI »> ML >IIS.


    Semester:

    This is my first comment for OMSCS. As people working in the industry full-time, I normally don’t take time to write reviews but I feel strongly that I need to write something for this course.

    Besides all the cons a lot of folks already mentioned about the ambiguity in assignment and grading, I also want to mention that the content setup is ridiculous. One specific example is that one of the randomized optimization algorithms MIMIC instructed in this course. The instructor set up a whole chapter just to introduce this algorithm that is a paper published by himself in 1997. I admit that the paper was accepted by NIPS and it was a great achievement. But so what? It’s just not practical nor relevant to modern ML at all.

    Compared to core ML courses from peer CS programs such as NYU, Stanford, or even MOOC like Coursera, the setup and content of this course is much inferior.

    Just avoid this course if you are not committed to ML track. Take 7643 deep learning if you’re really interested in this field. Hopefully for one day, this course gets kicked out as a mandatory for ML track. This is what a single point of failure in real life looks like.


    Semester:

    A mandatory course if you choose the ML track, and it will actually make you question your decision to learn ML at Gatech. This course is set up in a way so that people with no hardcore technical background, people who prefer to bullshit their way up would happily get a B, and go ahead to put CS and ML in their resume. (You will see some of their “liked” comments soon.)

    For people who actually care about CS or ML, this sucks. You basically learn not much new or deep about ML, and instead of learning, you spent tens of hours writing papers, and try to guess what kind of paper would make the TA happy, – the answer is: it’s completely random. I’ve got scores ranging from 40-80, with the biggest difference being the font I use.

    Imagine a student with strong technical background working hard to keep a straight A, but ended up being “randomized” into a B in this course.

    My takeaway is: avoid this course, if not this program (I chose it because it’s cheap), if you care about ML or CS, or your grades.


    Semester:

    Note: Originally I marked this course as Neutral, but after some reflection I think it deserves a ‘Like’. I think the raw frustration of the assignments, and anxiety about getting a decent grade tends to overwhelm students, which is leading to a disproportional amount of bad reviews. The assignments suck, but I don’t think we shouldn’t allow that to monopolize our reviews when the lectures/reading overall content is well done.

    The Good

    • Lecture content. This is my fourth OMSCS course and it’s the best explaination of course topics I’ve had. Litman and Isabel go in depth on topics and aren’t afraid to discuss underlying math and CS foundations. It’s not exhaustively comprehensive - for that you have to read the assigned readings - but it’s the perfect amount for a lecture. In all my previous courses I’ve felt frustrated about the survey-like nature of all the material - but not here. My only criticism on the lectures is that they often aren’t very consistent about defining their variables, and underlying assumptions. Being more rigorous about this would help a lot.

    • Exams. The mean exam score was 51%. Difficult exams with essay and math questions. This is one of the rare OMSCS courses where you’ll need a calculator while you go through exam study. I appreciate the professors didn’t take the easy route and just go with multiple choice questions like other classes.

    The Bad

    • Assignments. A lot of the good parts of this class is unfortunately undermined by the frustration, and uselessness of the assignments. Not only will you learn very little doing them, you’ll also get low marks. As other reviewers here have described, the assignments are open-ended explorations with a hard limit of 10 pages. You are told be selective in what you present, given a ton of work to do, and then inevitably penalized with vague for not including enough of some particular analysis in your assignment. Feedback is useless and doesn’t carry over to the next assignment, and many of us students felt like we were just throwing things at the wall hoping it would stick. Assignments are really great opportunity to reinforce and synthesize information we learned in the lectures and I feel like this course just wastes that opportunity, and unnecessarily creates a lot of ill will with the assignment structure.

    • Office hours. The TA’s asked everyone to post questions on a Piazza thread, then just went over each question and answered it - no matter how redundant or irrelevant the questions were. Sometimes they spent too much time answering thread questions and ran out of time to properly explain some of the specific assignment evaluation criteria. They also didn’t like students to engage with them during the office hours, and instructed us to post follow-ups in the thread… which really defeats the purpose of having office hours in the first place.

    The Chaotic Neutral

    • Jokes. I see a lot of people hated the jokes and puns in the lectures. But I think these people are forgetting we wouldn’t have all these great Smoov and Curly memes without those very jokes. What would the OMSCS Slack be without that!?


    Semester:

    Did you like this course?

    big MEH… no foundational theory, hand wavy math, 4 papers with shitload of writing…not my cup of tea. TAs are good though , and some of the puns. This is more of an introduction to the field than THE main ML course of the most popular specialization at a world class university. And the lectures were more of a nerdy podcast than a rigorous graduate presentation of the field.

    Is the prof rude or condescending?

    Nah smoov is pretty sweet…

    Grading?

    A mess but everybody gets a B

    What’s your advice for me, innocent soul wanting to learn me some ML?

    Skip this course if you have the option, otherwise just don’t go in with high expectations (I think that’s what I did wrong), and do the readings before the semester if possible.

    So there is nothing good about this course, at all ?

    who said, lectures are entertaining, they have some good intuition, and some of the puns were good

    What did you hate the most ?

    Learning the truth behind coffee and writing 4 papers of 10 pages each that graders skim through

    How did you know they skim through papers

    I would have gotten half the grades I got if they didn’t


    Semester:

    This course is an embarrassment for OMSCS. I don’t understand how the TAs grade the papers. I took RL for the summer before this class and found the TAs for that class to be one of the best and most intellectual people but ML it’s more than the polar opposite. Anyone who is trying to do a ML specialization needs to take this class but if not then NEVER take this class. The office hours are also very crappy, in that the TAs don’t interact with the students at all. I’ve taken 4 courses priors to this class including AI, and RL and have all A’s in the classes but this class is horrendous in terms of grading and how the TAs conduct the office hours. If there is another course you can take instead of this class in the future for ML specialization, then I would strongly recommend not taking this class. This class should seriously considering changing the TAs or changing the office hours style to the RL/AI classes. Apart from how the class is conducted, the projects were not so helpful either. The first project is the only project with something that you’ll reuse in the real world. I understand that the projects are trying to make us learn the practical side of ML but the grading discourages to the point that you don’t even wanna do the next project. Like I mentioned I took RL before this class and got an A easily by getting perfect scores on multiple projects but for this even in the RL section, I couldn’t get a good grade. I don’t know what they’re looking for in the projects to be honest. I would recommend not taking this class and taking other classes that provide more value to you ML skill set.


    Semester:

    This is by far THE worst course I took throughout the program. This is my 8th course, so I am almost there, but this class made me question if starting the program in the first place was the right thing to do. This is a requirement for all ML graduates, so to be this poorly managed for so many years, and for no one to fix it, that says a lot about the program.

    You just won’t know what/how you’re doing in this class. Unless you feel ok with getting a ~50 on papers that you spent around 2 weeks writing, then you should work your way around this class.


    Semester:

    Machine Learning: CS-7641 was my 8th course for the OMSCS program and is by far the worst I’ve experienced. If this had been my first course, I likely would have dropped out suspecting that all of the other courses were of the same poor quality. Out of my entire career including undergrad, graduate courses at another university, and graduate courses at GA Tech this is without a doubt the worst educational experience I have ever experienced. I can’t stress this enough, this is the absolute worst class I’ve ever had by far.

    If the intent of the course is to allow TA’s and the Professor Isbell to express their wit and sarcasm when responding to student questions regarding ambigous assignments, then I suppose it’s a success. If the intent of the course is to align with the GA Tech mission statement “to provide career education, resources, and experiential opportunities”, then the course is an abject failure. I learned in spite of this course, not because of it.

    The pedagogical approach to this course is despised by students en masse. I’ve spoken to several other students who have taken the course in previous semesters and the same general thought is shared by all, that there has to be a better way to teach and evaluate this course. Perhaps there is some reason that despite repeated feedback it hasn’t changed. This feedback, like all of the previous ones, can be ignored as well. I’m writing it as catharsis, knowing that if things haven’t changed yet they likely won’t in the near-term. All I can do is encourage people to avoid the ML specialization due to this one absolutely terrible class.

    I hope that everyone involved in the teaching of this class seriously contemplates the punitive and adversarial way in which they approach this class and reconsider their teaching and evaluation methodology.


    Semester:

    I had a very bad experience. The main reason is that the rubric is extremely unclear and I never know what my grader wanted in those assignments. As a result, no matter how much time I put into them I got random scores, ranging from 40-80 (the average score of the whole class is around 60). And every time I got the same feedback, saying I should have analyzed more about something, which told me nothing. How can one include all figures and thorough discussions in a 10-page report??? This really ruined my interest in learning. And by the way for all assignments I didn’t really “coding” machine learning; all they wanted is to apply some packages out there on some datasets and do plenty of experiments.

    Speaking of the course content, I feel this is an undergraduate level class or a machine learning class designed for other majors, not CS. The instructors assume that students have no background in very basic machine learning. I do not like the videos either - too many jokes and talks interrupt my thinking. Anyway, I do not think I learned much from this class.


    Semester:

    This is one of the worst classes I have taken so far. From the absurd curve to the extreme disconnect between project work and lecture material, this class feels really poorly planned. But actually, you’ll constantly hear that it’s by design. Additionally, the TA staff do try, though their efforts are mostly in vain since the objectives are so unclear, again, by design. It’s one thing for a course to be going through growing pains, but another for the course experience to intentionally be so poor. I have a lot of respect for the professor and all the involved staff, though I really hope they rethink the premise that people can actually learn effectively with so little actionable feedback (such as: meaningful grades, assignment commentary, even just clear standards, which are not present). Even when a TA adds thorough feedback for an assignment, it doesn’t really help for the next one, because the standards for the next assignment are going to be different - the only similarity being that the next assignment’s standards will be just as indiscernible as the last’s.

    For people who are still planning their curriculum, I encourage you to work around this course and the Machine Learning specialization as a whole, since this course is a requirement for it. Unless they revamp this course, I really hope it doesn’t remain a bottleneck requirement for everyone in the ML specialization.


    Semester:

    Instructor / Dean Charles Isbell seems to delight in not giving straight answers to simple questions. He may know a lot about the subject he’s supposed to be teaching, but he doesn’t seem to know much about how to be a helpful teacher.

    For example, take this tidbit from one of the lecture videos about support vector machines, at about the 5:20 mark: “Now it’s so obvious how you get from one step to the other, I’m not going to bother to explain it to you. But instead tell you to go read a quadratic programming book.” Is that supposed to be a joke?

    And a little later on, this gem: “What I really need you to believe, though, mainly because I’m asserting it, is that these are equivalent. So if you buy up to the point that we are trying to maximize the margin, and that’s the same thing as maximizing two of the length of w, and you buy that that’s the same as minimizing 1/2 times W squared, then you just have to take a leap of faith here that, if we instead maximize this other equation, it turns out that we’re solving the same problem.” I get a teacher saying “Just trust me on this” for something basic like 1 + 1 = 2, but on much more complex topics like Machine Learning, saying “Just trust me on this” is lazy and bad teaching.

    I get that having a teacher be nice isn’t a requirement for them to be a good teacher, but sure would be nice to have. Might even make them a better teacher. Food for thought.

    One more thing worth considering: if you can’t be bothered to be a good teacher while being a dean, maybe you’re spreading yourself a little too thin.


    Semester:

    This course is not hard in terms of what they teach if you’ve ML experiences and mathematics background. However, this course is really eye-opening. They have hidden requirements for the assignment that is not listed in assignment instructions. The hidden requirements are buried within all the office hours and piazza posts.

    What makes me feel more frustrated, is the attitude of the instructor has to the students’ comments on making assignments instruction more clear. To summarize his and the head-TA responses to a lot of students’ questions and suggestions - it’s “THIS IS ALL YOUR FAULT. YOU NEED READ EVERY POST IN PIZZA AND LISTEN TO EVERY MINUTE IF OFFICE HOUR TO FIGURE OUT THE HIDDEN EXTRA REQUIREMENTS FOR ASSIGNMENTS”.

    Many students’ have pointed out that if certain requirements beyond the ones mentioned in assignment instructions required, it would be better to call it out. Then the instructor will say the intent for the assignment is to explore and do research. That is exactly what many students have been doing here, however still got so many points deducted by not including the hidden requirements.

    After taking so many courses in OMSCS and I have very good experiences so far except this course. I would say taking this ML course is very eye-opening to me. Especially eye-opening about how instructors react, defend themselves so hardly, how they comment to make students feel even more frustrated (even though that’s not their intent) and I’m definitely disappointed by their lack of ability to listen to students thoughts

    Good luck to anyone taking this course. Hope one day this course is not a requirement for ML specialization anymore.


    Semester:

    Bottom line. This course is bad. Very bad.

    I took this course two years ago and I thought it was a pretty bad course. It’s sad to see that it looks like it has only gotten worse judging on how precipitously its rating has dropped from 4.3 in Fall 2018 to one of the lowest rated OMSCS courses in the program as of today.

    First it is not a real ML course. It is an easy watered down “Practical ML” course you would see in some bad bootcamp or some Analytics/MBA program but you would never see a course like this in a rigorous CS program especially at the graduate level but even i think at the undergrad level.

    This is because the instructor is not very invested in this class. Not only were his piazza posts constantly mocking and making fun of students for daring to ask supposedly dumb questions but Instead of creating programming assignments and mathematical problem sets he decided to tell students to do whatever they want for the assignments with the result that you get a bunch of mediocre “data analysis” papers with no real ML rigor or theory to them.

    Some people found the grading harsh. I thought it was unbelievably easy to get 100 if you knew how to write. a paper.

    The exams are tough but only because the class spends close to time actually learning and practicing the theoretical aspects of ML so that’s why you have no idea what the questions are asking when you see them. But even if you do know the questions, you will realize they are only testing your knowledge at a very high logical level rarely if ever testing you on mathematical expertise and rigor. They could make for some fun interview questions but you won’t walk out being “an expert in ML”.

    The actual math in ML is treated like a joke and considered something “below” investigation in this course. The hostility towards math by the instructor is baffling. Not only do they not encourage you to learn any math they will actively make fun of you for trying to be smart.

    Finally I should say that in my semester you could “go copy whatever you want from the internet”. The instructor actually mocked students for wanting to write their own code. Ultimately this cavalier condescending attitude backfired because it resulted in absurd scenarios where students were copy pasting entire github repos and copy pasting the exact same charts.

    I am told that Isbell walked away from his policy next semester but I am curious if an apology was ever made to the students who had bravely tried to highlight the whole absurdity of this class.


    Semester:

    I dropped this course as a result of disliking these two instructors. I don’t understand their humors and I did not appreciate as well. TAs graded your assignments casually without even providing detailed explanation why you lost points, they just said: you did not do this problem well, you did not give a good reasoning, etc. The exams were very ridiculous since they could not distinguish hard working students and non hard working ones since most people receive low scores. Finally, when I know this course is a must one for machine learning concentration, I ended up with changing my concentration area.


    Semester:

    Not that different from the ML course for stats or CS that you took during undergrad. Definitely not that difficult people made it sounds. Workload is very manageable


    Semester:

    This is a time consuming class. Make sure attend all TA office hour or review the recordings.

    Also sharpen your python skills scikit-learn & matplotlib/seaborn would be your friend.

    For assignment 2 & 4, probably use MLRose & openAI gym/MDPToolbox respectively.

    Maximize out the report.


    Semester:

    In this course you will hone your time management skills, sharpen your mind reading ability and also learn something about machine learning.

    There are four assignments and two exams. The assignments will be judged against a hidden rubric, so the key here is to guess what the reviewer expects. You may, or more likely won’t, receive meaningful feedback. In one case, the hidden rubric was returned with one of my assignments, which was interesting. You are shooting for somewhere around 75% on these. 100% would be a waste of time. Just get these over with as fast as possible.

    The exams, oddly, were surprisingly well done. It’s a good learning experience, and preparation is required. Despite the nonsense posted about short time on the midterm there is plenty. Not extra, but enough if you are prepared. You probably want to be getting around 75% on these exams, or maybe a bit less.

    If all this sounds like this course is about what not to learn rather than focussing on machine learning, you are correct. I rated it as 15 hours/week to get an A(I got an A) which is probably a bit more than I spent because that is the upper limit on how much time I have!


    Semester:

    This was easily my least favorite class in the program. I don’t know why, but I just could not figure out how to succeed on the projects. I’m fairly comfortable with all the topics in the class, but for some reason, the more effort I put into my reports, the worse my grade was.

    I recently read in a slack message from a former TA (or a person who claimed to TA the class) that the graders only have a few minutes to grade each report and can’t feasibly read all of them. I guess who knows if that is true, but if it is, then the grade penalty for unsuccessful regrade requests is pretty unreasonable.

    This was my only B in the program and the only class where I think the quality really suffered from the large class size. The lectures are decent so I definitely recommend just watching them on your own time and skipping this class.


    Semester:

    This was a class I was very interested in and found the class educational, demanding, challenging, and frustrating. This was my seventh class and while not my favorite, I did like it.

    For those saying this class was a waste of time because it’s too easy. If you just want to skate by and do the minimum to get a B, the curve definitely makes it possible. If you want to push yourself to do better, this class makes that possible as well. I guess it depends on what your goals are.

    The grading on projects was absolutely frustrating. You would get a few vague sentences back and end up with a 60% on your paper. Next time you’d get a few vague sentences back and end up with an 80% on your paper, even though you thought your first paper was better. The absolutely biggest factor for me improving my grades was to go to the office hours and take notes on everything the TA’s said they were looking for. The professor presents the papers as a way for you to explore your solutions, make your case, justify your decisions. Like you have some freedom in how you write it. You do not, just write what the TA’s expect. They expect reasonable things, but there’s no wiggle room on that.

    One thing I really wish they’d change was the fact that they don’t show examples of quality work. After any of my papers, I could have learned an absolute ton if I could have compared and contrasted my work to the work of others. Or had a peer review phase of the papers. Knowledge based AI had both of these and I learned a ton because of it.

    On the lectures, I found them to be entertaining and informative, but I can definitely see the humor annoying some students. It is what it is. I enjoyed the book, but I only made it through half of the readings before I got swamped working on the projects.

    The projects were exhausting. It took a ton of time experimenting noting, justifying, and writing. Some weeks I was putting 60+ hours in just to maintain. I was shooting for doing well though, and I ended up with an A.


    Semester:

    ML was my 4th course after AI, RL and CV. There was some overlap between AI and ML as both covered randomized optimization algorithms like genetic algorithms and simulated annealing, as well as RL concepts like value and policy iteration. Obviously there was also overlap with the RL course since they share a few lectures.

    Stealing other students’ code (past or present) is no longer allowed, so coding up all the experiments and then writing a 10 page report for each assignment got tedious fast. This is compounded by the fact that the 1st assignment was by far the most interesting. Though I attained the maximum possible score for the 1st assignment, by the 3rd or 4th assignment I was no longer motivated to produce a report that was as good as possible.

    The exams appear to be graded quite strictly. I passed both the midterm and final but my scores were worse than I had expected. The average scores were also pretty bad - failing or bordering on failing. Still, I did well enough on the assignments and exams to get a solid A before any grading curve was applied.


    Semester:

    If this class was a Manning brother, it would be Cooper.


    Semester:

    My first course in the program and boy is it ever something. The assignments are extremely lengthy, the exams are insanely hard (I got like 30% on the first one), and the lectures are EXCELLENT. Only real complaint other than the workload is the professor is quite arrogant when answering some students on Piazza. I got an A. You need to study like mad in this one. Do not pair with another course.


    Semester:

    My experience : I have taken CP, AIR and CV so far. The amount of time I spent on ML is comparable or more than CV. ML projects were time consuming but in the end I learnt a lot. The exams(midterm and final) are brutal. Thanks to follow ups from TAs and my classmates I was able to secure an A in this class.

    What helped : Preparation: Read and re-read wikidot entry for this class, especially pay special attention to the “Pick your datasets” part.

    Office Hours: Asking questions in OH thread. TAs and instructors usually answered Qs in that thread hence the recommendation. Watching office hours(OH) and taking notes. The OH can be dense.Taking notes and updating notes when you re-watch helped. The material covered in OH was dense for me so I had to rewatch OH.

    TAs Head TAs provided answers with sufficient detail but at the same time the head TAs did not hand-hold students.

    Related Courses: I did not do this but taking Artificial Intelligence before Machine Learning will likely help. For example if you can finish up the first two assignments quickly due to AI background then you can spend a week or maybe two preparing for the midterm.

    Problem Sets: Solving both problem sets probably helped in securing an A for me because I was in A-B borderline. Either way, the questions will help towards covering material for the exams.

    Assignments: Start early. 1 week each for code skeleton, plot generation and tuning, and report writing can be a rough guideline.

    Create a google doc with notes on terminology related to assignment description. Dumping information collected from researching on Google and reading papers into one place and reviewing helped.

    Print a hard copy of the assignment. Scratch out irrelevant information from the assignment and add relevant parts after taking notes from OH. Not taking another class with ML since this class itself was demanding.

    Exams: From another student, making flashcards might help absorb the material before the exams.

    FYI:

    This class requires use of Proctortrack for exams. If you are using python, consider using the hiive fork for assignments. That is student created and includes bug fixes for MLROSE and MDPToolbox respectively. The class is hard but the struggle is worth it atleast for me. One might be able to make this observation towards the end of the class. Specifically am happy that I learnt a lot while struggling through the assignments. The game theory lecture video part is common between Machine Learning and Reinforcement Learning class. So in a way, the Machine Learning class prepares you for Reinforcement learning class especially for the Game Theory part. None of the information in this post is new except for the python library part perhaps. It is a summary of what I read and understood from posts here. Hope this helps and good luck to others to plan to take this class in the future.


    Semester:

    This is a course which will give you a lot of learning. The course is structured very well with 4 assignments, 2 problem sets, 1 mid term and 1 final exam. I liked the course since it touches various algorithms used in the machine learning world. The expectation of the assignments is the analysis of your algorithms rather than code. What language you use to write these algorithms/ editor used etc are of no concern to the professor. He is interested to know how much you have understood the algorithm and how you apply it to your data and how you analyze it. The problem statements may seem vague, very random and open. It would have been better if they gave very clear instructions for assignment expectations. The course doesn’t cover (udacity videos) the basics of machine learning like hyperparameters / learning curve etc. If you take this course without any background of ML/python you are going to find this course very difficult. Also the lectures do not cover what is required for you to complete the assignments. TA are very helpful, they make sure they answer everything that is asked on piazza and in office hours. The solutions published for problem sets were with no enough explanation. It would be better to have better explanations for problem sets since they are important from point of view of preparing for mid term and finals.
    Overall a good course with lots of learning compared to other courses.


    Semester:

    This was probably my third favorite course in the program after AI4R and HCI.

    I think a lot of people get frustrated with the assignments and I do think they could be written in a less ambiguous way. Maybe I got a more lenient grader but I averaged a 93 on the assignments and thought that while the assignments were time consuming, they weren’t necessarily difficult (hence my ‘Medium’ rating rather than the ‘Very Hard’ that you find often throughout these reviews). The key to the assignments is to read the questions asked in the report and to create headers for each question asked so that you make sure you address each of them without trying hard. Additionally, you don’t need to choose HUGE datasets but you need to make sure you convince your grader they’re interesting. If you try to get too ambitious, your models might not converge or may run forever so either start early with larger datasets or use smaller datasets to cut down on some of the overall assignment time. Also use tables if you want to record information such as runtime or performance. They’re concise and tend to take up less space while presenting the information clearly. Basically, make it easy for the grader to give you a good grade

    Pros

    • Getting to work on your own schedule for the most part - assignments, lectures, and readings are all available at the beginning of the semester. The exams and finals have a shorter window.
    • Quick turn around for grades
    • Getting to choose your own datasets
    • Office Hours where you can ask questions ahead of time in a Piazza thread
    • Personally, I liked the lectures and found them engaging
    • Gradients are factored into your grade (i.e. if you do better throughout the semester, your final letter grade might go up)
    • Overall very few items are due (only four assignments, a midterm, and a final)

    Cons

    • Ambiguous rubrics
    • Lack of a points breakdown on where you lost points in assignments
    • The exams were closed everything and I wasn’t a huge fan
    • Decent number of readings but they’re overall skippable
    • Requiring a curve to set grades (i.e. a “normal” A is not realistically attainable)

    I came into this course with expectations of the course being difficult and I leave with a different impression. Yes, the midterm was ROUGH and the fact that you can get such a low overall percentage and still get an A is strange but I think that the hype is definitely worse than the actual work. This class is not hard but it is time consuming. I enjoyed what I learned and the work that I produced. Overall, I would recommend this course but can see where some may think it falls short.


    Semester:

    You can take a lot from this course, or you can take very little and still end up with high A. I was taking ML with another demanding course, so naturally I fell into the latter bunch. Tips below is for people in a similar boat. I liked the course overall and would enjoy it more, if taken alone.

    Pros: {1} Open-ended assignments, you can learn the whole field by exploring them properly. {2} You will learn a lot: videos, readings, assignments, exams, everything compels you to learn more. {3} Ched-code is banned, you have to write your own code. {4} Extensive Office Hours (OH). {5} Exam questions are fair and challenging. {6} Generous curve. {7} Lectures are 100% enough for exams. I found them interesting and engaging, probs one of the best in the program. {8} All code could be written in Python. {9} Prof Isbell is no stranger to slack and Piazza, you have a chance to be humiliated by the Dean himself.

    Cons: {1} Open-ended assignments take a ton of time. This course assumes you have no life outside of studying. {2} Assignment descriptions are vague and pretend there is no rubric, but there is one, and it’s hidden. Also no hand-holding or pseudo-code. {3} Grading is just RNG, most TAs seem to not understand the rubric themselves and dock points for random stuff, which is not mentioned anywhere, the opposite of which is mentioned, or is actually present in your work. I got 100% on A2, which I had to wrap up in two days, and 74% on A3, which I’ve spent 2 weeks on. {4} All assignments could be “hacked” in a weekend without learning much precisely because they are open-ended. {5} Readings are unnecessary for exams or assignments, eat out time. {6} Have to watch ton of OH with mostly obvious stuff to pick up crumbles of rubric scattered around. {7} During OH head TAs avoid all the hard question, making it seem it’s up to you exploring, but then dock points quite harshly for not guessing what was the right way to do things. {8} Midterm is trying to trick you. The first 10/17 questions are worth 2 marks each, and then Q11 is worth 20. If you missed that there are 120 marks in total (which is quite easy to miss, as it was mentioned in 1 place only: right on top of the exam along with dozen other numbers), you’ll be unpleasantly surprised. Same for the Final, but you’ve already learned your lesson. {9} Curve is nonsense, 58+ was an A! It is there only to protect randomly-grading TAs and a lack of rubric, and keep masquerading as a difficult course. It also makes you feel like an one-eyed king in the land of the blind with 60 < marks < 90, which almost everyone gets. {10} Lectures are laughably inadequate to write any code. {11} Regrading policy is moronic: gain +5 or lose 10. It is simply there to stop people applying for regrade. Prof is bragging about minuscule amount gaining points. I wonder why? No one in their mind applies for regrade, if they got > 60 marks. {12} Overlapping material with AI and especially RL. {13} Prof likes to make comments about how unimportant your personal concerns are, because of how big his kurtosis is, which is slightly annoying.

    Tips (for those who want to save time, rather than learn a lot): {1} Ched-code, it is forbidden, but you can still read it. It produces all of the nit-picks TAs want to see. Just don’t copy anything. {2} Don’t stress about marks, you will loose them more than in any other course. If not, it’s more luck than your hard work. As long as you are hitting > 65 on average, forget about it and move on. {3} Watch OHs before starting projects to know which graphs you need to produce. Can’t share them here unfortunately. {4} Don’t waste time selecting “interesting” databases: 1 large (~ 2000) with many (~ 15) features and 1 small (~ 1000) with few (~5) features. What makes it “interesting” is your description, even if performance is similar. TAs don’t know what “interesting” is either. Same for MDPs. {5} Save yourself effort and don’t choose unbalanced/categorical-features/time-series/image-based databases. {6} Maxing out pages in the report does not guarantee good marks. Hit all the mentioned graphs and wrap up. Don’t waste effort. {7} Don’t waste time producing nice-looking graphs in Python. No one will appreciate. Print-out numbers and put them into table, or make a graph in Excel. {8} Same with classes and OOP: just put everything into 1 file with 10 functions. Easy to update and hard to forget.


    Semester:

    This course is hard, especially to students not in math/statistics major. Code is easy, you can probably import packages to finish 4 assignments. My main points contrary to other negative reviewers are: 1) math/statistics is crucial in ML area, this course provided what I expected. 2) To fulfill all points (carefully check one by one points) listed in assignment description can probably guarantee no failure. 3) Exams are hard, you have to understand math formulas, I mean you need to solve real problems. So, basically, this course is not bad, it cannot teach you all steps in math, you need to spend time by yourself.


    Semester:

    This course is a fucking waste of time.

    Three points stand out to me from the previous reviews:

    1. It’s a undergraduate course masquerading as a graduate course via arbitrary grading rubrics
    2. TAs and prof are sarcastic and unhelpful on piazza to clarify questions on assignments
    3. So long as you submit something for the assignments and do the exams you’ll pass with at least a B, because of the curve.

    Advice to future takers: If you don’t give a damn about your gpa by this stage and just want to get the requirement over and done with, see 3. From a previous review, listen to the TA hours and the lectures to pick out points that they care about for the assignments and exams. Skip the actually hard points and maths, just focus on the fluff and hand-waving stuff, it’s a really easy course if you do it right. Don’t waste too much time on this, you’re not going to learn anything useful and time spent => grade correlation is really poor.

    Now for my experience. 7 courses in, ml specialisation. Assignment requirements are essentially a really long list of questions that you have no hope of answering unless you do it in point form or you’re bloody free. Quite frankly, I don’t think the graders even follow that list, see previous point. The graders do not read your code, or even if they do it’s probably just a brief scan, so don’t bother even trying to make it run, just focus on the report. Don’t feel bad about getting marked down, or to even try to improve on comments from before, they’re not helpful in predicting future assignment grades.

    Also, to those who feel the professor wants them as mini-papers to justify the grading rubric, I feel you’re giving the graders too much credit. I have submitted manuscripts for 2 papers in a different field, and have reviewed submissions for a decent journal. If you submit a reviewer comment like “Discussion does not go into enough details”, any decent editor is going to send you an email asking you to clarify what you want, before sending this back to the authors, because it’s an unfair comment. So no, the whole grading process is just a shitfest.

    Lectures. I’m quite proud to say I’ve not watched a single one of them after initial sampling except until right before finals prep, when I briefly scanned through to pick out points they care about to write in the finals. Half of the time is wasted on jokes that are lame even when I was a primary school kid. You want examples of good banter, see Computer Vision. Examples of good technical jokes, see IHPC. Examples of just-the-facts, see GIOS. Examples of someone actually teaching machine learning, see AI/AI4R.

    Finally, the curve. I got <50% from canvas and a letter grade B, so see 3 above. Just glad to pass the course and move on with my life. Don’t waste too much time on the assignments, it’s not worth it.

    I would normally end with YMMV, but nah it’s a shitfest for all. glhf.


    Semester:

    Like everyone agreed, the teaching staff are very mean and therefore, this course does not deserve your hard work at all. No matter how confident you felt about you work, they will make it look like shit. The TA will totally ruin your semester. If you are assigned a shit TA like I did, god bless you. Even the lecturer is mean too, who is always trying to be smart and showing off his poor sense of humor, you question is never answered directly. Overall, in this course, they will shit your hard work the whole semester and finally pity you with a curve. Gross.


    Semester:

    This is my last course taken at the CS online program; I would say this is the worst experience I have even had. Like all the latest comments here, I would say the biggest problem is the grading and the feedback from TAs; you spend lots of time to write the summary and polish the code and the feedback from TAs are horrible and I think the code was just ignored; also, the scores you got for the HWs were largely depending on the grader; this is an explicit problem for this course and students raised it several times but no one addressed it. It is super unfair that one students got grading from someone tends to give low score but the other were not. I felt so lucky that this is my last course otherwise I will doubt whether it is good choice to get the MS from here.


    Semester:

    This is my 7th class and this has been the worst compared to other classes. While the content of the course and exams help you gain a really good understanding of the concepts, the way the assignments are graded seems very random and the feedback is often not helpful. The feedback says “You haven’t tried this method on this algorithm / there is no graph supporting your analysis” but they are all just there in the report and you cannot even ask for a regrade of the final assignment.

    The exams seem objective though and are at least helpful in assessing your understanding of the concepts when compared to the assignments. I wouldn’t recommend this class to anyone unless of course they need it for their specialization.


    Semester:

    I have taken 8 courses in OMSCS. This class is a bit of a mixed bag.

    As someone who is starting a PhD in ML later this year, I enjoyed the content of this course in its lectures and reading materials. The lectures explain theoretical concepts in an intuitive way that complements a lot of material you may read elsewhere online and I like the presentation style of the professors. The extra amount of fluff makes the material easy to take in the first time around, but is an absolute pain should you wish to review the material for exams or any other purpose.

    The main negative for me was the TAs. I can understand why Prof. Isbell is a bit snarky on Piazza, because I think its pretty clear what quality of work he expects for the assignments (he wants us to write mini-papers). I am terrible at paper writing, and the problem for me was that it wasn’t clear how I can get better than what I am doing, which I personally think is the role that the TAs should perform.

    However, the feedback given by TAs is generic and indicates minimal thought and effort. The feedback we get looks like this: ‘Discussion could be more detailed’, without any examples or tips on how this can be done. I feel like when my discussion has limited depth, there is clearly some understanding that I am failing to get from the material or some details that I could have put down to present a better paper. Alas, nothing further is provided by the TAs to tell you what that is.

    The course also does not provide any feedback for the exams at all, but at least the exam questions are kind of clear.

    I find the overall level of feedback disappointing and particularly ironic since we learn about the importance of labels for supervised learning but the course does everything within its power to hold back when it comes to our learning.

    Overall, I would only recommend this class if you wish to specialize in ML, because you have to take it as part of your degree.


    Semester:

    So much to say…so little energy. I tried writing a review 3 times now and had to cut it down for use of….colorful language to describe how piss poor of a class I think this is.

    For the record I’m sitting on a low A or high B if historical norms hold, so this isn’t me whining because I couldn’t hack it. It’s just genuinely the most garbage class by FAR of the 7 I’ve taken in the program. There are things that make a class difficult because it’s just tough material, then there are things that make it difficult because of crap instructors. Not everyone who does teach is gifted at it, regardless of how long they’ve been playing the game.

    At the end of the day, most of us don’t have a choice as the class is required for the ML specialization and one of few options for the II specialization.

    Bottom line. This class is going to suck. Hard. It’s bad, and isn’t likely to improve because it thinks too highly of itself. It’s nowhere near the best resource to learn this material, but you’re going to have to bend over and take it if you want that shiny degree. Then, if you haven’t already done so go and learn from a quality resource like Andrew Ng’s course, FastAI, or….like any Udemy course. All of which (that I’ve seen) are better options.

    Such a waste…


    Semester:

    This class could have been so much more.

    The lectures: the content is good, but has too much fluff in it. Some of the banter was fun at first but got old quick. I especially like Littman delivery style, the other instructor tries hard to be clever and it gets in the way of teaching. IMO there are better online courses out there on ML.

    The assignments: you get a wall of text with very little actual information that inevitably leads to questions that Isbell will ridicule publicly. As for grading and TAs, just read other reviews. If lucky you’ll get a good TA with helpful feedbacks, otherwise you’ll get some vague copy pasta. I got low scores for the assignments I put a lot of effort in and high scores for ones I half-assed?! Note it’s got to the point that they are now hiding who graded your exam to protect the TAs. This quite frankly is the most ridiculously run class I’ve ever seen.

    The exams: while hard, be thankful it’s the only time you’re asked clear and specific questions.

    The people: the regulars on Slack have picked up on Isbell snarky style and it makes for a unfriendly environment. This is in stark contrast to all other OMSCS Slack channels I’ve been to.

    Up until recently I was still starry eyed about the program, but this class has totally turned me off even though I’m well on my way to an A (update: I got 7x overall, well over the A cutoff of ~60 points). It does not foster a positive learning experience. Too bad it’s unavoidable for ML specialization.


    Semester:

    Grading is subjective and entirely depends on how your TA feels as the assignments are intentionally vague (Yes, reader, I understand it’s grad school and that these assignments are supposed to be like that; I’m 12 classes in and I’ve only heard that statement about a hundred times in this program. That is NOT an excuse for poor TA guidance on grading and wildly varying scores between assignments.) The vagueness is supposed to simulate submission of real research papers, but you can discuss all the points in the assignment and still get nitpicked down to a low grade with regrades being a hopeless endeavor. The professor makes it known how much he doesn’t care, and only shows up to post vague quips on the class board and chat.

    All that to say that there are much better programs out there competing with OMSCS now; I would recommend looking into those.


    Semester:

    Really didn’t enjoy this class. The assignments are 10-page papers with poorly defined objectives that are capriciously graded.

    Read through the comments here. Most of the class earns a grade that is objectively failing. Then, the professor curves the grades such that 90%+ of the students earn an A or B. I’m not sure it belongs in this program.


    Semester:

    I really enjoyed this class. As a Machine Learning Specialization student, I was looking forward to it quite a bit, and it lived up to my expectations. It is very hard though.

    To me, the hardest part about it was the open endedness. You could spend 40 hours on a paper, and still think, “oh, I could add some analysis of this, or new charts for that”. Fortunately, you are limited by time and paper length (usually ~10 pages including charts), but still, I felt I could always do more to perfect the report.

    My best advice for working on the projects is - START THE PAPER EARLY. I often ran into a trap of refining my code repeatedly, as I kept thinking of new analysis to do or charts to add, and I would end up starting the paper on the last weekend. Then, when I was writing the paper, I would think of more important analysis I didn’t have time to do, and my paper felt rushed. My suggestion is to create a MVP (minimum viable product) for your code, and take notes for things you want to add later. Then write a first draft of your paper. This also means you can submit it to Canvas early, just in case you get sick or something, you at least have something. Then, you can go back and do everything you noted before and update your code and paper.

    To add to the very difficult and time consuming projects, the exams are even harder. In my semester, the median score on the midterm was less than half the possible points. So, when you come back with a 40/100, don’t panic. The professor even put up a post saying ‘don’t panic’. Of course, people still panicked.

    But, despite all that, I will say that the curve is very generous. I feel if you genuinely try on all the projects and exams, and do all the lectures and readings (a not so easy ‘if’, I know), then you will get at least a B. So, don’t worry so much about your raw score. I believe the professor designs it this way on purpose to make people try as hard as possible, and not try ‘just hard enough to get a B’, and to me, it works. I honestly enjoyed being challenged in this way, despite it being stressful. If you are worried about your score, compare how you are doing to other students by using Canvas (in your Grades it shows the Median).


    Semester:

    It is my 3rd OMSCS class, and by far the most difficult one.

    Summary:

    if you think you know Machine Learning, think again. The lecture material covers not just the conventional machine learning topics (things you might encounter in your daily work, such as supervised/unsupervised learning, regression/classification/clustering), but also extends to more in-depth math-driven topics like game theory, markov-chain decision process, etc. There is a lot of lectures to go through in a semeter.

    The good:

    For the perspective of learning, it is a good course. There could be a lot of extensive reading if you don’t want to just scratch the surface of a particular topic. However, that could also mean the average hours you spend each way could go beyond 20. Lectures are the best so far, compared to other two courses I took (DVA and computer networks). I am not a fan of instructors’ random jokes but I think those are bearable.

    The bad:

    There is no rubric for homework assignments. The instructor basically wants you to write a 10 page thesis for every single assignment. And your homework grade is totally at the mercy of your TA. Good luck if your TA is a mean person. As for me, the grades of my homework range from 39 to 89, depending on which TA I have (they do TA rotations). My tips to get a good grade for homework: Do not try to use ‘real’ dataset for homework assignments, even the instructor ask you to do so. You will not be able to finish all the simulation!!!!!! Use toy ones, like those provided in sklearn!!!

    Exams are hard!!! I think the average for the mid term was only like ~50 and final was ~40. But thank God instructor curved the score.

    TIP TO SURVIVE: do not drop the class. If you finish the class, there is at least 95% chance you will get an A or B.


    Semester:

    This is a tough course which has both exams and projects.

    As for the project, you have four projects where you need to design the experiments, implement the code (with the help of ML libraries), run the experiments, and analyze the results. Using the results you have to write 10 ~ 12 page paper.

    The projects ask you to run some experiments, and you are expected to research on your own on how to run the experiments and what sort of data should be captured and analyzed. The office hour does a great job at providing pointers to what you can look for. It really helps to look for papers in the topic that you are writing (most will be from 10 ~ 20 years ago) and the assigned readings are a great place to start.

    The exams are difficult. Knowing the material is not enough, and you are expected fully understand and internalize the material so you can apply it to other concepts.

    The course material was a survey of supervised learning, unsupervised learning, and reinforcement learning. The material is challenging and it focuses mostly on understanding the foundational concepts.

    Being comfortable with linear algebra and probability helps understanding the materials, most people with cs, engineering, and mathematics background would struggle but should be okay to understand the lectures after watching it 2 ~ 3 times.


    Semester:

    I got an A in this course. This is an undergraduate course faking as a graduate one by virtue of open ended, ambiguous and poorly worded assignments and lack of rubric. Your success depends on watching office hours held once per week, where the two head TAs, Daniel and Amir, answer questions posted to a thread on piazza while divulging some keywords that might help you get a good grade. And that’s pretty much all of the TA presence in this course. The grader TAs are also awful. Expect that huge parts of your written report may not be read, so prepare to request regrades despite the ambiguous grader feedbacks. These feedbacks are ambiguous in order not to expose the rubric I think.

    Even the files section on canvas is messed up, even the dates of events like midterms etc that are posted on canvas, piazza and proctortrack did not match at times (that should tell you something about how this course is managed). Also the professor seems to be very bored of this class. If he responds to something on piazza its most likely one of “You know it in your heart” or “Why is this a private question?”. And he appears on Slack from time to time to complain and mock people. So its not a hard course at all, the exams are undergrad level, the difficulty is in dealing with all this inefficient mess.


    Semester:

    The class material covered important and interesting topics. The video demonstrations were pretty good.

    The projects are written report based as opposed to coding based. This made the class difficult for me. The written report was also more difficult because the instructions were vague which wastes some time. I don’t think the vague instructions increased my learning. I would have rather used the time to study more concepts.

    Exams are okay due to generous curve. Homeworks are useful for understanding the concepts.


    Semester:

    I came in starry and bright eyed, excited to learn. Let’s just say that all that died out by the middle of the course. The reason is that the design of the course is not conducive to learning, at least not for me.

    Front loaded course. The people who perform best will have a head start before the official start of class or already have significant ML experience elsewhere. You will be diligently working on the assignments and will have no time to prepare for the midterm. On assignments you exercise application of ML frameworks and analysis of empirical results, but the exams test for intuition of ML theory. This means that assignments and exams are almost mutually exclusive and require divided attention. Regardless, this could still be fair, because all students are subject to the same conditions. Something to note but not a major drawback of the course.

    The real problem with this course is the variance in grading. Assignments that I spent the least effort on received much higher scores than ones where I gave much more effort. That’s because there is significant variance in the scoring between different TA’s. After reading the other reviews this term, I realized that the grade I received could have been due to the luck of the roll. The lack of transparency makes it hard to gauge whether you were fairly graded or not. On top of that, if you request for a regrade, you will get negative points if you don’t net a positive back. This just empowers the TA’s to grade haphazardly because they know students will think twice about submitting for regrades. This is a major conflict of interest in the grading and is one that is not in the interest of student learning! “Giving out the grading rubric hurts our administration of future semesters of this class” could be an argument by the teaching committee. Fine, then at least give us detailed feedback with what we did wrong, how many points are docked for each instance, and how to improve. Out of 4 assignments, 1 TA did say how I could improve, 1 was lackluster, 1 was purely critical, and 1 left ZERO comments at all. By that point I really didn’t care for learning in this class anymore (I needed to focused on the work left to be done).

    The challenge of the course is the breadth of topics involved. There’s enough for at least two 3-credit courses, OH WAIT, isn’t there an RL course already? But it seems like RL received a disproportionately higher amount of coverage time than the other topics. Care to guess why? Because that’s the research specialty of the lecture professors, Isbell and Littman. The video lectures alone will not prepare you to ace the exams. Given the breadth of topic coverage, too much time was wasted on awful jokes, puns, and Isbell talking about his Tesla. This results in a lot skipping and disconnect when it came to presenting and proving the concepts. The level of intuition on machine learning you will be tested on will be deeper than what you see in the lectures. The lecture videos alone will also not provide you with the analysis intuition needed to score well on the assignments either. Use the lectures as a guide to what to go in-depth on in your individual study. As a comparison, the David Silver lectures referenced for the RL section are EXCELLENT: does not pull any punches and dives right into the content with significant depth and smooth progression from introduction to complex concepts. No stupid jokes that you’ll have to sit through.

    Office hours provided, hooray! Wait, they’re actually for clarifying vague assignment instructions. Darn. Thought we were going to have discussions about ML theory so we could develop intuition. O.H. had a lot of potential for real learning, but that isn’t really the teaching staff’s concern.

    It’s pretty apparent that this course was designed by someone who is narcissistic, as opposed to someone who actually enjoys teaching. The level of narcissism is so strong that you see it trickle down to the TA’s as well, especially the grading TA’s who are quick to dock points without providing constructive criticism. You will hardly see responses from TA’s on Slack and Piazza. I get that there’s a lot of mundane questions and questions that are easily answered through self search, but there were also good questions that were answered by leaves rustling in the wind.


    Semester:

    I took ML Fall 2019 after having taken ML4T. (I do recommend ML4T then ML.) I achieved an A.

    Overall I enjoyed the class. The lectures were well-presented and helped me to understand the concepts. It’s a good survey course that covers supervised learning, unsupervised learning, randomized optimization, and reinforcement learning. I had fun with the assignments. There’s a low bar and a high ceiling if you’re so inclined. Since the assignments are open ended, you’re free to explore in various directions you’d like (but that may be an unnecessary time sink). I do think the assignments helped me to better understand the material.

    I may be bad at estimating time but it didn’t feel like 20 hrs/week. More like 5 hrs, 15 hrs, and 20 hrs for week 1, week 2, and week 3 (deadline), respectively, for each assignment. Although I guess keeping up with slack daily takes time.

    Pros

    • Lessons are entertaining and have good, easy-to-understand examples. At the beginning I thought the professors weren’t that funny but I suppose their humor grew on me towards the end.
    • Assignments are enjoyable and help prepare for exams. Hyperparameter tuning may be tedious but you don’t need to do too much of it to do well in the course.
    • Freedom to select any dataset or problem that may interest you, as long as it’s not too easy.
    • Can work ahead on assignments.
    • Slack channel for this term was quite active and helpful.

    Cons

    • I agree with previous reviews that your assignment grades may heavily depend on the TA you get. Supposedly you get a different TA for each assignment.
    • There isn’t much feedback for assignments. Even if the feedback is good, reading about things you could have done isn’t the best way to learn in my opinion. I would prefer to read an example of a well-done and thorough analysis.
    • Office hours format. It’s basically one long video response to previously-posted Piazza questions. May as well just have the TAs answer through Piazza. Luckily we had some students transcribe the videos for us this semester.
    • There was not much TA presence throughout the semester, although Professor Isbell would chime into Piazza/Slack occasionally.

    Tips

    • As long as you turn something in for each assignment, you’ll get a B, so no need to worry on that front.
    • Stay a bit above the mean and you’re likely to get an A. For Fall 2019, mean was ~58 and ~63 was needed for an A.
    • Take notes. Particularly of the various algorithms and their pros/cons in comparisons to other algorithms.
    • Keep up with lessons or stay ahead of schedule. Readings aren’t needed for exams but do help to deepen understanding. As far as textbooks go, Mitchell is pretty good.
    • Don’t worry about not getting good graphs for your reports. Just throw in 2-4 sentence to explain it away.
    • Actively keep up with assignment tips from office hours or slack. TAs grade assignments against a hidden rubric and you’ll be better off if you can keep an ear out for them.
    • Start reports early. For me, 1 week was too short. I turned in a few reports unfinished (maybe 3/4 done). With 3 weeks per assignments, I found that 1 week downtime and 2 weeks per assignment was okay.
    • Use library implementations of algorithms. Don’t code it yourself. But you do need to code up your own experiments.


    Semester:

    Don’t come in expecting that you’ll be able to make production grade ml applications at your work after completing this class. If that’s the case you should better not be taking this class. If you are a serious ml practitioner you will definitely get better at it. If you are a novice, this class will get you thinking about ml in the right direction.

    The lecture dives into theory and the assignments are designed to let you dive and explore the theory and beyond. Only going through the lecture videos may get you a decent grade, but you are not going to get a “feel” of the topics until you read the theory (books, papers, web) and research a lot. The level of understanding that is required for the exams won’t come by only viewing the udacity lectures unless you are already an ml wizard. You need to reason every aspect of the theory and dig deep, question everything.

    The assignments are unlike some other courses where you need to pass test cases. Each of your reports will be read through by TAs, so don’t write stories. Be precise and to the point. There are no points for any of the code you are going to write. However, the code is required for reproducing your plots and data in the report. Don’t use chedcode or other frameworks designed to solve the assignments (aka generate the plots). Such frameworks are banned.

    Please plan your report (the structure, the content headers) before you start coding. If you do not, you may get stuck in the vicious loop of making your code run to get better accuracies. You’ll loose valuable time if you are not going to plan your reports before coding.

    Also don’t compare your work with what others have done or are sharing on slack/piazza. Just be genuine in your research and try to answer every question asked in the assignment (this is where you need the OH) and the reason for your results, you’ll do good. Watching the office hours is crucial to get an understanding of what has been asked in the assignments because you are going to feel it to be very vague.

    This was my sixth class and I’ve never seen any other instructor so engaged in the class after Ashok Goel of KBAI (Sorry, Dr. Joyner’s I haven’t taken any of your classes). If you expect the dean to answer questions that are already mentioned in the intructions, don’t get pertrubed by his answers. If it’s a genuine question, he does reply. I feel his style of teaching is to encourage self research. That’s his own style and I respect that. Frankly, what doubt of yours can’t be cleared on the web, given that you search enough. Even if I had doubts, often it were my amazing classmates that helped first.

    Don’t get demoralised even if half the class drops out. We started with a class strength of ~625 and had 391 remaining by end of drop date. Don’t worry about the grades, just stick around and give more time to this class. Frankly, I want to take the class again because I feel there is still so much to learn.


    Semester:

    Having taken AI last year, I expected some overlap with ML. Sure enough, roughly a third of the 320 flash cards I created over the semester were reused from AI, thanks to plenty of familiar algorithms and concepts. However, that did little to ease the difficulty of the course. Though assignments won’t require you to implement the algorithms from scratch, you will be expected to find libraries and steal pre-written algorithms and tweak them to work with different types of data. Besides being deceptively difficult in its own right, you are actually only graded on the written analysis after getting it all to work - so consume the related learning material directly (watching at 2x speed when possible) and get started EARLY. There are four assignments and two exams, which are all written and graded on DEPTH, seemingly harshly graded against professional-level explanations. That is to say I averaged a 47.2%, which curved up to a B in the course.

    In addition to the algorithm implementations, I enjoyed the lecture conversations between Dr. Isbell and Dr. Littman where it was clear that they both had a deep understanding of the material and could quickly make relationships between concepts (which you will be expected to do too). I recommend watching the lectures ahead of time, even before the semester if possible. I watched about a third and that helped at first, but most weeks I averaged 25+ hours of actual work, with over 40 hours one week at the end of Assignment 3. Though the textbook is over 20 years old, it does help to flesh out the material, but ultimately I would have preferred something more recent and relevant.

    Ask questions you really want to know in the office hours threads (which also drops big hints on what your assignments should include), otherwise Piazza is best suited for student responses (still super helpful, along with the Slack channel). The optional problem sets are great study material for the exams, and the supplemental material is good for going further in depth on your papers (I should have utilized this more). I still say AI was harder though.


    Semester:

    Overall the course is difficult but great. Personally I liked the video lectures and recommended readings. The lectures present an overview of different ML concepts, the reading materials are more detailed and rigorous in explaining the different concepts. Taking this course properly you’ll have a solid theoretical understanding of the basic ML concepts.

    The assignment are tough, I highly recommend starting them as early as possible, and plan to spend at least 40 hours per assignment. The thing is they are not so clear about what you should do, and to do well on the assignment you have to understand well whatever machine learning concept you are working on, and even have some ML experience before.

    The Exams are even more difficult, but with decent understanding of the offered materials you can easily get above average grades. Don’t be shocked if you get bad grades, everyone will! the grading curve is generous and if you go through the lectures and reading materials and do all assignments you are guaranteed to get at least a B. If you want to take this course:

    -Start lectures and readings before the course start date (they are all available)

    -As soon as the course starts, start with assignments and plan to spend at least 2 weeks per assignment

    -Go through the materials again just before the exams and you should be good.

    -Don’t worry about the grades you get, just try to stay close or higher to the average and you’ll be good.

    -I do not recommend taking another course with it, unless you are available full time for the Masters. -Also Make sure you have the required background, or at least most of it.

    The course is really great, make sure you work hard and start work early for it and you’ll avoid all the frustration


    Semester:

    Total waste of time. As many previous reviews posted on here this class is poorly administered. I did do pretty well in this class, however this is the worst class I’ve ever taken in my entire life. There is exactly …

    Zero structure provided for assignments. Nada! You have to go on Piazza and scramble to find other students posts and questions that reveal some insight as to what is really needed in your 10-12 pages analysis

    Zero consistency when it comes to grading assignments. TAs grading is very subjective and some TAs deduct way too many points with again 0 explanation as to why. I’m going to refrain naming them here.

    Zero incentive to learn on your own as this course is designed to bring your motivation down and keep busy with mundane assignment tasks.

    Zero useful information in the lecture videos. Seriously, all of the material covered is discussed in a much better way elsewhere (blogs, books, youtube, coursera, other udacity classes…)

    The only non-Zero aspect of this class is that it gives you 3 credits once completed period.

    With CS7641, as it stands,

    I do not recommend,
    do not pass go
    do not collect $200


    Semester:

    This has the potential of being one of the best course in the curriculum and yet it ended up being disappointing. I will explain why.

    The Lectures - The lectures of this course is perhaps one of the best in OMSCS. Prof. Isbell and Dr. Littman made the lectures very interesting by injecting humor and using good analogies to explain difficult concepts. There are quizzes at interesting intersections which makes the learning more interactive.

    The Assignments - Assignments are very interesting, produces a very good scope of learning. The instructions are clear cut specified in the assignment instructions, but the assignment instructions do not matter when they are evaluated. Some TAs have their own set of expectations from the assignments and some TAs (at least one) does not even bother reading the analysis.

    • In A1, I covered everything in the lectures and the assignment questions and received a very high score.
    • In A2, I did he same but received 50s. The TA has his own set of expectations and wanted to see analysis that was above and beyond what was asked. Generally going above and beyond makes a difference between a 70/80 and a 90 but never seen a 50 for not going above and beyond the assignment instructions. Still feedback comments were clear about what was being expected and this is still understandable.
    • In A3, I missed one point from the assignment questions and I received a better grade than A2.
    • In A4, covered everything I could, but the TA in question (one from the Famous Fives listed by another reviewer) (also the same from the three listed by another reviewer) never even bothered to read the analysis at all. The TA put some generic comments like “… is somewhat vague”, “… somewhat lacks detail” etc. It did not stop there. Then some specific comments were also added like comparison for XYZ is missing, whereas there are tables, graphs and analysis for the same. On top of that it was announced that Assignment 4 can not be regraded. Its a shame if a student takes 40 hours to write an analysis and TA can’t spend even 15 minutes reading it.

    The Exams - Even if I did not do well in the exams, especially in the mid terms, I like the pattern of the exams. It makes more sense to test with problems rather than multiple choice questions. Midterms were brutal with a time crunch, but finals were relatively better. It is advisable not to drop after mid terms and hold on.

    Conclusion - This course has one of the best lectures and there is a lot to learn. However the way assignments are randomly graded spoils the entire course. It takes away all the incentive to working hard. I can not say for certain that I would have received an A if the assignments were graded properly, but I believe that what makes more difference between an A and a B would be the kind of TA evaluating the assignments, rather than your own effort. Its up to the Professor to take care of integrity issues where TA grades the analysis without reading it.


    Semester:

    A great step into the world of Machine learning. I highly recommend taking this course if you are interested in topic. Prepare to write a lot and start projects as early as possible.


    Semester:

    This was a great class. A few things I liked: First, the open-ended projects are designed to let you explore the material, experiment with different libraries and algorithms and then justify what you see in writing. It’s not a class where you have to replicate a very specific prescriptive set of tasks. For some people, that’s very frustrating. Other students will love it. Second, the curve is generous. It’s a bit anxiety-inducing for people who like to be certain of their grades but it’s great for accommodating those who more familiar with ML as well as those just taking the class for the first time. After the midterm and right before the drop date the professor will give you an idea of how he breaks out grades based on the curve. So you should have an idea of where you stand letter grade-wise. Third, the focus on writing and analysis over code is my favorite part of the course. I was able to spend time really thinking about my problem sets and how the different algorithms behaved, instead of worrying about how to implement a specific algorithm and whether I had done it correctly.

    My one complaint would be the 10 point penalty given to students who ask for regrades. The rule is that if you don’t gain back at least 5 points, you may lose 10 points. As someone who is always open to the possibility of being wrong, I never questioned my grades for fear of losing an otherwise decent score, even for a couple of assignments where I felt the TA had missed something. After seeing some of my peers gain 10s of points back on their assignments, I worry my grade may have been affected more by the randomness of TA grading and my lack of fortitude, then my understanding of ML.


    Semester:

    One of my most disliked courses in the 10 classes I’ve taken. Some exam T/F questions seem like trick questions and the projects become very tedious. Because this is required, here are some tips to make the going less painful for future students. DO NOT spend extra days finding a better dataset or better library. Go with simple datasets that just meet the bar and a “good enough” library and continue with the assignment and generate your plots. If a large dataset causes the algorithms more than an hour to train, bail on that dataset. It’s not unusual to generate 30+ plots for a single assignment, so stay organized, carefully manage your time, and write as you go. Be very explicit in the report and separate the different analyses in a very obvious way. Write crazy fast for the midterms and watch all the lectures multiple times for the plenty-of-time final. Good luck and I’m sorry you have to take this class.


    Semester:

    I’m going to start off saying I dropped the class before the first project. This was also the first semester they started cracking down on what outside code you can use. Basically, you could only use code that wasn’t tailor made for this course, which makes sense. But there was previously widely used code that towed the line and suddenly was unacceptable which caused a whole bunch of questions on what could be used and what couldn’t.

    The lectures were okay. They weren’t the best, they weren’t the worst.

    The first assignment just seemed unpleasant. You were asked to compare given algorithms and told to use them on different datasets you chose. So if the datasets you chose didn’t make these similarities/differences apparent, you were kind of SOL. I am sure if you were already familiar with machine learning, this would have made more sense (e.g. “I know algorithm X does better than Y in this situation, so I’ll make sure to find data that shows this”), but if you weren’t, it was really confusing to know what to do.

    I wasn’t a huge fan of Isbell but some people really liked him. He is very sarcastic, which can be polarizing. I personally found it a little annoying because he can obviously be less sarcastic (evident by any articles, interviews, etc. with him) but he just prefers to be sarcastic almost all the time.

    It was kind of a meme. Something was confusing about the course, a student would ask a question, and Isbell would reply “Do whatever you want. I don’t care.” or “You really know the answer, why are you asking me?” I understand professors, especially in large online environments, must get asked duplicate questions a lot. But it was kind of a perfect storm of the requirements being ill-defined, lacking documentation, and a guaranteed sarcastic reply that made you not want to really try.

    The slack channel seemed really active and people seemed to be figuring out cool stuff to do with the assignments. I personally don’t like that much freedom because I feel like its so rare that I nail “the spirit of the exercise” when I am not intimately familiar with the material, but it clearly worked for some people.

    I really wanted to like this class and I feel like I actually might another time around if I drink the kool-aid a bit more, but I am seriously considering changing tracks to avoid taking this class.


    Semester:

    This class has a special fame in OMSCS, for being both very interesting and pretty hard. I think the “hard” part is well deserved, but I didn’t find it very interesting. Assignments seem pretty open ended, but are then strictly graded through an unclear and hidden rubric - sometimes even TA get the requirements wrong. It seems that one very important part of this class is nagging the TAs during office hours in order to squeeze the rubric from them - which is pointless.

    The regrading policy is draconian - if you don’t get at least 5 points for your request, you’ll lose 10 points. This applies even if the TA makes a mistake (e.g. if he/she says that you didn’t discuss X when you did discuss it).

    Dr. Isbell’s attitude is not nice towards students. Yes, some students ask silly questions, but even good questions often don’t seem eligible for good and clear answers.

    The class is just sufficient with regards to way it’s run. Very often there have been unclear timings - i.e. wrong or missing timezones, unannounced changes, libraries that get banned during OH without a public announcements. Nothing great.

    I’m not sure whether I learned something in this class. Maybe I did, maybe I didn’t. For sure it was a lot of work, and maybe there’re other resources that would have me understand the topic better than this class.


    Semester:

    The course started very positively. The lectures were quite interactive and perhaps the best part of the course. Prof. Isbell and Prof. Littman always kept the course on a lighter mood, that made it possible to grasp difficult concepts without making it boring. I would perhaps rate the lectures of this course as one of the best.

    Now comes the dark part. The way the course is managed is completely haywire. The lead TAs do their job very well, but the presence of certain TAs who are least interested to do their job, destroys the course. I scored low-mid 80’s in 3 assignments and one assignment in the middle dipped to mid 50s. Why? Did I temporality lose my knowledge for a 3 weeks period? I don’t think so. Had the lectures failed to teach me one fourth of the course? No, the lectures were the best. How could my writing depreciate so much just for one assignment? After reading the reviews below, I don’t think it did either.

    It was evaluated by one of the 5 TAs listed in the below review. The TA in question did not even bother to read the analysis written, which is quite evident from the comments. The evaluation comments stated A, B, C are missing whereas there are graphs, tables and analysis for each of them in the report. And the rest of the evaluation comments are like “this is vague”, “that needs detail”, etc. What details? Someone can write a 100 page analysis with details. Did the evaluator forget that the analysis is limited to 10 pages? Also it looks like I am not the only one facing this. Others below have described similar things too. And all of this is happening under the watchful eye of the professor. I totally respect Prof. Isbell but I expect him to take some action on this rather than demotivating students to go for regrades.

    Had the -10 rule not been there I would have definitely gone for regrades. Perhaps I did right because someone below noted that these TAs “behave childishly” when questioned for. If academic integrity is expected from the students, why is not the same expected from the TA? One bad evaluation can make a difference between an A and a B.

    Midterms. Midterms are very brutal. I did very bad time management and did not expect the pattern of questions initially and did badly. You will definitely run out of time. Advice is not to drop. When the results came out, I was close to the median. Finals were relatively easier. You get twice the time. And be prepared to write a lot.

    Overall the course materials were good. The lectures were one of the best. But as I said the mismanagement of assignment evaluations takes away any incentive to work harder and where you end up depends on the nature of the person evaluating your assignments. This is the first time I saw such in my last 9 classes. That is why I rated it as “Strongly Disliked”. Hoping Reinforcement Learning to be better than this.


    Semester:

    I loved this course. I see there are so many negative reviews regarding this course, and I can feel why its like that. Its true that the projects are not clear what is expected and that’s actually with purpose. For people in the software industry for a long time, we know that requirements are always blurry unless you are an in intern. The ambiguous nature of software engineering requirements are part of real life and I am glad we are expected to work exactly like that. I do not see the point on which people are complaining like it is clear exactly whats the rubric for grading etc. Frankly I would not hire a person who needs every requirement in detail in a product development company. I will expect them to have a decent exploration factor and come up with their own innovation given the most seemingly vague requirement. This would show how enthusiastic they are in the product and that’s the key for the product to be successful.

    My advice is to not pair this class with anything else (even most easy course unless you are not new to ML and have lots of time to spare)


    Semester:

    This class is not as hard as people make it out to be, but you have to approach it in a very particular way.

    The homeworks focus on evaluating different algorithms’ performance. Be sure to read the instructions closely and cover all the required analyses. Often you’ll need to check office hours for exactly which metrics the TAs want to see; these won’t necessarily be in the instructions, but you’ll still be docked points for missing them. Your reports need to reflect the spirit of the assignments, rather than empirically describing your results. For example, if you pick a dataset, run four algorithms on them, and find that all four perform equally well, pick another dataset that yields different results or else you’ll lose major points.

    The exams test your understanding of the underlying theory. If you have a good grasp on the concepts you should be able to finish both with plenty of time left. However, because you can complete the homeworks without implementing any algorithm yourself, the homeworks won’t prepare you for the exams. If you’re someone who learns more by doing than by reading/listening, this might be tough.

    I would really recommend taking AI before this. First, there’s a lot of overlap and the AI materials are fairly clear. Second, AI requires you to implement algorithms from scratch, so you’ll come in with a good amount of intuition about how each algorithm works on a nitty-gritty level which goes a long way for the exams.


    Semester:

    Having completed 7 courses earlier, this was by far the hardest. And then I am employed full-time and had multiple travels during the term, and the time with family. So a living hell of a sort. Midterm was the worst. Nightmare, but hold on and do not drop.

    What I liked:

    • The lectures, they are different from the rest. I rate HCI by far the best and then would consider this. Like the way the professors explain concepts.
    • Assignments/projects as you can call them. Though you can steal code, nothing you can do from scratch. Although time provided would be a constraint. I did Assignment 4 from scratch due to a few changes and had no issues.
    • Evaluation is on concepts not just the assignments or lectures. If you understand things well, you’d do well. However there are caveats which I will list in the dislikes.
    • There is a generous curve, while I feel requires a lot of effort in both assignments and exams to get an A - a slight less comfortable approach can get you B.

    What I disliked:

    • Assignment feedback - ambiguous at times. Wonder if the report was run through a bot or someone really looked into it. Absence of a rubric just seemed to make it worse.
    • I had fair feedback for A1-A3 and kind of accept them, however the feedback for A4 was ambiguous while I got a decent score. I was left wondering which way the feedback aligned.
    • Midterms and A2 submissions were pretty close and with the time limit for midterms, not a favorable time. I can’t complain, but the plan could be better.
    • Too short time to review the midterm solutions. I was traveling and missed them.

    While I do not despise this course, but can’t love it. Things should be considered for improvement. Hope I do not have another one of these again. If I had to repeat this course, crap out.


    Semester:

    Having taken six courses earlier, this by far is the hardest and also satisfying course. As the other reviews mentioned, there are two ways to look at this course, the lectures, the materials and the TAs. Either you can accept the challenge of an actual graduate course or whine that you are not being walked through step by step like a junior college student, just my 0.02 cents.

    Being a graduate course, this course correctly expects you to produce high quality analysis. That means reviewing and citing multiple papers, performing experiments and gaining intuition to the underlying mechanisms. Some OMSCS courses are faulty in spoon feeding assignments where turning in working code which is auto-verified is sufficient. IMHO, that is undergraduate level work. A graduate program equips you to perform further research, follow the scientific community and explore further. I learnt the most from this course in comparison to the six i took earlier.

    All assignments can be started from Day 1 and this is not a course for procrastination. Start from day 1 and front load all the lectures as soon as possible. Attend all office hours. The TAs go into detail about what their expectations from each assignment are. Read the assignment description and explore them, rather than just providing a yes/no answer.

    I would recommend choosing your datasets carefully as Assignments 1,2 and 3 recommend using the same dataset. Choose datasets with less than 2000 sample rows, one will less features and another with a lot. Also try to choose or craft a balanced dataset (yes you can build your own dataset) from any source to ease your life. You don’t higher score for a long running dataset, only results matter (any result).

    Midterm will be brutal. For instance our class mean was around 45% and many of the folks dropped off at that stage. It was meant to be brutal and hard and discourage anyone who wishes to skate by.

    Join the slack channel where you will find both the Professor, earlier students and the current group hangout. You can definitely learn a lot regarding the assignments, get help when stuck or get motivated if down :)

    The only problem, would be the lack of midterm and finals study guide of sorts. The exams are definitely 2-3 levels higher than the lectures in terms of applying the learnings and makes it a tough nut to crack. But since all the students have the same test with the same lectures, I believe the Professor provides a generous curve at the end.

    Good my final grade and scored an “A” at the end, thanks to the finals and the generous curve. Check tableau.gatech.edu for grade split ups.


    Semester:

    This course has a lot of negative reviews but I liked it. Yeah, it was hard, but I expected it to be hard. Machine Learning is a broad subject and this course attempts to cover the basics of most of it in a single semester. Plus you’re taking it at Georgia Tech with the Dean of The College of Computing himself.

    The 4 assignments are open-ended and that can be frustrating because you know there’s probably a rubric the TAs will use to grade you but you don’t know what it is. I think the point is that you are intended to approach the assignments as if you were a researcher. If you simply want to follow along with a tutorial, there are plently of them out there. To get an idea of what the TAs will be looking for, pay close attention during office hours. Take notes. Write down key terms. Reread your submission and make sure you answer every question posed by Dr. Isbell. I didn’t do as well on the assignments as I would have liked, but I think my grades were fair. Yeah, there were some elements that I think I addressed but that my TA missed. There were also a few where I thought my work was sketchy but they gave me the benefit of doubt. Overall, life isn’t fair but I don’t think it matters so much here due to the way final grades are determined.

    The exams are very fair and, in my opinion, some of the best thought out exams I have ever taken. They actually evaluate you on your understanding of the material. There are no suprises. No gotchas. You want to do well on the exams? Watch the lectures. Do the quizes. Make sure you actually understand the lectures. That’s it. No need for memorization of a million arcane facts. Just do your best to understand the material and you will be fine.

    I don’t have my final grade yet, but I’m confident I will get at least a B and possibly even an A. I didn’t have any prior ML experience beyond ML4T, DVA, and a bit of reading online. Overall, this class is exactly what I expected from OMSCS. It wasn’t ‘fun’ per se, but I did enjoy it and I learned far more than I anticipated. My only complaint is that I learned pre-ground coffee contains roaches. I really wish I didn’t know that.


    Semester:

    If you are an overachiever, you may have trouble with this class. The main reason being because the assignments are huge and very open ended (by design). If one is not careful, each assignment (there are 4) becomes a research paper, especially if one didn’t come to the course with a primer in ML. I found myself putting in more than 40 hours/week in the first half of the course and having a notion that the more time I put in the farther I got from actually being done (because the notion of being done is defined by the student and not by a rubric). So, my strongest advice is to not worry too much about delivering something you think is perfect. There is no written rubric/guideline on what should be included in the analysis. This is sort of silly, since the TAs drop useful hints on what should be included in the analysis for each assignment as part of OH. So, why not just document those hints in a one-page document? But…

    Midterm is brutal; finals are more manageable because of the reduced amount of material in relation to Midterm (not little material, just less than for Midterm that has a crazy amount). The median I think was at around 45/100 for this semester; which is scary as hell; again, especially if you an overachiever.

    The first good news is that, since everything is open ended, the learning rate is insane. When I finally could take a breather after finals I looked back and realized how much I learned in just 4 months. Coming from zero in ML to a very reasonable amount of knowledge about Supervised, Unsupervised and Reinforcement learning in just 4 months.

    The second good news is that there is a significant curve at the end. So, if you delivered reasonable assignments and didn’t zero out the exams you have a good shot at an A at the end.

    To summarize: 1) Check any ego you may have at the door before you embark in this course’s journey 2) Accept the fact you may (most likely) get at least one heart crushing grade between assignments and exams 3) At the end, everything will work out as Isbell rewards hard work with a curve at the end 4) I suggest this course should be taken by every OMSCS student, regardless of specialization as it does offer a very reasonable survey of ML 5) Oh, I almost forgot. Make sure to be active in the course’ Slack channel. I got much more out of the discussions I had with fellow students in Slack than from TAs who are not very active in Piazza. In fact, out of all my courses to date, this one is the one I used Piazza the least; even though the course was the hardest and one that one needs a lot o help


    Semester:

    Be ready to spend a lot of time on this course. I would recommend to not pair it with another course.

    I did learn alot, but a lot of my time was spent trying to figure out what to actually put in the reports as the instructions leave it very open ended. This is not a good thing, because then in office hours they state you need specific things in the report. This was my last class in the program and I did not experience this in any other course. I would recommend that anything they mention during office hours be in the assignment instructions. It really doesn’t make sense, and then you are rushing to add certain things in your report after watching an office hours, when you thought you were done!

    The head TA’s were very good but I had some bad experiences with the other TA’s

    The course does not honor what was written in the syllabus on the home page in canvas. Regrades were not allowed for the last assignment, so make sure you put extra effort into the last assignment. They announced this during office hours and it was not documented anywhere, it gave some students an unfair advantage as if you need poorly in the first assignments, you could at-least request a regrade. Those like myself who did poorly on assignment 4 could not.

    Feedback given by TA’s was often times rushed and not thought through. I felt like certain TA’s rushed through and didnt provide anything meaningful Points were removed without explanation, so it was hard to improved based on it.

    Overall you will learn alot, but you will also burn out, mostly because of the issues I mentoined above. I think the course would be much better if it had a solid grading rubric for assignments.

    Exams were well thought out and challenging. Everyone does bad on the mid term, you just have to live with it, because thats how it was designed. Dont drop due to your midterm grade.


    Semester:

    Honestly, I was disappointed with the class. I don’t know if I can say it was hard in the traditional sense, its just that we don’t get feedbacks for anything we do. I had multiple projects that received a grade, but no feedbacks. Was I missing something in the report, did I analyze something wrong? Did I do the wrong assignment? I will never know. Thats the most disapointing part of this class. The material is good, the projects are good, but we don’t know what we need to improve on. The lectures are actually good too.


    Semester:

    tldr: This class is way over-hyped, requires a good amount of time, but is not incredibly difficult. By the end you’ll be exposed to a broad survey of ML. It’s a class worth taking, but probably one that will frustrate you more than it will excite you.

    The Good

    • You’ll cover supervised learning, randomized optimization, dimensionality reduction, clustering, MDPs, and reinforcement learning. While you won’t take deep dives into any of these areas, you do get a good amount of breadth in this survey course.
    • This class is not “Implement every single ML algorithm from scratch”, and that’s a good thing. You get to leverage existing libraries like scikit-learn to run a lot of experiments to see how the algorithms perform on different datasets and adjustments to hyperparameters.
    • If you enjoy wordplay, you’ll get some good laughs out of Littman and Isbell’s dialog in the lecture videos.

    The Bad

    • I don’t understand why so many students fawn over the professor. Some professors in OMSCS are active on Piazza or participate in office hours; Isbell is not one of those professors. Typically his only involvement is to chime in on Slack to complain about students’ Piazza posts. I understand that students often fail to read the directions, but it seems unprofessional for the professor, especially the Dean, to publicly whine about students. His general tone consists of snark, which gets old.
    • I found that the lecture videos, while sometimes comical, often don’t do a very good job of providing intuition or concrete examples of the content. Again, I’m not a student that expects everything to be contained within these lecture videos, but I often found myself asking why they chose to use the example or context they did.
    • This isn’t one of the classes in OMSCS with good TAs. Some others have written accurate descriptions of how the TAs rarely interact with the class, but again, you’ll essentially only get anything useful from the weekly office hours where they drop hints about what is expected in the assignments. And it does seem like the TA that grades your paper plays a large role in your paper’s grade. There were classmates that received feedback which stated, “You should have included X” and the students had both text, tables, and graphs on X.
    • I did really well on the assignments, but grew tired of the constant “you’ll be graded on your analysis” line being dropped all the time. There is so much to be explored or analyzed in this course, I just don’t understand why the only way to understand what the TAs expect to see is by watching office hours. Why can’t some of the essential items just be included in the assignment description?

    Tips

    • You typically get 3 weeks to complete each paper. Some people suggest 1 week to get your coding framework set up, another week to run your experiments, and then use the last week to write the report. That didn’t work well for me, and after the 2nd paper I switched to a different system that worked better for me. I would use ~2 days to explore the different available libraries to use and then start trying to write the paper. This helped me identify what I needed to write code for, and what experiments to run. That really helped me focus in on what I needed to do, saving me a lot of time from working on things that didn’t matter or didn’t belong in the report.
    • Watch the weekly office hours to understand what the TAs will look for in the papers.
    • Don’t quit. This class is graded on a curve and as long as you do the 4 papers and complete both exams you’ll survive. Keep your head down, do the work, and you’ll come out of this class one step closer to graduation.


    Semester:

    I really enjoyed the course objectives and how this class sought to emphasize application of ML and synthesis of theory over the memorization of formulas. I also thought that the lectures were well done and did a solid job of facilitating learning (although they do waste a lot of time with irrelevant jokes and bad puns).

    However, this course was ruined by terrible TAs. I started off bright-eyed and bushy-tailed wanting to love this course, but I ended up disillusioned and checked out. I will easily be getting an A in this course, so my review is not due to some bitterness over grades.

    To spend 60+ hours writing a report and then receive feedback that clearly demonstrates that the grader did not actually read your report is soul-crushing. I’m not talking about small mistakes. I’m talking about saying that your paper is missing “xyz” when “xyz” actually comprises an entire section and multiple pages of your paper. One TA commented that I needed to explain the long runtime of one of my algos; this would be useful feedback except for the fact that my paper clearly stated (using both words and tables) that this algo actually had the shortest runtime during my experiments. This is especially frustrating because you receive extremely limited feedback throughout the entire course. My sincerest condolences if Kye Bae, Subham Singhal, or Young Ki Hong grades your paper.

    The head TA, Amir Afsharinejad, does a good job running office hours but is pretty checked out in terms of everything else:

    • In the last office hours, he said verbatim, “this is going to be our last office hours so we’ll try to answer any remaining questions regarding the final exam on Piazza and be more active there during this time.” After that, 11 days passed before a TA answered a single public Piazza question and only one question was answered before the final exam window opened.

    • He released the midterm solutions late, accidentally closed them early, and then completely ignored all the Piazza posts asking him to make them available.

    • He made PS2 due on Thanksgiving and then did not release the solutions until a week later which was one day before the final exam window opened.

    The assignments in this course do facilitate learning, but they do so in an extremely inefficient manner. I would have liked to have spent more time on learning about actual ML. The assignments can be an massive time sink due to the lack of structure and clarity as to what is actually expected. Of all the classes I have taken in OMSCS, I have definitely learned the least per hour spent on this course.

    The exams do a good job of measuring synthesis of the topics covered. The assignments simply measure one’s ability to glean grading rubrics from office hours.

    All in all, instead of fixing the actual issues with the course and its subjective grading that’s heavily dependent on one’s TA, Isbell applies a band-aid by assigning final grades using a massive curve. If you’re still breathing at the end of the course, you’ll likely get a B or better.


    Semester:

    I’m not sure what happened this semester, but TAs don’t read your reports. They only look for keywords and if you didn’t use that word, they say you didn’t include it. After every assignment was returned, numerous students reported being told that they did not include some item which they did. RL is also taught by Isbell but it is extremely well run and TAs give constructive feedback. In ML, some comments were derogatory and provided no constructive criticism on top of being inaccurate. If you request a regrade, the TA often doubled down regardless if you provided evidence proving them incorrect. TAs hold weekly office hours in which the head TAs answer questions about assignments rather than any conceptual questions. The details about the assignments are never included in the assignment instructions which is ridiculous. It would be more helpful to students to give more detailed instructions and spend office hours discussing any conceptual confusion students have.

    Five TAs that do NOT read reports and act like children when challenged are Ganesh, Akhilesh, Kye, Young, and Subham . I won’t mention their surnames. I did reasonably well and earned an A, but after taking RL where the TAs are fantastic and active on slack and piazza, this class was a HUGE disappointment. Some of the TAs aren’t even enrolled on piazza. Amir and Dan rarely answer questions, and students mostly just receive sarcastic or ambiguous comments from Isbell. Dan occasionally popped in to slack and might have monitored but overall, these TAs are incompetent and unaccountable.

    There’s also a page limit to reports which has been consistent over years but seems pointless and a word limit would make more sense.

    Regrade policy that is consistent between ML and RL is that you must regain at least 5 points or lose 10. If the TA can’t justify a deduction, then the TA shouldn’t deduct. It seems like a childish policy. If the TAs did their jobs correctly the first time, there would be no need for regrades except in a few cases. (I have TAed before so this is not someone insensitive to what TAs do.) TAs that cannot do the work correctly and cannot admit when they’re wrong should be fired.


    Semester:

    The most disappointing class I have taken with OMSCS so far (this is my third one). This is the class that just kills all of your motivation.

    Lectures are not completely horrible, but don’t provide much practical knowledge. The homeworks are a complete nightmare. Not that they are that hard. But they are not designed to get you to the next level; they are not designed to encourage learning. I can’t even tell what they are designed for. Feels like they were developed by someone who has no clue how to teach students practical skills. You’re still probably going to get a B as long as you turn in your assignments. But this is just such a horrible way to run this class. Given how awesome this class could really be.

    If your assignments are consistently more than 10 percentage points below the mean and you must get at least a B, I would suggest dropping this class if your midterm is also below the mean.

    Isbell is one of the worst professors I ever had. He must think of himself as very smart and funny; in reality he is just a sarcastic jaded professor. Yeah, the dude is actually smart, but ask him a question and all he’ll come back with another one of his “funny” but useless and often demeaning comments. The dude needs to get a life and stop teaching this course. The last thing he cares about is getting students to be excited about this class.


    Semester:

    Class is well organized, but the homework is a total waste of time. It’s easy but waste of time.


    Semester:

    I dropped ML in two previous semesters before sticking with it this time. 1st project is a monster. Still didn’t do well this time, but ended up with a B in the class. Wish I would have stuck with it in one of my earlier attempts


    Semester:

    General introduction to the topic of ML, quite a standard one. Not really the best lecture in the program, but if you are in the ML specialization, you don’t have a choice anyway.

    One should really spend time and effort on the report of the assignments, and be well-prepared for exams.

    4 individual assignments + 2 exams. Python/Jython, MATLAB or whatever other language you like.


    Semester:

    Personally I’m not a fan of how this course was structures, it did not incite any learning from me. I came in to this class hoping I would learn something but I went through each week wondering what the heck I just learned.

    First off I did not like the way the lectures were structured. Professor Isbell and Professor Littmen tag team their lectures, one taking the role of the teacher and the other someone who is learning the material. I found that the back and forth question and conversations were at times a bit excessive. I understand why it might be helpful, but I thought it was overall wasteful in terms of time. I went through the lectures at 1.5x and I still felt like the lectures were going on for a long time! I just wanted them to get to the point. The back and forth confused me a lot having to listen to two voices. I found myself looking for material outside of the classroom, primarily on YouTube to help me get a better understanding of what I just watched.

    Secondly the projects were super vague and primarily paper based. We were instructed to “steal” code so that we could focus more on our paper. But I found myself trying to find code, trying to fit it towards my need and not fully understanding what I just did, all while worrying if I have enough time to even start and finish my paper. By the third project, I just kind of mentally checkout of my assignments because I just didn’t think it would be worth putting in all that effort, which lead me to my next point.

    Because of the way this course grades your work, if you’re typically a borderline A-B student (meaning often ride around the 89-91%) I felt like at some point there isn’t any reason to put more effort into the class because I know that I’m just going to get a B anyways. The curve is meant to be generous. But if you want to get an A you either have to know the material already, or be able to really focus on the class, which I unfortunately could not as I have full time work and took another class with this. I ended up focusing on doing well in my other class and just cruised the latter half of this one. Psychologically (and this is a flaw of me) I just don’t try as hard knowing that I won’t be getting and A. The thing is I’ve been breaking this barrier of my in my other classes, but this one really brought me down.

    Unfortunately everyone has to take this class for ML specialization. I hope that I’ll be able to learn more outside of this class.


    Semester:

    The workload in CS7641 is challenging but you will learn a lot especially if you are new to data science. The first three projects cover Supervised Learning, Randomized Search and Unsupervised learning respectively. The fourth and final project covered Reinforcement Learning which has an entirely separate course dedicated to it in the OMSCS. I used sci-kit learn for projects 1 and 3 but used ABAGAIL, the course recommendation for project 2 as it had the best support for all the randomized search algorithms that the project needed to cover. If you have done the OMSCS Reinforcement Learning course then this will give you a leg up for the final part of CS7641 including project 4 for which I used Python MDP toolbox and Open AI Gym. If you are not already proficient with the packages you select for the projects, you will have to learn them on your own. I used datacamp.com to understand how to use the sci-kit learn package for projects 1 and 3. What really matters for the projects is the analysis report that you have to produce. Your code, whilst required to produce the results, is not graded at all. It is worth noting that unlike most CS courses, you are allowed to reuse other peoples code for CS7641 (as in steal outright - no joke) however your analysis report has to be entirely your own work. CS7641 is notorious for its difficulty level however this is reflected in the grading curve. A good score for each of the projects will go a long way towards passing this course.

    There are two exams; one mid-term and a final. I didn’t do particularly well on either one (think forties and fifties) but scored highly in the projects (think sixties to eighties) to end up with an A on the course. Of course the grading curve is dependent on the class intake itself however I understand the curve for CS7641 is fairly consistent from year to year.

    The course professors, Isbell and Litman, attempt to break down complex ML theory into digestible chunks in their lectures whilst keeping up the banter between themselves. The lectures are the chief source of revision for the exams. All in all, CS7641 is a very rewarding course that I would recommend for anyone who has an interest in machine learning.


    Semester:

    Here are some of the things you may learn in this course:

    1) How to deal with arrogant, unpleasant, and unreasonable people (Maybe even how to do so without becoming a really horrible and unreasonable person yourself. Maybe!)

    2) Persistance and Tenacity. The material is not very interesting, isn’t presented especially well, and assignments are mostly the same (i.e., not clearly specified or well conceived and mostly lots of busy work).

    3) How to tolerate having your work absolutely savaged after having put many, many hours of effort into said work product.

    4) How to tolerate ambiguity in project specifications.

    5) How to deal with people who tend to wield the power that has been granted them in totally arbitrary and capricious ways (sometimes seemingly bordering on genuinely spiteful.)

    Here are some things you probably won’t learn that much about in this course:

    1) Machine Learning - The course covers theory and application alike at just about the right level of superficiality to ensure that you probably won’t learn much of either very well. Students are routinely admonished to think hard (Yes, admonished. Not encouraged. The presumption was that none of us were doing this already, or could be bothered to absent a bit of shaming.) about the material, but don’t seem to have been provided with a great set of tools which would enable them to do so. It’s also far from clear that anyone on the instructional side thought very hard about questions of pedagogy when consideration was being given to the design of the course. So, there’s all of that.

    Note: I actually took the course Spring semseter of ‘19 (this doesn’t appear as an option in the dropdown menu.) I achieved a letter grade of ‘A’ with a numerical average of just above 65. Though I actually do think that all 5 of the real word lessons enumerated above are worth learning, it would have been nice to have actually learned some ML too given that that was the primary reason I (and, presumably, most students) signed up to take the course in the first place.

    I put off writing this review until I could avail myself of the benefit of having some distance from my experiences in the course. I wasn’t sure until I sat down to write it that it would ever actually get written at all. For the benefit of those who take it in the future, I think it’s worth stating what my experience of the course was. Perhaps (and hopefully), yours will be better.


    Semester:

    Georgia Tech should have a real evaluation of its course because the bar is very low in that class.

    Teachers and TAs are not there to foster the future with students who master machine learning at all. Their only goal is to borderline “bully” student with stark remarks and responses. Any kind of questions from students should be considered a good question instead of answering “you know the answer in your heart” or “go check the whitepaper”. The course is driven by high ego people who do not care about students success.

    I got A and I can barely do anything after this course. Why? Because everything is only copy-pasting. My grade swayed from 50% to 95% with the same rigor. The main issue: the assignment criteria are not well defined, hence a lot of gray areas that “luck” is the only factor. My best assignment, the one that I understood the most and spent the most time got 50% while my 95% was a little bit fuzzier in my opinion.

    Cons:

    1) Lectures are way too long. Most ver 90 minutes but there is actually 10-15 minutes content in each. Too many off-track discussion and way too many shortcuts for important topics. Some critical algorithm will have a 3-4 minutes video with zero examples (or 1 example maximum). Impossible to grasp the core of the idea without having to spend several hours on different external videos and website.

    2) Too many whitepapers to read and external reading that is not digested. If this class goal is to learn how to read cryptic whitepapers, sure, but the goal should be to teach students about machine learning which this class does not.

    3) Teachers, Isbell, is a bully. He would have been fired from my work. He acts as a kind of god and he seems to be untouchable, now has the dean. Very bad examples for every student, TA and people who believe that it is the way to act with other individuals.

    4) No matter how hard you will work, you will always be lost if you do not already have a good background in machine learning.

    5) Very hard to learn when we must copy the code. Trying to do it from scratch to really understand will cost you too much time. I wasted the first week because I wanted to learn properly but forget about it.

    6) Too many topics. All the RL stuff should be out for the course called “RL-7642”. Instead, they should spend more time to teach on the subject that they briefly talk.

    7) Related to point 1, they must know as professors that students need more than 0 or 1 example. Also, the scare examples provided are not even original. They are derivative from books or whitepapers, hence it reduces the number of examples to learn from.

    Pros:

    1) Individual work

    2) Learned new topics (but still do not understand them very well)

    Summary

    Georgia Tech should really check itself in a mirror. The number of quality Youtube videos on Machine Learning are rising and the quality is easily better than this course. I watched all the lecture, read all the supplementary documents (whitepapers, books chapters) and with a high investment time of 18 to 22 hours per week have tiny of knowledge about machine learning. I would have rather understand a few topics but to understand them well instead of throwing a gazillion keywords and jokes.

    By the way, having to curve a class that heavily should be an indicator that most people do not understand. Not because they are bad: because the teaching is the worse.


    Semester:

    Georgia Tech should have a real evaluation of its course because the bar is very low in that class.

    Teachers and TAs are not there to foster the future with students who master machine learning at all. Their only goal is to borderline “bully” student with stark remarks and responses. Any kind of questions from students should be considered a good question instead of answering “you know the answer in your heart” or “go check the whitepaper”. The course is driven by high ego people who do not care about students success.

    I got A and I can barely do anything after this course. Why? Because everything is only copy-pasting. My grade swayed from 50% to 95% with the same rigor. The main issue: the assignment criteria are not well defined, hence a lot of gray areas that “luck” is the only factor. My best assignment, the one that I understood the most and spent the most time got 50% while my 95% was a little bit fuzzier in my opinion.

    Cons:

    1) Lectures are way too long. Most ver 90 minutes but there is actually 10-15 minutes content in each. Too many off-track discussion and way too many shortcuts for important topics. Some critical algorithm will have a 3-4 minutes video with zero examples (or 1 example maximum). Impossible to grasp the core of the idea without having to spend several hours on different external videos and website.

    2) Too many whitepapers to read and external reading that is not digested. If this class goal is to learn how to read cryptic whitepapers, sure, but the goal should be to teach students about machine learning which this class does not.

    3) Teachers, Isbell, is a bully. He would have been fired from my work. He acts as a kind of god and he seems to be untouchable, now has the dean. Very bad examples for every student, TA and people who believe that it is the way to act with other individuals.

    4) No matter how hard you will work, you will always be lost if you do not already have a good background in machine learning.

    5) Very hard to learn when we must copy the code. Trying to do it from scratch to really understand will cost you too much time. I wasted the first week because I wanted to learn properly but forget about it.

    6) Too many topics. All the RL stuff should be out for the course called “RL-7642”. Instead, they should spend more time to teach on the subject that they briefly talk.

    7) Related to point 1, they must know as professors that students need more than 0 or 1 example. Also, the scare examples provided are not even original. They are derivative from books or whitepapers, hence it reduces the number of examples to learn from.

    Pros:

    1) Individual work

    2) Learned new topics (but still do not understand them very well)

    Summary

    Georgia Tech should really check itself in a mirror. The number of quality Youtube videos on Machine Learning are rising and the quality is easily better than this course. I watched all the lecture, read all the supplementary documents (whitepapers, books chapters) and with a high investment time of 18 to 22 hours per week have tiny of knowledge about machine learning. I would have rather understand a few topics but to understand them well instead of throwing a gazillion keywords and jokes.

    By the way, having to curve a class that heavily should be an indicator that most people do not understand. Not because they are bad: because the teaching is the worse.


    Semester:

    This course is not quite as bad as people are saying that it is, as long as you use the resources provided and work ahead. By “resources” I am definitely recommending that you approach the projects based on either Jontay’s or Chad’s code- assuming you do this, I think the course is actually doable in 10 hours or less work a week if you are working efficiently. (This is a far cry from the 20 hr average on this site, but I measured the time it took and I believe it is realistic.)

    Don’t feel like you need to go in with a super developed grasp of linear algebra and calculus- the basics will do. Much of what you are being measured on is understanding of the overarching concepts, synthesis, and being able to write. The math is really secondary; this is coming from someone who didn’t take a single math course in college! (I also dropped AI for Robotics because I was getting confused on the math.) A much better preparation is just reading ahead in the book and perhaps skimming the videos for Andrew Ng’s course on ML, which does a better job of explaining the algorithms than this course. (Quicker, too.)

    Because Ng’s course was a better explainer, I would say that this course doesn’t have the best lectures, although they are by no means bad. The assignments, though they require work, are mostly enjoyable to do. The tests are freakin’ hard, but being able to type fast and synthesize should get you through. Make it to the end and you’re basically guaranteed a B. I was dreading this course (saved it for my last in the program), but I easily got an A, to my surprise.


    Semester:

    This is a kind of course where your takeaway completely depends on how much effort you put in. The Grading rubrics are not known. The points you get on your submission are highly stochastic and depend on the Grader you’ve been assigned.

    The course material is a good survey of the technology and it’s up to the learners to make most from it. Code to the projects are freely available but beware of using them without understanding it. Because the reports need to be written by you and absolutely no copying of reports is allowed.

    I highly recommend that you take RL only after ML. I did just the opposite and I repent it.

    Advice: i) Be active on slack, ii) OH is avoidable, iii) Steal the code, iv) You will get good feedback from the project reports - make use of it in subsequent submissions (ditto for the mid-term), v) Work ahead if possible, vi) In your reports don’t just say what you did; also say why you think what you saw, vii) Don’t panic - You will get a B if you stick till the end and submit everything


    Semester:

    This was a time-consuming class that you should make sure you have time to fully commit to. I enjoyed the content and the assignments, and I felt that the material was taught in a practical manner. By a practical manner, I mean that we spent a lot of time in looking at when and why to use specific ML methods and algorithms as opposed to focusing on the specifics of implementation.

    Assignments: Four assignments, each one will take quite a bit of time to run, analyze, and write up a 10-12 page report. Stealing code from anywhere is encouraged, but to do well you need to understand what the code is doing and what the output means. Be sure to address every tiny thing mentioned in the assignment description, and attend office hours to hear about expected content that is not covered in the assignment description. The TAs expect this content to be there, and you will be docked points if it is not included. Grading is somewhat subjective depending on the TA that graded your paper, and regrade requests are strongly discouraged (with point penalties if they do not result in an increased score).

    Exams: Midterm and Final (not cumulative). Same length, but final exam has twice as much time. The midterm gave very little time to really think through your answers, whereas the final you could really spend some time deliberating. The questions were challenging, but partial credit and curve were extremely generous.

    Overall, I enjoyed the course for what it was: a survey of ML topics/algorithms and when/why you use them. As difficult as it is to do, don’t stress about grades and you will make it out with at least a B if you put in the time and effort.


    Semester:

    This was my third class in the OMSCS program, which I took concurrently with ML4T, during the Spring 2019 semester. It was definitely the most challenging class I took so far (compared to ML4T, HCI, and DVA). That being said though, I ended up really enjoying the class as a whole, especially the strong/broad introduction it provided to Machine Learning concepts and methods.

    The class covers a lot of content at an extremely quick pace, so unless you already have experience with machine learning, you will most likely feel overwhelmed. I think this was done intentionally however as a way to quickly expose students to all the different kinds of machine learning topics that could be explored in greater depths in future classes (e.g., RL).

    As such, the grades received from the assignments and exams were not as important as in other classes because there is a very generous curve at the end of the semester. The grading really worried and demotivated/demoralized a lot of students. Personally, I tried not to think about my grade a lot throughout the semester and instead focused on trying to learn and do my best.

    Ultimately, my grade was curved up to a B, and I think most students fell into the B or A range. I do think some of the TA grading was a bit too subjective at times, especially for the assignments - But again, I tried not to pay too much attention to the numeric value attached to my assignments, focusing instead on the feedback provided (most of which was very extensive and helpful!).

    All in all, ML is a very good and necessary class, even though its evaluation methods and structure may not appeal to everyone.


    Semester:

    This was a very labor intensive course. It was a broad survey of the machine learning field covering supervised learning, unsupervised learning, randomized optimization and reinforcement learning and game theory. There are 4 very time consuming projects and 2 exams (a midterm and a final). It’s highly recommended that you get started on the projects early since you only have 3 weeks for each project. You’ll need about a week to get your datasets and code running, another week to fine tune your experiments and code, and the final week to write a 10-12 page paper on your experiment results. A lot of people complained about the lack of a rigorous rubric but I found that if you addressed every point in the assignment write up in detail that you should score well. Also, attend every office hours as the TA’s drop hints about what they expect to see in your experiments and analysis. Overall I enjoyed the course and felt like I learned a lot. However, I wish the course was broken up into multiple courses so each topic could be covered in more depth. The math and details were glossed over and the course focused on generating a high level intuition about how the algorithms worked. About 1/3 of the class drops every semester following the release of the midterm results. The vast majority of those that remain are all but guaranteed a B if they turn in every assignment and take both exams. There is very very generous curve.


    Semester:

    I took this course in Spring 2019

    A quick intro into my background: I’m from a computer science background and I’m a developer by profession. I’m completely new to ML and the algorithms associated with it. So I took this class as an intro into ML. But did I make it out the other end with enough confidence to apply the learnings? I would say no.

    For me this course was a whirlwind of topics introduced and without enough background to truly appreciate this I don’t think I did justice to this course. The assignments were tough and it was expected to have a good understanding of the underlying algorithm while I was still trying to wrap my head over what it is that I’m trying to do. We didn’t need to code (and not enough time for it either) which meant that I didn’t get at least a practical hands-on at the end of it.

    I had to do a lot of external reading and watch a bunch of videos to grasp the thought processes/background needed to appreciate the practical implications of these assignments. For instance we were asked to pick any dataset and any code available to provide an analysis of decision trees. But, the idea of what is meant by a good dataset or what/how are fields chosen to learn or what is meant by pre processing the data or what is a good methodology to attack such problems are not discussed in this course although it is said to be an introduction to ML.

    Anyway I felt like a misfit in this course and have come out with an aversion to ML. I’m sadly and totally banking on the grading curve to come out with scars and without anything concrete (other than a mild familiarity to the algorithms perhaps) to talk about in ML.


    Semester:

    The course is easier than stated in the reviews. It comprises of 4 assignments, totaling 50%, and two exams comprising the remaining 50%. I frankly didn’t learn as much as I’d have liked to. This is due to the fact that in all the assignments you can steal code. And the fact that there are just way too many algorithms to implement. There is 3-4 weeks for each assignment. It’s very difficult to code, experiment, tune the hyper-parameters to get results, plot etc. And after this you have to write an analysis (10-12 pages long). This was the biggest pain point for me. The exams are administered thru Proctor-track. A review of the lectures is sufficient to prepare for the exams.


    Semester:

    I felt that the course content was average. Videos were filled with cringey puns made by the professors. The last part of the course was very rushed, huge amount of content was covered in very few videos.

    Assignments required 10-12 page written analysis. It was encouraged to steal code. Looking back, I did not learn a lot because of this. If you write your own code, expect 30+ hours/week commitment (for a 3 credit course!). Grading was based solely on the written analysis (code had no weight on its own). Since it was a written report, the grading was very random and completely dependent on the TA who graded your report. Seemed like grades were based on your English writing ability and it had very little to do with the report content.

    Liked the exams. They were tough and did a great job of differentiating between students. Questions were logical, well designed and grading was fair. Exam scores constituted 50% of the final grade. Despite having below average scores in the assignments, I managed to get an A due to high exam scores.

    Overall, I feel that you should take this course only if you are interested in machine learning research. I expected to learn some practical machine learning skills and the course did not live up to my expectations in this regard.


    Semester:

    • Not as hard as said in reviews. Probably because you need not code and take advantage of the code written by previous students
    • Assignments are graded only on analysis. Grades for assignment depends on TA who is checking your assignment. So in one assignment you could get 100 by one TA while your score could fall in fifties for similar analysis in another assignment. But there is a scoring curve and I guess everyone goes through that.
    • Exam 1 is hard as you have to cover lot of material. Also during the exam, you get very little time to write answers for lot of questions. Lot of students dropped after midterm because of grading in first assignment and exam 1.
    • Assignments are open ended and their is no rubric except for few comments in canvas. If you follow those comments you “MIGHT” do good.
    • Survey course . You will get overview of ML concepts and algorithms. Probably they break into 3-4 courses ( like they already have RL course in OMSCS) where you dive deeper into concepts.

    • Professors are knowledgable and it was fun course to watch and they have very intuitive way to make you understand the concepts. I have watched Stanford, CMU courses as well on net to get into more details for the concepts but found them very drab and hard to follow.


    Semester:

    Machine Learning is, I hope, my 10th and final OMSCS course. Choosing it over AI may have been a poor choice, given my background in coding. But I’ve basically lost faith in AI as a viable technology. So it was ML, here I come.

    After knocking out a 45% on the midterm exam and feeling lucky to get that, I belatedly got the memo that I needed a B in the class to meet the core requirement for graduation. This increased my stress level from 20 on a 10-scale to approximately 1000 but was probably just as well: If I’d known this going in, I might not have taken the class this semester (Spring 2019) at all.

    It turned out that my soul-crushing experience on the midterm was actually slightly above the class average, which restored some hope. Soon after the first project grades came back and again I was slightly on the good side of the mean. It was doable, after all, if I could maintain the 20-hr/week pace I was on.

    That, needless to say, is not easy when working 45+ hours/week on one’s real job. This is my only major knock on OMSCS: The time commitment varies a lot between courses and some of them are over the top. There is a simple solution, of course, and that is administrative oversight of course design to level the time/credit hour relationship. Despite the naysayers, this can be done!

    The lectures by Dr. Isbell and Dr. Littman are interesting and filled with numerous, even constant quips and puns, to keep things lively. Thank goodness, because there are a lot of long lessons, some with moderately intricate algorithms and equations to untangle. Of the courses I took, the ML lectures are by far the best, with KBAI in second.

    The supervised learning project is quite demanding as it is a survey over multiple SL algorithms. Take Isbell’s advice and steal the code from the ‘net. I wasted considerable time on vanity by attempting to write my own grid search. Not a good idea.

    Of course, using someone else’s framework has its own problems, as any coder knows. But it is the shorter path, in the end, toward writing the paper that is the real job of the student.

    More than one programmer-type like myself had to battle through the fact that one’s skill with that aspect of C.S. meant very little in the class. Happily, writing is another relative strength of mine, so I may have fared better than I might have otherwise.

    The 7641 Slack channel helped a lot with this class as some alumni were present there, as well as a good group of current students. Tips and tricks were shared that helped a lot, as virtually everyone used the “Jontay” or “Chad” code as the basis for their project.

    I didn’t learn as much as I could have if writing the code from the ground up was doable. Unfortunately, there is too much material in too little time to allow for this approach.

    I am left wondering if lopping off the reinforcement learning element of the class and spreading the rest of the material out would not be more beneficial to the student? After all, there is a whole class on RL. But this would work against using ML as a core component of the program…

    My final thoughts on ML are that it is a good course on an interesting subject. Perhaps it is one that doesn’t jive with my personal interests, but it’s well-run and the workload is survivable - if your expectations and time management are realistic.

    During the first month, I told my wife that she should expect to become a “machine learning widow” for the duration of the class. That proved to be correct and I even ended up having to burn some vacation hours to get the work completed. So be it. It is done.


    Semester:

    This course is a broad survey of Machine Learning, which means it moves very fast. The lectures were very enjoyable and I really liked the interaction between Professor Isbell and Professor Littman. It’s really the first time I’ve seen a class taught like this and now I wish more classes were done this way, where one acts as the “student” and the other acts as a “teacher”. There were a total of 4 projects. Each project covers a different “section” of machine learning. I am not exaggerating when I say I spent 35+ hours on each assignment on average. Get started on the projects early. I would not be able to finish some of the assignments if I got started the weekend it was due. I do wish the projects were more specific in their requirements (especially the first assignment where many students are getting used to the expectations for the class), but they really require you to do a lot of self learning and exploring. The purpose is to use the algorithms in a practical way on real datasets. Not much to say about the tests, just memorize details.

    My recommendation: Watch all the lectures. Really put in the time and thought into choosing the datasets (try out many!) and working on the projects. Read additional papers and learn about the code behind the algorithms. Trust that the curve will give you at least a B.

    I have a full-time job and barely managed to squeeze in the time for this class. I would not recommend pairing this class with another. Looking back, I really enjoyed the class. I feel like the end was a little rushed, but that’s how it is for most survey classes. As with many OMSCS classes, the more time you put into the class, the more you’ll get out of it.


    Semester:

    Whew.

    This is a very broad survey course that emphasizes conceptual understanding.

    The video lectures are refreshing and the banter between the instructors keeps things moving. The in-video quizzes are great to clarify the concepts.

    The assessments, however, are severely lacking.

    Especially the homeworks, of which there are 4. (I counted them as “projects” because they take that much effort). The two main gripes with the homework are: 1) The lack of a solid rubric. The indication of what is expected boils down to “you will be graded on your analysis.” 2) The lack of supporting software. We are told that “it doesn’t matter what data/code we use, just that we justify our choices and how we analyze the results,” but 90% of my time was getting the datasets and/or code working. None of the class was preparation for this 90% of the time. This resulted in rushed/missing analysis, and I missed an entire homework, as well. If it doesn’t matter what datasets/code we use, why not provide a default set, then let the more advanced explore beyond that on their own?

    The exams were closed EVERYTHING. I couldn’t even cut and paste in the exam text field! So, after all that time getting the datasets/code working, the exams were purely a set of essays written off the top of one’s head.

    Grades were always delayed, due to the written nature of the assessments, they had to be read and graded individually.

    The curve is massive, which is a blessing and a curse. The blessing is that, if you’re breathing, you’ll probably come out with a C. The curse is, there’s little incentive to put in the dozens of extra hours to max out the homework or really nail the exam.

    I’d recommend NOT pairing this course with anything else, so you can devote your whole attention to it.

    I took ISYE 6644 and TA’d this semester. I should have done less, so I could do more with this class.


    Semester:

    The lectures were entertaining even though at times they were a little long. This was understandable as there were a lot of concepts that were quite dense. I am still amazed at how much information was packed into a semester in this class. Professor Isbell said there would be “tears of joy” at the end of the semester and he was right. I struggled immensely, did poorly on the midterm, better on the final and my last project had a decent grade. Even though I struggled the entire semester I found the material very interesting. At times I found doing more experimentation with some of the concepts than actually working on the assignment itself. I made out well enough to finish the program and did indeed shed tears of joy. The grading was more than fair but you will work your tail off. I didn’t realize how much I enjoyed the class until I found myself exploring the content on my own and reviewing what I could have done better on my assignments long after the course was over.


    Semester:

    To me this was an OMSCS defining course. Office hours were run by great TAs who really knew their stuff. The assignments are ambiguous at times but I think it helped me really think things through. The tests were really hard.

    You can use any coding language you want but I used python for most of my assignments except for the A2 which was Jython. Also, I would recommend using Oreilly (free access with OMSCS) concurrently or before to learn how to build models in SciKit learn, Pandas, and OpenAI gym. They don’t dictate solutions but if you are planning to use Python those are things you should be familiar with.


    Semester:

    One of the best class that I have taken in OMSCS. Prof. Isbell and TAs were very active and helpful at piazza. The course is difficult at the right level. The emphasis on results analysis instead of code really forced you to think twice and question whatever it is that you were experimenting. In my opinion, this is what separates undergrad-level class with postgrad’s.

    The course has 4 assignments, all of which are basically : (1) get some datasets/problems (2) experiment using a bunch of algorithms (3) Analyze and justify why do you get the results (no deep learning, black-box stuff)

    To succeed in this course, make sure you refresh some statistics and calculus. The lectures discuss some formula derivation but for more details, I recommend Andrew Ng’s ML course in Coursera which discuss it in more details.


    Semester:

    This course is hard. It’s “Throw you in and you will learn to swim “ style. The lectures are theoretical and excellent - but not exactly practical. The assignments want you to think not code, so don’t feel bad using jontay’s code. I wrote my own, because I’m familiar with the stack so it wasn’t hard for me, but if it’s hard for you – don’t spend your energy on the code. Spend your energy thinking about what you are doing and why.

    The exams are brutal. Honestly I didn’t study much and I suffered for it, I was slightly below median, but thanks to the generous curve I got an A. Don’t freak out – just keep going. You will learn a lot – but none of it will hold your hand. So if you like learning by doing (and some suffering) go for this. If you want a gentle approach – avoid. Also, if you are just starting in ML – take ML4t first – it’s a much better intro to ML and the tools.


    Semester:

    ML is not an easy course and one that I would definitely not recommend as a first course. By the time I had enrolled in this course, I had already taken ML4T, AI and DVA, and had a solid grasp of Python, and I still ended up spending pretty much every free minute I had working on the assignments (including running code on my computer while I slept and while I was at work).

    As other reviewers have mentioned, the assessment for this course comprises 4 assignments and 2 proctored exams. Each assignment covers approximately 1/4 of the course material (the topics are: supervised learning; randomized optimization; unsupervised learning; and reinforcement learning respectively) and require you to select two datasets and apply the techniques taught in class to them using any programming language you want. I used Python for all four of the assignments and was happy with the results (the assignments can be done in Python using sklearn for Assignments 1 and 3; mlrose for Assignment 2 and mdptoolbox for Assignment 4). Whatever language you decide to go with, make sure you stick to your decision, at least for the duration of each assignment, as you will not have time to change your mind once you start.

    The marking of the assignments is very hard, but it is possible to get 100%. That said, the class median for each assignment was very low, so don’t be surprised if you get 50% or below.

    The two exams each cover 1/2 of the course material, with no overlap, and are also very challenging. Again, the marking was very harsh and I don’t think there was anyone in the class who was happy once they saw their grade.

    Nevertheless, grades for this course are curved, so if you can manage to make it to the end of the semester, then there is a good chance that you will get an A or a B.

    Overall, this was one of the most challenging courses of my OMSCS career, but also one of the most rewarding. To quote Prof. Isbell, “yes, there will be tears, but they will be tears of joy.”


    Semester:

    Great amount of material covered, and great lectures. The encouragement to steal code & use whatever was very nice. Feedback on exams could be more detailed.


    Semester:

    Good course. You learn a lot: 1) in the projects through hands on work; and 2) in the tests too because they force you to think and put things together (answers not in any text you will read, you will need to come up with new ideas).

    It’s a survey course, so don’t expect a lot of depth or any coverage of the state of the art techniques (Deep learning is completely missing), but it’s good for getting foundations right.


    Semester:

    Sorry, but this is a good course. Yes, the instructor holds the rubric private. That doesn’t matter. Just answer all the questions asked in the assignment. Also address all the topics in the lecture and you’ll definitely cover everything. Releasing a rubric would just further rob students of the work required to determine what sort of things it is important to report on. There are plenty of resources provided to help you.

    Another common complaint is that the class is curved. I think we need to get over ourselves and not expect that getting less than 90% on an exam is a basis for panic and complaints to the instructor. The curve is more or less the same every single year both off campus and off.

    Ultimately, this class delivers what it’s supposed to deliver: a reasonable basis for evaluating algorithms and developing a sense of when one might perform better than another. This is an important skill and one you are unlikely to develop without taking a course like this or doing the same sort of work independently.

    If you’ve gone through OMSCS complaining that the professor is absent, this is the course for you. The instructor is always there to remind you that he already answered the question in the assignment. The course doesn’t change from semester to semester, and everything you need to excel is made available to you.

    A valid concern that some people bring up is that the course doesn’t touch on newer topics. This is perhaps fair, but the course is already packed. Learn this stuff, and you can go take a deep-learning course after this with a strong foundation.

    In general, try to know some math before taking this. That means linear algebra and calculus. If you take AI before, that might be helpful, but it really shouldn’t be necessary. Additionally, you can take this course before RL, and that will be fine.


    Semester:

    Look at the chain of reviews below. Yet, If I am posting a “Strongly Disliked” comment for Fall 2018, it means that the instructors does not care about any feedback which he clearly said on the forum -“I don’t care”. The forum is flooded with that statement for any question you ask. The course will teach you names of quite a few ML algorithms. You have to forget your social life to finish the assignments. But then at the end of the course you realize that the course didn’t teach you any single algorithm at it’s depth. The mathematics of the algorithms are hardly explained. The lecture is delivered through chaotic interaction between two profs who probably know their stuffs but does not know how to teach and too arrogant to take any feedback to improve. Waste of time but you have to take the course to be in ML specialization. Never seen more useless TAs who never help students with anything conclusive answers for any questions. All the students discussing stuffs and trying to find their ways. The only good part was the explanation of RL material at the end of the course. Clearly such courses/MS are not meant to teach you anything but just for business purpose. Similar feedback is posted for many other OMSCS ML specialization courses where the course is not being improved, the prof has left but the course keep on continuing. Take Andrew Ng courses on courser before taking this course so that you have an understating what the prof is talking about. Lower your expectation down from the course. If this is your first ML course, its okay but if you already have idea and looking for a deeper understanding , this is not going to help.


    Semester:

    This course took a different approach compared to conventional classes. The focus of this class is to enhance the student’s ability to take information and logically draw conclusions/synthesize new information out domain knowledge/presented material. As such, the lecture style consists of two professors conversing on the topic with one taking the role of lecturer and the other taking the role of the student. The approach is effective for those who derive understanding from thinking about the material, and significantly less so for those who are book/memorization learners. Note that this review comes from the perspective of a student in the former classification.

    Where this class falls flat on its face is the homework assignments. There are four in total, consisting of a coding section (where plaigarism of the code is openly encouraged) and an analysis section. The analysis is a 10-12 page writeup (each consisting of 10-15% of the total course grade) and is extremely subjective. Feedback and grades received vary widely across TAs and is entirely the luck of the draw (based on small sample size, it seems to be uniformly distributed between 50 and 100). As such, when approaching the complation of homeworks one needs to realize that the work is less about the grade (more on completion) and more about how the algorithm would be applied to a real data set/explained to a bystander. All homeworks are made available at the beginning of the course, but for a working professional it will be a struggle to stay on track with lectures and homeworks, let alone getting ahead.

    Exams are focused on how a student would apply the algorithms learned in class to (what should be) a problem that has not been viewed before. This may sometimes extend to simple calculations or even pseudocode, but tend to be very fair in terms of no surprises. Despite this, the exams are quite difficult to non-coders nonetheless. There are two optional problem sets whose problems are more closely related to the exam questions. These are often skipped but in a more conventional class would have been the focus of the graded homeworks and the current graded homeworks reworked into a semester-long project.

    Overall, an effective course in terms of teaching material, but the grading structure may be a shock to students who may be used to performing well. Even if the grade appears to be bad, as long your grade appears to be within one standard deviation, a B can be expected. Simply completing all of the homeworks and attempting the exam should net at least a passing C grade.


    Semester:

    This course was interesting. The projects feel similar to an industry project as they are open-ended and require you to back up your statements in the report. The first 3 projects use the same data sets doing different things (supervised learning, optimization, and clustering) while the final project is a reinforcement learning problem. The midterm was pretty rough but the final was much easier.

    A few tips for people getting ready to take the class:

    1. Use JonTay’s code repo. Yes, it’s stealing code but this is one of the few times this is allowed in the program. You may learn more by programming it yourself but honestly not much more (as you shouldn’t really program the algorithms yourself anyways). Using this repo likely cuts 10-20 hrs off per project. Several times I tried to get more own solution working than gave up and spent more time running additional experiments.

    2. Trust the curve. It will change every time but you can expect to pass the class unless you are near 10% (seriously, I got a 65% in the course and wound up with an A).

    3. Pick data sets early. Choose binary classification data sets.Don’t use messy data unless you’re really looking for a challenge.

    Overall, I think this course and AI are great to take to understand the basics from theory, implementation, and application. While I enjoyed the AI course more (and felt like I learned more in that course) this course helps you tie it all together and understand the big picture of data science problems. On top of that, Isbell is a great instructor and very helpful (in a sarcastic way) and the videos are a joy to watch.


    Semester:

    I think the course was one of the most informative in OMSCS (obviously more-so if concentrating in ML) and very well taught by Isbell and Littman. They supply a lot of detail in the lectures and supplement that with many external readings (generally optional, but are very beneficial to understanding the theories).

    The course is pretty tough up front and mellows out a bit towards the end. Projects require minimal code (theoretically zero depending how you approach it) and are focused more on the write-ups and understanding of the concepts.

    Be prepared to spend a lot of time on projects (especially on the first one). Once you get the feedback from that one, you will understand how to approach the rest.

    Midterm and Final were quite challenging with mean grades in the 30s and 40s respectively. In the end it’s hard to assess how you are doing in the course, but the “curve” is quite generous and Isbell/Littman make it very clear if you should stay in the course or not. As long as you are understanding the material and can portray that, I’d say a B is very doable; even if your grades do not seem that way.


    Semester:

    Video lectures: There are much better lectures on YouTube - Andrew NG for ML and Silver for RL. The lectures are superficial and pander to math phobia of students. Don’t expect any deep insights from lectures. Instructor says this is by design as the course is a survey course. However, I have taken several survey courses before (this is my second graduate degree) and none were this shallow. The bigger problem, however, is that these video lectures were recorded in 2014 and have not been revised since then to incorporate any feedback from students. The professor thinks everything is just perfect.

    The Professor: He is an egomaniac who thinks he has optimized everything and there is nothing left for him to improve. He derives particular pleasure by putting down his students - your questions will usually draw some sarcastic putdown. His interaction with students on Piazza and Slack is mostly snark. Some students love it but several just go quiet and don’t ask questions. To make it worse, his TAs have started emulating his snarky style, which is definitely above their pay-grade.

    Assignments: I like the open ended nature of assignments but in some cases the volume of asks was repetitive and didn’t make any sense. As with the videos, these assignments have not been revised for years and any student feedback is sarcastically dismissed. To those who saying that these 12-page reports are like real-life research reports, my only question is if they have ever seen one? I mean they are OK as a learning exercise but to equate them to research papers is a bit of a hyperbole. And so is any claim of how this course has validated people’s life choices, made ML their new love, and similar bs.

    Unless you are gifted, plan on putting in at least 30-40 hours of work per week to ensure an A.

    Exams: Midterm (mean 49) is designed to fail students, but the grading is very liberal - people get points for putting black on white. If this was not true, the class mean would be probably 20 points lower. Final (mean 51) is more like a traditional exam and fair, but grading is tougher. You don’t get points for writing any bs. Exams are closed book everything and you are not even allowed to have a pen and scratch paper - a ridiculous requirement as some people use scratch paper not for doing calculations but to formulate their thoughts.

    Grading: Grading is fair on the whole but some graders are much harder than others. It is easy to get 80 - 90. But to get above 90 and how many points you lose going from 90 to 100 is a crap shoot depending on the grader.

    In summary - while the course may deliver on its promise to provide you with a survey of ML, there are better resources and better instructors out there to achieve the same goal. The only value add in this course is assignments. The professor has structured testing of learning outcomes to unnecessarily have a high cognitive overhead - you will never get time to reflect on what you have learned and it would be race from one deliverable to the next.


    Semester:

    Semester: Fall 2018 (No such option available yet)

    I took 7641 because it is mandatory for specialization in Machine Learning track. Have no relevant knowledge before. Here are my thoughts:

    1) There are some wonderful machine learning courses online you can take for free. I highly recommend you to take one beforehand. Otherwise you need to spend more time than average to search useful resources when working on those projects.

    2) You may or may not like professors’ humor in the lectures but there are a LOT conversations about both professors made fun of each other. It is somehow distracting/annoying.

    3) Professor has no patience/respect to your questions on piazza. Students/TAs sometimes are more than willing to help.

    4) All four assignments are graded by analysis reports only. Coding files are not graded, and you are encouraged to “steal” code as mentioned by professor.


    Semester:

    Background: Developer in big data, but not ML per se. With MS on a different CS/EE track. Took ML alone Fall 2018.

    OMS exp: Took DVA, AI, ML4T

    heard about the difficulty of this course so I took some introductory courses e.g. DVA and ML4T before trying this. Overall an OK course, not as great as I expected, but not too bad either. Assignment format is writing report with ~10 pages, which is less time consuming than coding. I usually spend an entire weekend to finish each report after finishing video watch and paper/book reading. For AI course, I needed an entire week to finish each coding project.

    Pros:

    1. Provided an umbrella-like coverage on various ML topics: supervised, unsupervised, reinforcement learning and game theory.
    2. 4 reports/assignments help facilitate deeper understanding on different ML models and performances.
    3. Some very interesting topics that you can get deeper understanding here: randomized optimization, game theory, mdp.

    Cons:

    1. No coding at all. This is personal, as a developer, I’d prefer to write some code to understand how things work. This course is designed more for researchers I guess, that you need to worry more about metrics, performance measures, and model comparisons etc.
    2. Exams are hard, but curve are generous and there are extra points for each of the 2 exams too. Midterm gives very little time to complete so you need to fly though. Final is better but you still don’t have time to re-check your answers.
    3. some exam questions are asking you to recite concepts/definition instead of checking your understanding. so you either know it or not.
    4. Report feedback is not that helpful. there’s no clear cubic defined in terms of points deduction. Seems random and it’s very normal that you see comments like “you need to include xxx in your report”, but it was never stated anywhere that you should.
    5. Discourage of re-grading, despite of seemingly-random points deduction/assignment.

    Tips: get familiar with some ML library e.g. sklearn, this will save you a lot of time on writing report than if you learn from scratch.

    Overall a good course, but don’t expect to get too much from it if you’re already familiar with most of ML field or if you just wanted to get your hands dirty writing code. Stay above average in most of the exams/assignments will almost guarantee your an A, exams are taking 50% of the final grade so need to pay more attention to.


    Semester:

    Not much to add here that hasn’t been said already. I like the professors in the lectures but Dr. Isbell mostly does not participate in the course other than troll-type responses on the message board. The TAs hold weekly office hours, so if you have any questions don’t bother with Piazza, try Slack or the office hours.

    It’s a hard class but a high percentage gets A’s. There is no set grade cutoff. The professor said he is more likely to award A’s to students close to the cutoff who show upward trending grades over the semester so keep at it.


    Semester:

    This is really a good class and the open ended nature of assignments allows plenty of room to research and analyze different ML techniques. If someone expects that every thing expected in assignment report to be mentioned somewhere, they are in wrong class. ML is a subject which cannot be learned in 3-4 months completely but this class gives a good flavor for key techniques. I highly recommend this class and some preprep like Andrew Ng’s Coursera course may help in some assignments. Recommended book seems to old and needs update.

    Exams need good preparation and are very good to test things learned.


    Semester:

    I took this course in fall 2018 and found it interesting. But I feel this course need to upgrade the course content. No doubt Prof Isabel is covering the entire content but its overwhelming and for me watching the vedio’s wasn’t that helpful until I look for other Vedio series mostly Andrew Ng’s one or read some blog. I feel lectures are more general, rather giving detail about the topic will just brief you. If anyone taking this course I would not recommend to rely on the lectures.

    TA are helpful, they try to answer the question but somehow I feel even they are not very confident while answering the questions. For me slack and piazza worked very well.

    From assignment point of view there are total 4 of them. For each of them you have to write min 10 pages covering your analysis along with graphs. That said one can copy entire code from the internet but need to tweak it to generate some nice graphs. I will recommend to cover whatever information you gather about the topic for which you are writing about. Sometime I don’t feel TA are even reading the entire report as per the feedback they have commented on some point which was already there in the report. So its better to write about everything rather than shooting an arrow in the dark.

    Exam: there will be two closed book exam out of which mid term will be cumalative. Exams are really tough so one need to prepare really well for them and on top of that those are subjective. These are really good quality exam so be prepared before taking them.

    Grades: One can’t figure out what grade are you gonna end up with. This class has big curve but if you are submitting all assignment and exam on time than there are very good chances of getting B.

    This class require lot of hours and commitment.


    Semester:

    Assignments are deciding factor between A and B. Its a good survey course on ML. The assignments are time-consuming and interesting. Prof Isbell and Prof Litmann did a great job in teaching and the lectures are funny. Start early on Assignments and they needed a good amount of time to run. The instructor doesn’t care if we steal the code but I would suggest writing your own and it will be a good learning experience.


    Semester:

    This course is hard for all the wrong reason. 1) The lectures are a banter between two professors. It is difficult to follow and makes the lecture unnecessarily long. 2) The professor gives no credit for coding you need to do to complete the projects. This leads to a lot of confusion. Instead of professionally dealing with the confusion, the professor is very adversarial and humiliating. 3) I also don’t understand why the coding required for the projects is not provided upfront. That way students can concentrate on the analysis which is the goal of the projects. That also takes away all the confusion which results. 4) I personally don’t think the TAs are a problem. However they seem to take the cue from the professor and behave similarly. Some of the students also become very aggressive on Piazza and there is no one stopping them. 5) Given the number of students, grading is slow. There is no well defined rubric and no clear way to challenge your grading.

    Overall very bad experience. Coming from ML4T, this was hell and again all for the wrong reasons. I regret going for the Machine Learning specialization. I will never do another course where Dr. Isbell is involved.


    Semester:

    ML is the kind of course that you get what you put into it. I have been doing data science work for a couple of years, I will say the materials provide a roadmap of what’s out there, you will have to take the effort to read more and learn beyond what’s taught. The course builds up our confidence to go on and explore the materials on a deeper level on our own.

    The assignments are interesting as you get to design your own scope with your own datasets though I agree that the marking rubrics are unclear at times. The projects are not meant as some Kaggle / deep learning research / ML production code. It is about writing clear reports on your hypothesis, a clear understanding of the theories, limitations, assumptions and possible extensions for future work


    Semester:

    Not as challenging as everyone makes it out to be. The course does require time because each of the four projects requires you to write a 10+ page report. The key to succeeding in those projects (and, by extension) the course is to not write the code from scratch yourself and to instead put almost all of your time and energy into the writing. Fork resources you can find on GitHub for the code and look to examples of reports from the class that people have written in previous semesters to get a feel for what kinds of things to include in your report.

    Office hours were useless and piazza interactions were about the same. Having said that, the course videos are everything they’re made out to be. Extremely useful and I expect to use them as a reference in the future.

    Tests require some effort to study for but are entirely manageable. I recommend re-watching the videos at 2x, making sure you’ve read through the relevant chapters of the Mitchell textbook (which is a great book), and doing the practice problem set.


    Semester:

    I took this course for Fall 2018. This was my first class for OMSCS. I had some experience with ML with Andrew Ng’s Coursera course as well as some ML basics from Udacity’s Self Driving Car Nanodegree. The lessons are great as they build intuition about concepts in ML. The concepts taught are little old, however the lessons are great as it teaches the intuition behind each concept. Also the format of lessons is unique are in such a way that one of the lecturer acts as a student asking questions when the other lecturer answers his questions. The assignments are not easy as it needs a lot of analysis. Work load during Midterms can get really crazy. The exams are tough and would need a thorough understanding of the concepts. It would have been helpful if there was an introduction to Deep Learning too, but that would mean increasing the workload significantly. Overall a great course if you are willing to put in the effort.


    Semester:

    Awesome course and great to interact with the professor, even if the interaction mostly consisted of trolling. I guess there’s really no time for a professor to dole out actual detailed advice on a MOOC - once you start, you would never be able to stop. It would be good if you could receive more timely, detailed, and consistent feedback on assignments, but I think delivering on all three fronts simultaneously would add to the list of impossibility theorems - there’s no free lunch, as professor likes to say. Homework and exams are well designed to make you think about and apply what you have learned; good grades are hard earned. But … lack of transparency in the grading process leaves many wondering how to improve.

    Hard to say how many hours I averaged, the two weeks leading up to assignment due dates were possibly 50-60 hour weeks, and the couple of weeks I took as relative down time only made the following weeks worse.

    Despite any flaws this is engaging and a must-take course if you’re at all interested in the data science / computational analytics, both for the criticality of the material and the quality of the learning.

    Don’t spend so much time tinkering with data that you don’t leave enough time to write a good report.


    Semester:

    This class achieves what it sets out to do: give you a foundation of core ML topics that you can then use to build on or explore deeper into topics of your interest. Overall, I found the lectures to be fairly interesting (sometimes the pacing was a bit slow though). However, I was not a huge fan of the 4 papers that make up over half the grade but I admit this is most likely cause I prefer to code over write papers. The tests were exceptionally challenging but fair, they were more focused on reasoning than just reciting definitions.

    This was definitely a class I hated while taking it but upon reflection I realized I learned quite a bit… Neat.


    Semester:

    I signed up for the course with prior knowledge in ML (lots of MOOCs and project experience) - overall I did not learn anything “new” apart from the randomized optimization part which I’ve never read about.

    Most of the lectures are very superficial IMHO and the prof just says you have to go read the material to get a better understanding… and there are far better lectures on ML topics on YT than the ones you have in this course. For the RL part tho, Littman was excellent. It’s hard to find decent lectures on RL (apart from the ones by Silver) and the ones by Littman are probably the best for intro to RL.

    The projects are where the majority of the learning happens. You are given a purposefully vague description of what you are supposed to do and write for the report - yes, you can rip code off the internet as all of the grading is done based on your report. These are also useful as part of a portfolio you are building if you want to be in a ML field eventually. The projects are not too hard to do. Once you setup a pipeline for experiences you can pretty much use the same pipeline for the almost all of the projects.

    There are 2 exams - the Midterm is the difficult of the 2. IMHO the tests did nothing to reinforce/test the knowledge I gained from doing the course. I liked RL’s final exam a bit better.

    This course is going to take alot of time if you are not used to quickly doing a lot of experiments and are new to the ML subject. But you do have 1 month for each of the 4 projects and if you plan properly, you can do well without any of the last minute panicking which most students do.

    Overall, it’s a decent course - I expected a bit more depth and bit more time spent on each algo - trying out how it works, internally and getting to know the basics inside out. Nevertheless, this course is a good intro to ML - don’t expect to learn a lot/new stuff if you have already taken MOOCs and/or have prior experience in this field.


    Semester:

    Fun videos cover most fundamentals of machine learning. However, it’s not enough to laugh through all the videos and then take the exam, which is probably tougher than you would imagine. My recommendation is to dig deep into the principles discussed, think them through both mathematically and intuitively. When both matches, you truly knows what’s happening. Classic four projects and you are encourage to copy codes. But all matters is that you have to write your own meaningful analysis based on the experiments.


    Semester:

    This was a very challenging course with a heavy time commitment. I took it as my first course, but would recommend one of the easier classes to start with.

    The class videos are excellent. The assignments / papers are the time consuming challenging parts of the class.


    Semester:

    I took RL before ML so this review reflects that.

    I enjoyed this course. I liked RL a bit more, but that is more due to taste than material per se. Same instructors (Isbell and Littman) who are great. They always keep the material engaging while at the same time you learn a lot. Isbell is no-nonsense in Piazza which I love. It is a big class but it is run very well by him and the TAs.

    4 projects with a midterm and a final. You can steal as much code as you want as long as you source it. The main idea is your write-ups. I stole very liberally but still learned a lot and did well. I think the TA you get assigned has a little bit of randomness to your grades but even when I did not do well the feedback was useful. The exams were challenging but fair. Highly recommend the course just be willing to put in the work and you will be rewarded!

    The last 1/4 of the class was relatively easy as it was a return to RL but it was nice for me to get a little break at the end and front load instead. Exams are at a specific time but you can (and probably should) work ahead on all the projects.


    Semester:

    I actually took this in Fall 2018 but that was not an option.

    This is the best of the 8 courses I have taken so far in OMSA/OMSCS. A lot of courses (inside and outside GT) will teach you various ML algorithms. This course teaches algorithms but even more importantly gives you a conceptual framework for how the various facets of machine learning fit together (e.g. how is a neural net similar/different to a random forest or linear regression; how does unsupervised learning fit in; how do both relate to reinforcement learning).

    This course requires a lot of time and is mostly challenging due to the volume of material, more than the nature of the material itself. The instructors strike a really good balance between rigor and practical intuition (as does the required Mitchell text).

    The pacing of homework is tough, and somehow the mid-term needs to be worked in the middle as well. If you are new to ML, I recommend watching Andrew Ng’s ML course on Coursera and reading the first half of Raschka’s Python Machine Learning book before you start. You will have a big head start that will smooth the ride out a bit.


    Semester:

    TL;DR - Super time consuming; requires a lot of information synthesization; Lectures are fantastic but the professor is a bit of a jerk on Piazza (TAs are good though).

    All the course material (except exams) is released at the start of the semester. I highly, highly recommend getting ahead on the video material because the assignments are so time consuming. Video lectures are fantastic and informative, and the supplementary material is interesting, but definitely not required to do decently in the course.

    Assignments are practically academic papers, and are usually ~10 pages in length. They are very time consuming - they require programming (although the prof actively encourages stealing code from the internet), creating analytic charts, and then interpreting your results and comparing and contrasting different algorithms.

    Exams consist of 15-20 “open response” questions (a subset is T/F + justification). It tests your ability to synthesize information from the course, rather than your ability to program. You get 90 min for the midterm, 3 hours for the final (even though they’re about the same number of questions).

    The TAs had helpful office hours, especially when it comes to what they’re expecting to see in the assignments. Getting answers in Piazza is a little bit of a crapshoot; there’s so many students and posts. I have to say by far the most disappointing part of the class was that the professor spent a significant amount of time on Piazza, but 95% of his responses were sarcastic, making fun of the student, and decidedly unhelpful (a la “you know the answer to that”, “look at the syllabus”, etc.). The TAs actually bothered to answer questions, though they didn’t get around to answering everything (unless it was submitted to the office hours question set).

    There is a generous curve, most students end up with an A or B, despite exam averages around 55% (assignment averages were higher, but still not high).


    Semester:

    Out of all the OMSCS classes, this felt the most like a traditional, in-person class, which also means that this was my least favorite class in the OMSCS program. It was nowhere near as difficult as people are making out to be due to the generous curve, which was a plus. However, I feel I learned very little for the amount of effort I put in. While the lectures had a friendly, fun vibe, I learned very little from them. There are much better resources available for free (for example, YouTube) that I had to use in order to gain an understanding of the material. I just think that since I’m paying to take this course, the lectures should be top-notch and not surpassed by free YouTube videos, which do a much better job at explaining the concepts.

    The homework assignments did little to increase my understanding of the topics, and the comments from the TAs were not very helpful, for the most part.

    In studying for the tests, I was having flashbacks to my undergrad days, wherein I’d cram in order to regurgitate the material on the test, only to forget it a few days later. Being that the OMSCS program is supposed to be the cutting edge in terms of educational content delivery, I think they could do a lot better. Why attempt to recreate the outdated and anachronistic in-person classroom experience when the medium allows for so much more (for example, making the course more interactive)?


    Semester:

    Marked this for Summer 2018 as Fall 2018 isn’t available.

    TLDR: It’s difficult and time consuming and this course is amazing and everyone in OMSA should take it.

    This is tough class and you should prepare to invest a significant of time and effort into it even if you are very comfortable with ML. This class is very good. The videos are well done and the textbooks and extra readings (and yes generally you actually do need to read them) are well chosen. The class is basically 4 homework assignments that are each 10 to 12 page papers and two exams. Even if you can quickly and efficiently generate the models needed, writing the analysis (the only part that is graded) take a while especially if you want a good grade. The exams are hard but fair. The videos combined with the readings do a good job of conveying difficult topics and I found the banter between the professors to be entertaining.

    The biggest issues I found with this class were on the administrative side. The TAs ask that you send them questions ahead of office hours but they don’t actually read any of the questions before office hours leading to a fair amount of “we’ll get back to you” some prep on their end could have made office hours more effective. The administration of the mid term was also a mess with people not being able to access the exam initially. Grading on everything is slow so be prepared wait and since everything is hand graded there is unevenness in the grading across graders.

    I came into this class knowing a little about ML and I found this class to be a lifestyle. The homeworks can basically take as much time as you have available to pour into them. I learned so much by doing them, but by the end of the semester I was just completely worn out. This class just never let up from a workload perspective. The nice thing is that almost everyone gets a B or better in the class so I never found the class all that stressful, just exhausting.


    Semester:

    This course serves as a great introduction into the theory and actual practice of machine learning. I came into this course having no experience with ML whatsoever and was able to succeed with the course format. The majority of the work centers around four assignments on different ML fields. Students are given 5 weeks for the first topic and assignment to help learn the format with 3 weeks given for the remaining assignments. Each assignment gives you the freedom to choose your own data or problems. Then the student can cite and use any implementation of the four assignments to produce the results. These assignments will make you go through the painful learning process of cleaning data, balancing data, setting up pipelines, visualizing data, and analyzing the results. All of these steps are a part of actually using these techniques in research and business. Students are evaluated completely on their ability to understand and explain the results in a 10 to 12 page report with no points for implementation. I spent from 30-50 hours on each assignment to go from learning the technique to completing the report.

    The four topics are supervised learning, randomized optimization, unsupervised learning, and Markov decision processes. The lectures are great at building the foundation of the approach, biases, strengths, and weaknesses of the different techniques. The midterm and final then evaluate the student’s ability to understand these traits of each approach to then decide which algorithm would be the most appropriate given a specific problem. Grading largely depends on being able to explain the “why” of your approach and implementation format and the “why” your learners performed the way they did. You will not receive points for simply using 12 pages to list the observations that you see on your graphs or tables, which also serves as a point of frustration for some students. Grades are significantly curved such that over 90% of students who do not drop receive a B or higher.

    All of the “I don’t care” rants on this review board refer to Dr. Isbell having to repeatedly tell students that he does not care about what language or software you use to implement the ML techniques. This class has a lot of flexibility which tends to frustrate those students who have the expectation that every little detail needs to be outlined as the definition of “ a great learning experience.” Dr. Isbell also loves sarcasm which some students cannot understand or do not like, which leads to a lot of the “unprofessional” comments on here.

    Overall, this course can teach you the practical and theoretical foundation for ML if you are willing to actually work for it.


    Semester:

    What a ride. The professor predicted at the beginning of the semester that we would look back on the semester with tears and eventually they would be tears of joy. He was right. As a survey course, we learned a little about a lot, but because of the intensity of the projects we also learned a lot about a little. I thought this course went perfectly with AI as many of the big ideas were similar and we investigated different parts of the similar ideas so it gave me a fuller picture.


    Semester:

    Background: Took this class by itself Fall18. First OMSCS class, with background in statistics/applied ML

    This course delivers what it promises, a whirlwind tour of machine learning topics. Very rewarding experience, I enjoyed it thoroughly. Like with most things, you get what you put in.

    I enjoyed the lectures, Littman and Isbell build up the theory empirically which is great to build intuition however not as efficient when rushing through the lectures at the last minute studying for an exam. My thoughts are to watch these lectures early, take notes and use the notes/lecture transcripts as the main focus of study for exams. Re-watch lectures to reinforce certain topics.

    Having some background knowledge in ML is very beneficial, use Andrew Ng’s Machine learning course on Coursera as complementary material.

    Start the assignments early! Don’t wait until the last week. On paper it seems like you have a lot of time per assignment, but understanding the API/code, running the experiments, understanding and explaining results takes time. I enjoyed the open ended assignments as it provided more room to explore.

    Due to the structure of the assignments, consistency in grading can be an issue in the MOOC format, (Isbell does have a generous curve to help alleviate this). That being said, I really liked the report format of the assignments, writing them helped solidify concepts.

    Some TA’s are very good and active on forums, others are lower energy but they do hold a group office hours every week and take questions. Do attend/watch these as they provide solid guidance for assignments.

    Do not stress too much about grades, put in the effort, do your due diligence and you will be fine. Its a tough course but looking back its been a lot of fun.


    Semester:

    This is a great course, rewarding. Recommended


    Semester:

    (Taking Fall 2018. Review might be updated after end of Semester)

    I am torn about this class but ultimately have to say that is not a good course and the Prof has been very overrated. First the good stuff:

    Pros:

    1) Some of the lectures are actually interesting and well presented with some theory and insights that I would not have gotten elsewhere (Note: only some. see below)

    2) Assignments do give you practical ML experience working on real datasets.

    3) You get good feedback on assignments

    Cons:

    1) Most lectures however are atrocious when you compare them to the other MOOCs. Andrew Ng set a high bar 5 years ago and if you took his MOOC you are walking out very little new knowledge that he didn’t already explain much better. ML Theory part in particular is presented in an awful way. Neural Networks? We get a crappy subpar 15 min explanation on them.

    2) The Professor is awful. Isbell is rude, antagonistic and arrogant to his students. He creepily prowls piazza and slack to not answer student questions but to drop bait and then insult students for asking innocent even if they are annoying questions. TA quality is lacking. Slack in particular should be off limits for a Prof to criticize his students.

    3) The material is outdated. The book we use is 20 years old.The entire last 10 years worth of developments are ignored in this course so you end up wasting time on really old and less useful stuff like KNN or Decision Tree or K means which are not as important anymore. Tree and Instance based learning in particular has fallen out of favor and is seen by almost everyone in the ML community as a complete dead end yet we spend so much of the course talking about Decision Trees and stuff like KNN. Important and still very relevant topics like logistic regression and regularization is not even discussed in this course. There is also zero mention of deep learning here.

    4) Professor is sloppy and lazy and it shows in his assignments. They are poorly worded full of ambiguities and required stuff is not mentioned in there. Only casually in office hours. If students ask clarifying questions they are insulted. I personally stopped asking questions cause the professor was this rude.

    5) The assignments themselves are questionable in what they are teaching you. Lots of time spent hyperparameter tweaking. No real mathematucal rigor to any of it. Just throw some stuff see if it works blah and write a report with some charts. Not hard but very tedious and distracting from what we should be learning. You also have to get your own dataset so most people end with bad ill suited datasets for the problems and have no choice but to keep using them ending up with poor results and sub par papers to write

    6) Exams are dumb. Having taken AI the ML exams are disappointing. They make you write essay questions that encourage rote memorization in an ML exam. No math. Very little theory. Just cram as much and then hope you can remember. Only two Problem sets given to test your understanding but they’re completley garbage because the “answers” are links to chapters in the book. No real problem solving and testing which is essential for ML.


    Semester:

    Taking in Fall 2018. The lectures are frustratingly vague, improvised, and long-winded. Isbell is antagonistic towards students on the forums, the assignments and evaluation criterion are poorly understood by students, and the TAs in office hours aren’t at all useful. If you’ve any exposure to ML in the past you’ll be grinding your teeth through these lectures.


    Semester:

    Wonderful class with excellent lectures and very effective projects. I learned a lot! The projects are difficult and take a lot of time so be prepared for that. There is also a lot of reading from a book you must buy.


    Semester:

    I actually took this class Fall 2018, it just wasn’t available in the semester drop down.

    This is absolutely the worst class I have ever taken in my life, and I’m not even done with it yet, though I may just withdraw soon. The old adage of research professors not caring about their classes is fully exemplified in this class. The professors main interaction with the students is to tell them that he doesn’t care at all, about what they use for projects or how they do them. His flippancy carries over to the TAs, and thus piazza is a jumbled, awful mess.

    The assigments are also awful. Instead of giving you anything to really go off, the class asks you to find some data set to use, and then re-use for all further assignments. If you, like me, don’t really have any strong opinions or desire to explore any specific data, then this sucks! You wind up picking some random data sets, and then having to manufacture some problems for them, and then your lack of real interest in them shows through in the papers. In my opinion, no data set is really going to be that interesting, and if it is, then it probably can’t be explored in the few weeks you have to do the assignment while also presumably working full-time.

    Perhaps this whole thing is being exacerbated also by the fact that I just got done taking Human-Computer Interaction with Dr. David Joyner, whose enthusiasm for teaching shows in every part of his course. He is a true professor, interested in interacting with and working with his students to ensure that they have a great learning experience. It could also be because I took Machine Learning for Trading two semesters ago with Dr. Balch (who is also a great professor), and that class had amazing assignments that were well thought out and provided you with a solid starting point for exploration and learning. Those assignments also came with expected results and test cases to check your work!

    I think this class could be fixed if they would give you the datasets and the code to run them. If all they really care about is the conclusions you draw from the results of running the code, then I think that would be the easiest thing to do. It would give them a stronger basis on which to grade things, because the data sets and results would be known, and it would free the students to really focus on the analysis, which is all that the class says that it wants. Even with that, they could still give you places to tweak the knobs if they really wanted to. There just is a big disconnect between what the professor says he wants and what the students actually need to do for the assignments.

    Of course, to fix it, the professors would have to care about it, and as mentioned above, they don’t.

    If you are interested in the topic, the videos are alright, and the book recommended, Machine Learning by Tom M. Mitchell, is quite good. However, the assignments really detract from the course overall, and so I would strongly recommend against taking it if you can help it. To the point where I will probably switch my specialization so I don’t have to take it.


    Semester:

    First let me start by stating that this is a hard course, no doubt. But the course is made harder by a disastrous lecture sequence. What the hell were they thinking when they made the insanely long and meaningless lecture videos. Watching the lectures were a pain and a torture. Too many pointless trash talking that throws one off. They should really learn from Andrew ng’s course in coursera and how to make the videos relevant and to the point. Heck, the videos of ML4T is so good and the explanations were so concise and clear. On the contrary, in ML there were too many hand waving, lame jokes, out of context talks and over the air explanation that made no sense or too difficult to comprehend. If you solely relied on lectures for this course, you are destined to not only fail but do worse than not watching anything at all. Its that bad. Prof Isbell is a smart guy but arrogant. Don’t dare to ask him any obvious questions or he will ruin your credit history (He joked this in one of his Piazza posts). His answers are always standard, I DON’T CARE. The ML office hours are absolutely a waste of time. The TAs handling the OH are students who have no clue what they are talking. At times they seem lost in explaining even the basic stuff. And the projects description is the biggest joke of all. No clear instructions at all. All it says is, steal the code, I don’t care. But write a report. Really? Even the lamest of a description would be better than that. Piazza is a total chaos with questions from confused students and equally confusing explanation. I am sorry to rant but this is not a very well run course. If there is anything wrong with OMSCS, it would be the way this course is run. A perfect example of a poorly designed and mismanaged course. Unless they change the way it is run, this course will continue to see record churn. I hope something is done to fix this.

    P.S. I am taking this course in the fall of 2018 and this is how I felt half way through the course.


    Semester:

    Bottom line: Very challenging course, unprofessional TAs, unclear expectations on assignments.

    I took this course in the Fall of 2018. I was really excited to take this course and based on the reviews from this site I knew it was going to be challenging. I had no data science or ML experience before but I have a BS in Computer science. However, I had to drop the course due to some life situations that didn’t allow my full attention to the course.

    Though I didn’t want to drop the course, I am glad i did because it was out of my frame of knowledge and the learning environment was not enjoyable.

    This was the sixth course I took in the OMSCS curriculum; Networks, info sec, Ed Tech, HCI, Soft Dev. All of those courses were challenging in their own way but not impossible to complete for a student working full time to complete.

    CS7641 was different compared to the courses i have taken in the following ways. 1> Expects the student to have a solid/advanced understanding of ML topics.

    2> Does not walk the student slowly into the curriculum. The first project gets you right into the material and there is extremely minimal guidance on what to do for the first project.

    3> The lectures are as clear but fall short of explaining the topics succinctly. The videos are lively but the extended amount of banter between the two professors draws out the videos and regularly I could not follow their train of thought.

    4> The TAs are not the best I’ve experienced. The TAs interaction with the students is simply unprofessional. Interactions between TAs and students on Piazza should be professional and there is no room for snide remarks when a student is asking a simple question.

    This course is for you if you if you are experienced with ML topics and have worked with popular ML packages before. If you really want to take this course without any prior ML knowledge I suggest you watch all the videos for the course on eDX or Udacity before taking the course and read the book for the class cover to cover. This will save you time to struggle through the projects.

    If you want an example of a professional and superbly taught OMSCS course take Educational Technology or HCI (anything taught by Dr. Joyner).


    Semester:

    Either the professors played too dumb, or they didn’t prepare at all before they record the videos, either way the class turned out to be a shitshow. Spent too much time on side jokes which are not funny(it’s not that I didn’t get the jokes, it’s just they were trying too hard to be funny) and glossed over the hardcore materials. And maybe it’s because of the nature of the form of dialogue, or it’s purely lack of preparation, their languages are broken and not well organized that made it even harder to understand for someone whose mother tongue is not English. Watching the videos is a pain, I always had to search on Youtube for other tutorials on the same topic to understand what the professors were really talking about. All in all, this class is a disaster, it needs some serious update.


    Semester:

    This is a fully project based course. The downside was that if you were not registered in the slack channel (which is not official) you could miss some important points as some people asked questions and got answers there that were never replicated in Piazza and clarified some important points for the projects. The projects were not clearly defined on what it was that they were looking for in them.


    Semester:

    This is a very hardcore course. Keep in mind you will work hard. I’ve learned a ton of content and loved the course, but it was way tougher than I expected. Do not take this course along with others (I’ve done that and regret) unless you have little commitments (family/job).

    The video lectures are fun to watch and very well designed.

    There are 4 assignments that involve little programming but a big and deep analysis/writing. The professor really care about the quality of the analysis.

    There are 2 proctored exams. They are pretty big and conceptual.

    Isbell and his TAs are very active and helpful. He is also very fun (and intimidating hehe).


    Semester:

    Someone else stated the main thing you need to know perfectly before me, “the grading will be brutal but the curve will be generous.” My highest homework assignment was a 80% and my tests were both about 65% and I received an A. And to think I was close to withdrawing before I saw that quote.

    The format of assignments is great: very open ended, you use the algorithms recommended, pulled from any library you can find and write a paper based on your findings. I say the format is great, because for practical projects in the future, I’m not going to be writing SVMs or even Neural Nets, I’m going to be downloading the latest and greatest algorithms PHDs have released for me and applying them to my data sets. You also get to choose your own data sets! You can work on two applications that really interest you while completing your assignments! You will of course be graded brutally and told you made terrible choices in your analysis, choice of data sets and writing, but ignoring that fact, the assignments are really fun and instructive.

    Dr. Isbell and Dr. Brown are a very entertaining duo and the lectures are very fun, though they are also thick with far more linear algebra than I was able, or will probably ever need, to comprehend. Dr. Isbell was the instructor while I took this course, and he was as entertaining on Piazza as would be expected from his lectures.

    This course was my first encounter with proctor track, which is a program I have learned to loathe: it decides to work perfectly for the practice tests, but as soon as you take a real test, it suddenly decides that your video drivers are insufficient and: surprise! Find a mirror far larger than anyone would have on hand to do a room scan. New suprise: * crash *! As far as the privacy / ethics concern, I think it’s about as intrusive as a proctored test would be, and personally have no objections to it there.

    Start projects early, there were only 3 or 4 of them, but each will take 30+ hours if you’re not familiar with the libraries and algorithms used; even if you were, you can not finish an entire project in the last weekend before the due date. Also, attempt to take the tests early, you may need hours of time working with proctor track tech support to get it running,.


    Semester:

    I took around 5 different machine learning related classes from my previous degree and coursera before taking this class. I till learned tons of new things in this class, especially the math part behind machine learning. Both professors are super smart. Such a joy to listen to their lectures.


    Semester:

    This course needs hard work and intellectual dedication to make the most of it. unlike other courses office hours needed to be attended to understand the ask in the open ended assignments which are time consuming to say the least and on the whole the course has rigorous schedule and no breaks to breathe. you are encouraged to use online code but even then, there is lot of analysis and write up work to get done. upfront reading or a preliminary course in ML will help out those with no background like me (i did andrew ng course on youtube and recommend it). Its tough but very rewarding and my learning from this course is far more rated than any others i took.


    Semester:

    I liked the course, but I had some issues with it. One, there seems to be little communication between instructors and students. Almost half of Piazza questions are unanswered. Furthermore, there is no set rubric for assignments. Attend office hours to really understand what is expected.


    Semester:

    This is the stalwart of the Curly/Smoov two-fer in the ML specialization. Many people are initially turned off by the open-ended nature of the class, but that’s really the genius of it - to encourage intellectual exploration that would otherwise not happen if a clear and concise rubric was given to be followed.

    I had completed ML4T and RL previously, and those really helped with the course - particularly in understanding the grading style of the projects and with the RL parts of the course. Though having done only ML4T would have been more than sufficient for a successful experience in ML.

    Start on the projects on the day that they are assigned, and attending office hours, are key to succeeding in the projects. The exams are difficult and require a depth and breadth of understanding the material - there’s no getting cute around that.

    Overall, an excellent class that is well designed and the student definitely gets as much as he puts into the class.


    Semester:

    Solid, difficult but not unsurmountable class that covers a large chunk of machine learning. Sadly, although neural nets are quickly covered, this class hasn’t really been updated to the new deep learning age, but it will still give you strong basics on ML.

    The professor encourages students to “steal” code, which is kind of interesting and I think makes this class much closer to actual ML practice in your professional life (where you are very unlikely to implement an ML algorithm from scratch, but need to understand how they work).


    Semester:

    This was my final class of the program and I am now officially finished with grad school (yay!) and this is without a doubt the most time consuming/challenging class I took in the whole program. To compare it against even the 2nd most challenging class is a huge difference and to be honest this is probably the difficulty level all classes should be for this program.

    If you are taking this class you really need to mentally prepare yourself for the time consuming workload that lays ahead of you. The class gives you no time to breathe. Even from day one you need to watch all of the lectures and get started on the first assignment which is due in 3 weeks. After that you have 3 weeks until the next one is due, then you have 2 weeks until the midterm. This pattern repeats all the way to the end. You will never have a week off.

    The assignments are not difficult to code, but very time consuming. This is because the lectures go over the theory and math behind the algorithms and its up to you to figure out how to actually code them (using libraries.) One positive is that you can actually steal code. Yes, you heard that right. You can Google someone else’s code and use it if you want. I know many people just used the code some previous students created for the class and this is perfectly fine. I actually coded all 4 assignments myself and learned a lot.

    The biggest problem with this class as others on here have mentioned is you have no idea how well you are doing or if you are even going to pass the class. Until final grades came out I thought I was going to get a C and was prepared to take the class over again. I did well on all four assignments (82, 79, 92, 90) which were all above the class mean, but completely bombed the midterm and final (34, 49) and somehow managed to get an A with the huge curve.

    If you are going to take this class, get as much knowledge about ML as you can by pre-watching the class lectures on Udacity, or take one of the many ML courses such as the Andrew NG ML class from Stanford.

    Overall this class was great. It was a ton of work but I learned a lot and will be continuing to study ML and will possibly be thinking about a career change to go into this field.


    Semester:

    This was a great survey course that tends towards the theory side without heavy math (but there is a lot of math, so define ‘heavy’ as being relative), but it took a whole lot of work. It’s very easy to spend 20-30 hours on each project assignment. Study hard for each exam, and definitely reach Mitchell’s textbook in addition to the supplemental material (you can skim papers, but make sure you understand them). If you have pre-canned code to run, this can greatly reduce your assignment time. I found myself writing a lot of my own code, so perhaps I could have saved countless hours if I knew which experiment to run beforehand.

    ML is a very fair course, and they grade harshly per assignment and exam but do curve up. If you do better than the mean, you’ll probably get an A. I screwed up the first assignment because I underestimated the time it took and sent it half complete (no extensions). I did at mean or better afterwards on everything, and it all worked out. They will be reasonable if you do poorly on the first assignment, but demonstrate an upward trajectory afterward.

    I took ML and ML4T at the same time, which had some overlap, but I found myself spending every weekend alternating between the two classes. I’d recommend taking ML alone if you’re also working full time on a demanding job. I did get A’s in both, but I also lost nearly every weekend for 3+ months.


    Semester:

    Very hard course to complete due primarily to the effort (many hours running simulations and drafting reports) and the ambiguity in grading. Four assignments are open-ended research with hidden rubrics. Two exams are quite difficult, and the mid-term is intentionally oversized such that completing it in the 90 minute window is quite challenging.

    There’s a lot of great foundational content but it can get lost in the lectures, which tend toward abstract math and two smart guys proving how clever they are. You often feel like you’re overhearing a bar conversation you don’t quite understand, and wondering why everyone else is laughing.

    During the semester Professor Isbell was active in Piazza, but did not offer much by way of clarifying content or projects. TAs were mostly radio silence. Significant delays in grading led to lots of stress and churn within the forums.

    If you specialty is not ML and you’re merely curious about the topic take either AI (as much rigor but significantly better run) or ML4T (softer introduction to the concepts). If you are in the ML specialization take AI & ML4T before this class, it will give you a leg up.


    Semester:

    The course is a broad survey of ML & is a nice introduction to the topic. It covers to a decent depth all the 3 learning techniques (Supervised, Unsupervised & Reinforcement Learning). The video lectures are very informal & at times highly entertaining. But one needs to be very attentive (& make good notes) since a lot of the questions from midterm & finals are based on the conversations between Prof. Isbell & Prof. Littman. The TA’s are engaged and hold regular office hours. Prof Isbell is very active on Piazza & show tremendous patience to the almost repetitive & very annoying questions (some of them seem to simply not use the search feature before posting questions - this can be really painful for a large class like ML). The 4 assignments are meant to let the students do a detailed analysis based on the application of learning techniques, tuning hyper parameters etc on different datasets (of our choosing) & provide right justifications for all our choices. The feedback can be at times very detailed & some times not so thorough(depends on individual grading TA). It can be subjective but most of the time based on well defined rubric. Your analysis can be as independent & informal but cover what’s expected. I managed to score pretty high on these (overall above 90%) with a couple of centuries. And this saved me some grace from what was nothing but disaster of a midterm… Prof. Isbell makes it very clear(repeatedly) that he cares the least when it comes to code for all the analysis & the only thing that matters is good analysis. You can re-use existing code (cite references). The exams are closed book, without any pen/paper etc and expects short concise answers. The idea is to test the understanding of the concepts on many of the topics covered in lectures. Overall a fantastic class & personally didn’t find it as hard as advertised in discussion forums.


    Semester:

    It is a tough but fun class. As others mentioned, this class covers a lot of ML topics and also provides a good depth, so be prepared to spend time watching/re-watching videos to understand the concepts, specially if this is your first ML class. For projects, you are expected to do research on your own but as long as you meet the rubric you’ll do fine. Exams on the other hand are very difficult. The grade is curved so most people end up with an A or at least a B.


    Semester:

    Strongly recommend this course, it’s a great overview of the topic. Be prepared to work your butt off. Not much to add beyond the other reviews. You can probably make this work as a first course (I did), but be sure to be ready for some theoretical presentations and do the work getting the abstract down to the concrete.


    Semester:

    This course was very challenging and time-consuming. The projects are fairly open-ended and require a lot of analysis. I found the lectures interesting and the tests fair. The professor is active on Piazza and the TA’s office hours were crucial to completing the projects. I would highly recommend this as a survey course in Machine Learning!


    Semester:

    Overall this is a pretty decent course. The material is interesting, but the lack of clarity makes this class a little more challenging than it needs to be. There is no set rubric for assignments, and the feedback varies based on the person grading your paper. You have to pay attention to office hours to fully understand what is needed in the assignments. The midterm is too long for the time given, but you know this going in. The Final is much more manageable in terms of time/question but is about the same as the midterm in terms of difficulty.


    Semester:

    **Overall: ** It’s a hard course even with a strong math background. I did not find the assignments to be very helpful (they sapped my enthusiasm), and the tests are hard. TAs were not very responsive in Piazza this semester (Spring 2018). This class is too laissez-faire (in my opinion) and fails to provide effective feedback on assignments.

    I had a fair amount of ML experience from previous learning (I had watched the Supervised Learning lectures a year earlier, and taken other AI classes in the past) coming into this course, but this course was still challenging.

    The lecture quality is pretty good; the professors Isbell and Littman are very knowledgable and their humorous banter in the videos is funny. I liked the conversational style they used in the videos - it’s a dialogue between the teacher (alternates between Charles and Michael) and the other plays an inquisitive student who asks questions.

    The assignments were super open-ended and I felt graded quite harshly given the lack of concrete direction. There seemed to be a hidden rubric used to grade submissions that was not shared with students in the assignment descriptions. I felt frustrated with the assignments because I felt like I wasn’t really learning much but simply twiddling hyperparameter knobs in order to generate plots for the report. Further, the feedback that I received from the TAs was usually weak and non-specific after they’d take off 30 points. I spent probably 30ish hours on average for the problem sets.

    I wish the course offered more structure (“Students have successfully used this GitHub repo for Assignment #1. Train the model, plot learning curves (accuracy vs. time and accuracy vs. iterations), do tasks X, Y, Z") rather than giving vague instructions ("pick some interesting problems and fiddle with the hyperparameters for algorithms A, B, and C. Plot some stuff and tell us your observations"). I'd also have appreciated a more specific rubric for what's expected on the assignments - I'd love to go on the intellectual journey, but please tell me the waypoints!

    The exams were hard but fair.

    I’m happy to have this course behind me. There were high points (lecture content is good), but the assignments were simply not helpful for my learning.


    Semester:

    As I studied the course longer, as I realized the two professors Charles and Micheal are so smart and good, I learned other ML courses from other universities, some of them are very hard to follow due to amount of math and equations, however, Charles and Micheal are very smart and experienced that they can extract the essence of this huge field and summarized into easily understood examples to guide you think and think. Study the course lectures and notes many times to understand otherwise the midterm and final are hard.


    Semester:

    This is a compulsory course for ML specialization and I loved it. The professors make the class very interesting. It strongly emphasizes on the analysis part of different algorithms rather the coding part. We are free to steal/use any code as we like for the projects. The workload is quite heavy, exams are ProctorTracked. Overall, a wonderful course.


    Semester:

    As mentioned by others, this is one of the hardest course and unless you are specializing in ML or has a deep passion for ML, this course is not recommended. The class was overall good in terms of learning through some of the concepts were superficial and hard to grasp the concepts. As Prof. mentions you will smile once the course is done and will have happy tears. Overall I liked the course and probably teaching style would have little better in terms of clarifying content.


    Semester:

    One of the best class on OMSCS that I’ve had. Something to keep in mind is that this class is a survey class. It goes over on a high level the various major topics pertaining to Machine Learning but if you want to dive in deep there are other classes like Reinforcement Learning itself. The projects are a great way to learn more about how things really work and I do highly recommend that you steal code for this class rather than writing it from scratch (yes this is allowed and encouraged for this class). It’ll save you a lot of time and gives you more time to play around and write your actual analysis (which is basically the entire score for your projects).

    The lectures are great for me at least, but I do know of a few people who did not like the banter between the two professors. The extra readings, while not necessary, I believe is a great supplement to the lectures. Do read them to expand your understanding but is not really needed for the tests. All in all, a great class!


    Semester:

    I agree that “applied ML” would be a better suiting title for this class. The Udacity videos are fun to watch and sufficient to introduce students into the topics discussed. My only concern about this class was the responsiveness of the prof or TAs on Piazza. I happened to get seriously ill at the start of the semester (almost 1 month of hospital treatment and reconvalescence). I approached the Office of the Dean of Students, they checked the supporting medical docs and forwarded my absence request to the prof. SImulataneouslY I made a private post on Piazza, asking for an extension (2 wks) of a P1 (a deadline had passed before). A TA asked me to fwd a message from the Office of the Dean of Students with a statement that after I do this, they would approve my extension. I did what I was asked for and nobody replied anymore. Tried to remind them, tried to escalate to the prof., no reply. I ended up withdrawing from the course (1st time in the OMSCS, after 7 courses passed with As).


    Semester:

    I don’t think this is a good class. I would like to learn more about machine learning, but didn’t learn much and don’t like the setup of this class. • You get minimal feedback on projects and not know what to do to get the good grade on project. Doesn’t understand what need to improve. • You won’t receive your tests back and won’t know what you missed. • Lectures are heavy math for me without adequate insight tying everything together, and not able to understand. I don’t like the lectures. • Due to the limited feedback, and can’t learn much without know what you do wrong.


    Semester:

    This course requires a lot of hard work if you aren’t very familiar with Machine Learning. The lectures are very well created and help understand the topics, they can be standalone but the additional readings help expand on the topics (although they can be extremely long, more than the lectures). The assignments are not so hard once you get a hang of what the TA’s are looking for in the grading.

    Assignment 1 and the Midterm are pretty brutal, but low grades are not the end of the world. For reference I had 50’s in both and got an A. Prof Isbell wants you to understand the topics, not regurgigate reports or pay too much attention to coding.

    Regarding coding, you can use whichever programming language you want, but there are some recommended languages for some assignments. Code is not graded, so if you focus on delivering high quality reports you’re set. Data visualization comes in very handy in all of the assignments to convey insights effectively in the least amount of time.


    Semester:

    Fighting for an A in this class is extremely stressful but I did earn one in the end. I had heard great things about learning from Dr. Isbell and I was not disappointed in the least. It was an honor to learn from him and Dr. Littman. These professors genuinely care about how well and deeply their students learn. If you take this course you will learn a lot and if you want good grades on the assignments, you will work very hard. Each of the 4 project assignments took me 35-40 hours. My advice is to start on every assignment early and truly learn from the feedback the TAs give you on them. The assignments are pretty open-ended and they want you to do more than the listed requirements but also do it concisely, so a lot of your time on the assignments will be editing and making sure you cut out fluff and use your words wisely. Also do all the problem sets they make available. You’ll want to get started on these early too so after discussing solutions on Piazza, you can fully understand the answers before the midterm and final exams. Also, don’t use this class to learn an obscure tool. Use the tool most of the class uses because the instructors don’t care about which tool you use and you won’t earn extra points for using something unusual or poorly documented. The benefit of using what most students use for each assignment is that you can spend less time implementing the work and more time writing your analysis which is almost all they care about. Tools more common among your fellow classmates will have more troubleshooting solutions on Piazza. This was my 5th course in the program and it was probably the hardest I’ve ever worked for an A in a class but now my brain is packed full of knowledge about Machine Learning and I look forward to taking Reinforcement Learning, especially because it’s taught by the same professors.


    Semester:

    This is a challenging course. The first few lectures on Supervised learning may be easy but the it gets tougher as the course progresses. Don’t make a mistake of taking it lightly after watching a few lectures. Try to watch the lectures early and review the reading materials. Assignments are key to this course. Start them very early. Spend at least a week in writing report. I made a mistake of focusing more on code instead of the reports and inferences. While writing reports, read the instructions, read the piazza posts and watch the office hours to know what type of graphs and inferences are needed. You may feel that you have done very bad in the course but you are more likely to get an A at the end.


    Semester:

    The class was overall very fun and programming is not too bad (even for a non-CS student). Projects are difficult and time consuming. Professor Isbell does not care about using other people’s codes as long as they are cited.. take advantage of this and take the extra time on your research and writeup. Both midterm and final exams are difficult. The midterm exam in particular is designed not to be finished so don’t worry if you didn’t do well. Professor Isbell really cares about “synthesising” the learned material. Make sure to review the lectures. I did above average on both exams and managed an A by reviewing the lectures two to three times (despite not reading any reading material). Also, do not procrastinate… class starts off slow, but quickly accelerates and reaches a work-load peak during assignment 2, midterm, and assignment 3. You should be fine as long as you put in the time. In summary, PUT IN THE TIME AND DO NOT GIVE UP.


    Semester:

    Jesus, Mary, and Joseph, this was one tough course and semester in general. First, I have to state that Dr. Isbell, and the TAs: Amir, Sasha, and Pushkar, were extremely helpful throughout this rough journey. This was a crazy semester for me, and I am sure for others as well, with the hurricanes that affected us: Irma and Maria. I actually had to complete one of the assignments while running on a portable gas-powered generator, because the electricity was out at my house due to hurricane Irma; where there’s a will there’s a way. With a wife, kids, full-time job, putting up hurricane shutters at my house and my parents, being without electricity for a few days, driving all over Miami to find gasoline and propane, and taking Machine Learning for Trading along with this course, this was one hectic semester. In the end, I miraculously earned an A in both courses. I must say that I learned a lot in this Machine Learning course, I came into it clueless about Machine Learning, and can say that I acquired a plethora of information in the end. Dr. Isbell and Dr. Littman cover Supervised Learning, Unsupervised Learning, and Reinforcement Learning throughout this course, at a somewhat deep level, which was great. Grading is harsh, but don’t let this discourage you, just give it all you’ve got and do not give up. Complete all assignments and the problem sets, and study hard for the midterm and final. Most importantly, follow this guide: http://omscs.wikidot.com/courses:cs7641


    Semester:

    This is definitely a survey course. Very broad, without a lot of time to cement knowledge.

    The good:

    • Exposure to a broad range of topics
    • jontay’s publicly available code significantly cut down on required time
    • Generous curve

    The bad:

    • Limited feedback on assignments. I wish TAs had an office hours after each assignment where they pointed out what things we could/should have learned, interesting things we might have seen, etc.
    • Lectures are too math heavy for me without adequate insight tying everything together. I’d like to see more professor driven synthesis of knowledge. The class is structured such that it’s on the student to figure it out (or not)
    • Depressing grades. I got something like a 60% which somehow translates to an A. ¯ _(ツ)_/¯
    • Due to the limited feedback, your experience depends heavily on what datasets you choose at the beginning. Of course you don’t know what datasets would be good until you’re done with the class…


    Semester:

    The class starts off slowly and about a month time for the first assignment. Even after reading all the reviews and professor’s push, delayed to start the assignment and the price was paid in the assignment marks. I finished running all the experiments but didn’t have time to write the analysis for which the assignment is graded. Write up is the key. Do not stress much on interesting data sets. Choose two data sets with different type of attributes, <30 in number and with <5000 instances. This will help in running the experiments faster and saving up time for analysis. Later I could score really well in rest of the assignments. Assignments constitute 50% of the grade. Midterm and final constitute rest 50% with equal proportion. Mid term was 1.5 hrs long and final was 3 hrs. Mid term is made purposefully lengthy. It had all T/F questions with 2 points each in the beginning for which a small explanation is required. Later there were 12-20 points questions. So time management is crucial for Midterm. Final had the similar pattern with double amount of time and it was fine. The exams do not require to memorize the proofs or complex equations but basic ones. I have used the following tools/libraries for assignments. 1. WEKA (Java IDE) 2. ABAGAIL (Java) 3. SCIKIT-LEARN (Python) 4. BURLAP (Java). It is better to start the assignment early and to get familiarized with the libraries. Its better to decide on the type of graphs to be produced and stick to them. I always got tempted to include more graphs but ended up not using them due to 10 pages space constraint. It is better to focus on important graphs and good analysis. Guidelines or sample analysis won’t be available. It is better to read some papers and follow the format. I could only go through the videos after a point but not the readings, still managed to get an A and felt able to synthesize the content is good enough. Overall, a great course for which we feel accomplished after completing.


    Semester:

    I have very mixed reviews on this course. I think this course should be renamed as “Applied Machine Learning”. To be honest, I really liked the instructors and their teaching style. In fact, that is the only reason why I liked this class. I used to keep listening to their lectures again and again until the concepts got deeply embedded in my brain. The instructors provide the students with a good overview of the theory and derivations both through lectures and piazza materials, but the students are not tested on those in any of the assignments. The midterms and finals were not that difficult, provided the students get accustomed to the structure of the questions beforehand. One way to do that is to solve all assignments of the past Machine Learning courses taught at CMU as well as the exercise problems from Tom Mitchell’s book that do not require any derivation or proofs. I did all my assignments in JAVA using Weka Library and BURLAP, although Python would have been a better option. Assignments were easy yet time-consuming. In most universities, Machine Learning courses offered by the CS department turn out to be a blend of theory, derivations, analysis and quality code execution, where most students are tested on those. Here students are graded ONLY on analysis. In fact, students are provided with the code or the software for all assignments. I did not enjoy the assignments, as I did not find those challenging enough. If the students are serious about understanding the lectures, then they need to ensure to have a basic grasp on Big O Analysis, Differential Calculus and Probability Theory before taking this course.


    Semester:

    I had zero ML experience, its been 14 years since I last thought about linear algebra, and I wasn’t comfortable with any of the ML libraries(like sci-kit) before this course. Its a good course, lot more theory than I liked, but it helps you learn. Assignments are basically experiments and documenting the same with no clear instructions on how to conduct those and what kind of experiments to run; I think the idea is to encourage students to explore and learn as much as possible, so that we get learn to decide what is important and what is not. Assignment grading seems unfair at times, and exams are very tough(At least for me). Advice from me; refresh your linear Algebra, and be comfortable with Python/Java so that you can work with ML libraries. At least be in “listen only” mode in piazza, office hours, slack channel to get hints on what experiments to run, what curves to draw in the report (I didn’t do it, and that was a mistake) You will learn a lot. Do not stress yourself with assignment and mid term grades. I found that individual grading may seem brutal, but the overall grading is pretty lenient. Just hang in there, do your best, and try to enjoy while you are at it. Getting a ‘B’ (or above) isn’t that difficult IMO.

    Professor Isbel is really really really good and very active in Piazza. They have an army of hardworking TA’s, and piazza is very active with discussions. Overall, a very good course.


    Semester:

    This class didn’t work for me. I didn’t like the setup. If I had more background it would have been good but for a beginner I didn’t get much from it. Your mileage may vary.

    My biggest issue is that you do an open ended assignment but never get anything that tells you what you should have seen. I didn’t know UL and I still don’t.


    Semester:

    There has been so much said already about the course that I don’t feel the need to go into details, but I’ll just say that this was my favorite course so far in my OMSCS journey. The material is vast, but the goal is to give you high level understanding of a broad set of tools. Specifically, the professors focus on what certain algorithms do, what specific algorithms are good and bad at, intuition behind how they work, and how they are similar and different from other algorithms. The focus is NOT on how to implement each individual algorithm or how to use specific ML tools and frameworks. I heard or read at some point (maybe even during a lecture?) that one of the goals of the class is to provide students the tools to become ML researchers. I think this course does a great job at that, while also giving students the opportunity to pick up specific tools as they desire.

    In my opinion, it helps to take DVA before this class if you are not coming from an ML background. Even if you don’t use the R language for the assignments in this course, that class can get you in the right mindset for what kinds of plots and plot-layouts to put into a report to make the best use of your limited space. Also, that course goes into some detail on logistic and linear regression. While those topics are not covered in detail in this course, that discussion is still a good primer for topics in this course, including things like brushing up on rusty linear algebra skills and learning to do write vectorized code.


    Semester:

    In short, I echo the comments of many reviews here that the content was excellent and the course is challenging.

    The longer version … There are three components I’ll comment on individually: lectures, exams, and assignments.

    • Lectures - Most people agree that these are excellent. Watch a few of them and you’ll see the dynamic between professors Isbell and Littman. The order of material, the quizzes, and the examples are all generally good as well.

    • Exams - A midterm and a final, which only addressed material since the midterm. The exams were straightforward, covered a nice breadth of material, and were appropriately difficult. My only criticism is that the midterm had way more content than time to answer it. The final did not have that problem.

    • Assignments - Bittersweet (for me at least). Each of the four was relevant, rewarding, and quite time-consuming. My two main criticisms are 1) you are asked to think deeply on a topic you are presently learning, which, for me, is tough; and 2) the assignments are broadly and loosely scoped. Personally, I finished every assignment feeling as though I learned a ton, but each grade reflected just the opposite. More structure in the assignments would have helped me focus on what I needed to learn rather than waste time trying to figure out what the TA wants me to address.

    Overall: Excellent material that I’ve been wanting to learn the foundations of for a while. The instruction was great. I just wish the assignments were more structured.


    Semester:

    The Good: The instruction style of the videos are fantastic. The dialogue between the two professors really help in learning the material. The ability to use any software available for the assignments was awesome. It meant I could try new software being used in the field (like TensorFlow).

    The Bad: Have you ever put on a blindfold spun around 10 times and then try to throw darts at a dartboard? That is what the grading is like. There is another review that states “… we need to develop the ability to do independent research …”. This doesn’t do anything in that regard. Assignments are meant to hone your understanding of the material and a rubric helps students focus that effort to ensure it’s not a futile endeavor. From the instructors comments there clearly is a rubric they use to grade. You as a student are not privy to this rubric unless you took the course before or received it from former students.

    I wanted to really like this course. The setup was there for it to be one of the best courses available for OMSCS. However, it is not. The enjoyment of this course was far overshadowed by the bad.


    Semester:

    This is a survey course covering pretty much all essential topics in Machine Learning. The course does not dive deep into the implementation aspect of machine learning algorithms. So set your expectation straight! The two professors are really entertaining, they did a great job in adding colors to the materials which are dry in nature. I love most of the lectures except the one on Markov Decision Process. To me, it would be more intuitive to walk through an example of value iteration before throwing tons of equations at the audience. The course did exactly the opposite which gave me a hard time. Outside the lectures, the course itself is depressing. There are four assignments in the course. They are asking serious a lot for each. I would expect to spend 100 hours for each assignment to get to the place where they expect you to be. Unfortunately it is not realistic since i am juggling between job, family and study as most of us here. The grading criteria should be better communicated, my overall impression is that the grading lacks consistency. TAs give grade based on their personal tastes. The feedback should be more constructive and to motivate students to explore more. To me, the feedback is only a list of missing tests which are only implied in the assignment specification. I was discouraged each time after reading the TA’s feedback. Overall, this is a reasonably well organized course. The materials are quite dry and TAs are expecting a lot from your assignment without telling exactly what they want you to do.


    Semester:

    Profs Isbell and Littman are possibly two of the best teachers of material I’ve encountered, and I’ve taken a Loooot of classes at a lot of places. The course is challenging, but the challenge comes from the material itself, and not from, say, a terrible lack of clarity in expectations and instruction.

    I really had very little interest in ML prior to taking this class, and I ended up really enjoying the course because of the professors.


    Semester:

    Machine Learning is a vast discipline. This course surveys techniques in Supervised Learning, Unsupervised Learning, and Reinforcement Learning. There are only 4 assignments so you have several weeks to do each, but each one covers broad regions of the ML landscape. Part of the difficulty of each assignment is figuring out what is most important to include in your writeup. This seems to be deliberate. Guidelines are given regarding grading, but they don’t tell you exactly what you need to do to get a high score. This frustrates some people, but I think it’s reasonable because this is grad school, not undergrad, and we need to develop the ability to do independent research and determine on our own what is important, what questions to ask, how to get answers to those questions, etc. If we can’t do those things we’ll never be able to discover or invent something new.

    You are free to write your code in whatever language you choose. Mostly you’ll choose a library with the ML algorithms you need instead of writing everything from scratch (which would require a superhuman effort). Python and scikit-learn are popular as is Weka and other Java libraries.

    This course isn’t about becoming an expert in ML (that would be impossible in 1 semester). This course offers a broad view of the ML landscape and helps you learn how to approach ML topics so you can identify areas of interest and continue to build your skills beyond this course.


    Semester:

    This was my favorite class that I have taken so far in the program, the professors were very knowledgeable and entertaining in the lectures. The projects were a good mix of theory and practice and gave me a very good understanding of the concepts.


    Semester:

    This was my first class in OMSCS and I found it very difficult but also very educational. The difficulty for me mostly came from the fact that this class is very theoretical and uses relatively esoteric tools for the projects (WEKA). Even though I got a B in the course (which is considered bottom 50%) I found this class to be excellent prep for CS7646 (Machine Learning for Trading).


    Semester:

    If you take this course, the professor will tell you.. “When you’ll look back at this course, you’ll have tears in your eyes, but they’ll be tears of joy”.. that’s very true.

    The course doesn’t require skilled programming. You can get through the subject without much programming, but it does require extensive reading and really understanding the concepts of Machine learning, which are very dry initially (You have been warned), but once you start to get hang of them, they are pretty astonishing.

    The subject matter is pretty dry but the professors are really witty and jolly and you’ll love them. They have made every effort to keep discussion light and intuitive and I think they succeeded.

    Be ready to give a VERY lengthy midterm exam in 1. 5 hours, which is almost impossible to complete (I completed mine in 1 hour 29 minutes and I had prepared it for over a month). The final exam is the same length but you get 3 hours to complete, so there is no rush.

    Take this course if you’re willing to dedicate time for it. The assignments will consume a lot of your time, there are 4 of them. Expect at least a week for each assignment.


    Semester:

    this class requires a solid understanding of statistics and calculus. if those skills are rough this is a tough class to complete or even understand.


    Semester:

    This was a cool class. Dr. Isbell was very involved on Piazza. The lecture videos were informative and very funny. I liked the super open-ended nature of the projects, but I wish they tied in with the videos more. I struggled with them (like 50% total project grade struggled), but aced the final and somehow managed to get an A. It seems like most people had less trouble with the projects though.

    Sometimes the lectures would get really into the math underlying one small facet of ML, but you don’t need to know how to implement things on the exams (this is a survey course). Focus on having a general understanding of everything and how topics relate (when to use decision trees vs kNN, how clustering algorithms compare to each other) and you’ll be fine.


    Semester:

    Great class with interesting subject material. Good introduction to machine learning. Definitely tough and needed many hours per week.


    Semester:

    Tough class!! Few tips:

    1. You can steal the code - prof. really mean it..
    2. Don’t loose heart on low scores.. its war of attrition keep going… You will be fine… if you give up - u r a goner
    3. Follow slack - they share good tips
    4. Its a long class with lots going on - prepare up front - watch the videos when you can..

    Overall, you will learn a ton. Prof are funny - videos are awesome - you will love it..


    Semester:

    Excellent introduction to machine learning. I don’t really recommend taking this as the first class to the program though, unless you have a background in machine learning. Even then, it wasn’t so much the content that makes the class difficult, rather the amount of pages you will be writing over the semester (I think I wrote somewhere between 30 and 40 pages for the semester) on top of everything else you have to do. Definitely recommend it. The instructors are awesome as well.


    Semester:

    There is a lot of good and interesting material in this class. The lectures are mostly enjoyable to watch, with joking and puns between the professors, and only occasionally does it feel like the lecture discussion goes off on a tangent or doesn’t represent the material well. That’s the good news. Now the bad. Grading is nonsensical at times, you may get contradictory feedback like “You should have talked about X… “ followed a sentence or two later by “I see you did mention X… “ and yet you will still get docked 20% without good reason. You will be told things like “You don’t need to memorize formulas” and “You won’t need a calculator” for the exam, and then the exam will expect you to have memorized a formula and do the formula calculations by hand or in your head without a calculator. The grading curve is complete nonsense, you can “fail” by traditional standards and still get an A in the class. The assignments will not come with complete expectations in the requirements, you may get some more of the requirements by bugging the TA’s during office hours but it is still not guaranteed. If you ask for an example of what is expected you will be told “No, because then you might parrot the example” and the professor wants you to “be creative” except that the TA’s will penalize you for missing something expected in the hidden grading rubric that they wouldn’t tell you about or give you an example of. Responses on Piazza are few and slow, especially for such a large class. Slack is a much better source of quick information but it may not be “good” information when it comes to things like the hidden grading rubric. The class seems to be run, and definitely graded, as though it were a meta commentary on the accuracy of machine learning in general. Putting in the effort that would get you 100% in other classes will inexplicably result in much worse results in this class even if you still get an A in the end.


    Semester:

    Loved the lectures, but the course could be done a bit better over-all. The assignments are very open-ended. This might be good for some, but it was annoying when I spent more time trying to find a good dataset to work with the algorithm than I did actually working with the algorithm. The office hours could have been done a bit better as well. I’m sure this changes semester to semester, but they seemed a little unprepared for some questions and spend half the time responding to questions via text while the recorded video was silent. This wouldn’t be so bad if they hadn’t used hipchat, which doesn’t keep track of separate threads, so at any given point in the office hours there were 1-4 conversations going on at once. I learn a lot from test feedback, which we received little to none of. The midterm we got to watch a series of videos (for a few days) that went over the answers, but were never given back our answers with the scores for each. The final we received no feedback whatsoever. This brings me to my final point… Until grades were released, I had no idea if I was going to get an A or an F… Seriously. The instructors were so vague on how grading worked that I had no idea if I was going to pass or not.


    Semester:

    This was one of the best courses I have taken so far in the program. The lectures are highly engaging, fun, and you very informative. The assignments are time consuming, but you will learn a lot. The tests are not easy either, but they curve the grades. If you don’t procrastinate on the assignments then the course is very manageable. Definitely do yourself a favor and take this class if you want to learn ML.


    Semester:

    This class is hard. But I think that’s what the professor wants to convey to the students. For me I was introduced to these concepts the first time, and hence it was very time consuming to learn to think in terms of ML concepts. Projects are hard only because its vague interms of grading and open-ended-ness. This is not a bad thing, I actually liked this approach, but since its my first time, a lot of time spent is to learn to think in terms of ML. I read all the papers and most of Tom Mitchell’s book - prescribed by the TAs. They are very useful to understand these concepts. One thing is assured - all this effort will not go to waste. Its rewarding because now I am able to appreciate what ML is all about. The only draw back is the course focus is not on implementing algorithms. But ofcourse if time is spent implementing them, then less time would have to be spent talking/discussing about them. In the past I have taken Andrew Ngs Cousera course on ML, ML4T and DVA. While all those courses are good in their own way, CS7641 really dives inside the different ML algorithms. For those interested in pursuing ML this is must take.


    Semester:

    7641 is a rewarding and difficult class. The lectures, tests and projects all demand your attention. The projects IMO were a mixed-bag: it’s an opportunity to apply what you learn in class but they’re quite tedious to write. I wish I appreciated the thoroughness the graders were expecting ahead of time. My first project answered all of the questions that were asked of us but because I didn’t check-off enough boxes on some hidden grading rubric, I got one of the worst grades I’ve ever gotten and spent the rest of the semester trying to get back into a good state. When the prof says that the code doesn’t matter and it’s all about the write-up, he really means it.


    Semester:

    Ok…

    • The assignements are so hard… I got 50% at each even I spent so much time on that
    • A big problem : they don’t say how they grade you so I had no clue how I could improve!!
    • The class material is very good and the teachers sooooo cool
    • You learn a lot in this class very usefull, general things about ML Overall that’s a must taken, even if it is really hard


    Semester:

    Challenging and rewarding course. The lectures are engaging and Prof Isbell is active on piazza. I came in with experience using python for supervised learning problems at work, and for some unsupervised problems as well, but the optimization and reinforcement learning sections were completely new to me. I learned so much through the readings and lectures, but the assignments really solidified my knowledge. Workload varied for me depending on whether it was a week where the assignment was due or not – the weeks where an assignment was due on the weekend, I would spend at least 2 hours on it per day during the week, and then all of saturday and most (if not all) of sunday on it too.


    Semester:

    Great survey of machine learning. Well-written exams, great discussion-style lectures, and projects that facilitate learning extremely well.


    Semester:

    One of the best courses in OMSCS, this course provides a good overview and introduction to the world of machine learning. The videos are good and lots of information to grasp, especially if you are new to this area. The expectations from assignments are pretty open ended. Overall a must take course


    Semester:

    This is a perfect introduction of Machine Learning. I begun watching videos and reading the textbook in summer vacation, review of both videos and the textbook again in the fall. I do not have any other experience in machine learning, just took 7646 last semester. The journey is awesome, especially the first half. Learning how to learn under pressure itself is very meaningful for me. The first assignment and midterm are warning signs to tell you that you need to really dedicate. The grading curve is friendly. Take it and enjoy it! Even casual observers would love it!


    Semester:

    Overall, the course content is well structured and covers the base of machine learning. Assignments are time consuming and require running many experiments so they are not something you can complete within a few days. The midterm is very hard with limited time frame and you also need to be working on the second assignment at the same time. Once you pass this point, the workload stabilizes. It is by no means that you have time for slack. It still requires continuous effort to study and complete the remaining projects by due date.

    Interaction with TAs and instructor is bare minimum. For most parts, you are on your own and officer hours is chat base in Q&A format. Having more interactive office hours with different time frames could improve course experience further.


    Semester:

    This class is well done. The lectures are done well and provide good explanation. My one suggestion for improvement would be for the teachers to talk about methods that are successful for solving ML problems in the real world. Midterm was extremely difficult. Make sure to study basic equations on both midterm and final.


    Semester:

    Life changing course! Lectures are sometimes hard to comprehend and almost always need to refer to thorough readings outside the lecture content. But it is made clear from beginning that lectures only a survey of various techniques. Atleast I learned what I need to learn more, which is precious. Assignments are pseudo open ended, meaning different parts of learning goal would be described but how, what data you would use, what software etc are left to us. Analysis is the key even though results may not be accurate. If focus was on experiment results, many students could concoct those as well. Hence focus on analysis. This course gave me directions to explore, made some good friends, learned from many other students. What more can one ask!!


    Semester:

    This is a type of course that you feel smarter after the semester is over. You really learn what ML is. The class makes you synthesize the algorithms very well. Dr. Isbell and Littman are great professors. They are funny, witty and smart. There are 4 assignments in the class, each of which takes weeks to finish. So do not postpone the assignments until the very last moment. The exams are hard. If you study well, you can get an A.


    Semester:

    This was the hardest class I’ve ever taken. I also learned more than in any other class I’ve ever taken. Projects were very open ended. You could pick any technology you wanted though most gravitated to one or two obvious choices. There is almost no starter code for anything. The midterm is insanely hard and designed to be almost impossible to complete.


    Semester:

    My “learning style” made the assignments in this class unbearably difficult. Basically, I learn best from the Udacity-style lecture/quiz format. The assignments in this class don’t “hold your hand”. The textbook and lectures provide no details about the machine learning software required to complete the assignment. So you’re really trying to learn on your own from (often incorrect) online software documentation. I was able to complete the assignments, but I don’t feel I learned enough for the number of hours I had to invest.


    Semester:

    This course is a fair amount of work, but oh so worth it. The lectures were fantastic and the projects really help you learn subtle things about the topics you learn about in the class. I’ve also taken the Reinforcement Learning class and would take any course offered by Charles Isbel and Michael Littman. They are just tops in my book.


    Semester:

    This is my favorite class in OMSCS so far. It is time consuming but very rewarding class. I found video lectures to be very interesting. Assignments are open-ended which makes them more interesting as well as time-consuming. I started with recommended tools in first couple of assignments (Weka and Abagail) but later I felt that I should move on to tools which I am more likely to use if I have to use ML techniques at my work. So being a python programmer, I moved on to sk-learn, and mdp toolbox which also worked very well for the assignments and within couple of months after course I started using the algorithms at work. Piazza was very active and everyone was helpful. Only thing I didn’t like was that mid-term exam was way too long, which I don’t think really serves the purpose.


    Semester:

    First off, the GT course surveys site currently reports this as almost as difficult as 6505. This wasn’t true, at least for me. This class is tedious and time consuming, while 6505 is just plain difficult and time consuming.

    Lectures: The lectures did a good job of explaining the various machine learning algorithms. Most lectures described things relatively informally (no rigorous math or proofs). For some of the concepts, I kind of wish they had explained the math behind the algorithm a bit better, but for the most part they were very good

    Homework: The homework is structured as four projects. There were two big issues with the homework. First, there was a sizable gulf between the material presented in the lectures and what you actually had to do for the projects. There was lots of outside reading required to understand how exactly to use the ML algorithms in an analysis setting. In other words, the lectures explained how the algorithms worked but you were on your own with the homeworks in terms of comparing them and determining which performed best and why. Second, you were kind of on your own when it came to picking tools to perform your analysis. As a beginner to these concepts, I spent lots of time evaluating machine learning frameworks to determine which best suited the assignment. This meant I was spending less time actually working with the algorithms and more time experimenting with machine learning libraries. The TAs and professor occasionally made suggestions, but it would have been nice to get a list of vetted frameworks for each project.

    Assembling the reports for the homework was tedious. It involves running multiple (hopefully repeatable), possibly long running experiments and usually plotting the right things for each algorithm. This was by no means hard, but it was time consuming.

    Grading/Administration I thought grading was generous. The homeworks were graded fairly, but it would have been nice to have a more explicit rubric.


    Semester:

    The discussion style of the videos in this course made it a lot more engaging than the straight forward lecture style of another course I took this semester. Both Littman and Isbell have insightful questions, clear explanations, and puns. The readings are tough, but help to understand the meaning and math behind the algorithms.

    There seemed to be a trend in grading where the supervised and unsupervised assignments received lower scores than the randomized optimization and markov decision process assignments. I was around the mean for most assignments, did a few points above the mean for the midterm, did better on my final, and somehow ended up with an A for the course grade. Strangely enough, I don’t feel like I deserve an A because theres still so much to understand and it was clear from the piazza forum that others had a solid grasp of the material. That being said, I do want to go on and learn more about ML!

    My advice for this course would be to get started on assignments early. I tend to procrastinate and the grade on my first assignment showed that. As you work through the assignments, you’ll find more and more questions that you’ll try to answer. In order to have an interesting paper that fits the page limits, you must be able to explain why your experimenting showed the results that it did concisely yet comprehensively. Advice bit number two would be to just go with whatever everyone else in the class is using for the assignments. Weka for assignment 1 and 3, abagail for assignment 2, Burlap for assignment 4. Keep a close eye on the piazza forums for technical help.


    Semester:

    The teaching approach in this class seemed to be “throw way more work/information at the students than they could possibly absorb in an attempt to push them to do more than they think they can”.

    Well. Okay. Mission accomplished. But the grading criterion for this course seems to be:

    “Grade the students on everything we threw at them, knowing they couldn’t possibly absorb it all, then give them all a massive curve at the end. “

    The problem with this is that there’s no guided prioritization of focus. I learned tons in this class. But because the average in the class right now is a 67 (averages for all assignments/exams except the final are available on Canvas) neither I nor the vast majority of the students in the class know whether the gained knowledge is what we were intended to learn in the course.

    Of the four course objectives the one I feel the course didn’t help at all with was “To develop the basic skills necessary to pursue research in ML”. There was no guidance at all in this area. We got assigned 4 analytic assignments without any guidance in what makes a good analysis in the target domain. We were given grades on our analysis assignments with little feedback at all.


    Semester:

    I really enjoyed this class and learned a lot. I am writing this review a semester after finishing the class, so I am even more confident in being able to say this. A lot of the material has really stuck and I have been able to apply these principles to subsequent classes.

    I felt this class was more time consuming than hard. It takes a more hands-on approach rather than a theoretical one. There is a lot of time spent tinkering with data-sets and runing different algorithms. But, I never felt like I did not know how to do stuff or that the material was difficult to grasp, projects just took some time to iron out and decide how you wanted to procede with them.

    Personally, I would have preferred a little more of a theoretical approach and deeper dive and increased focus on the underlying math, which was extremely light. But at the same time, this is a survey course that aims to cover a lot of topics, so perhaps it is not realistic to increase the depth too much without sacrificing breadth.

    Overall, I would highly recommend this course!


    Semester:

    This class rocks. It teaches you how to be a wizard who can find patterns in seemingly random data!!! I found the lectures to be extremely engaging and did not require that much supplementary material outside of the text book. The banter between Professor Isbell and Professor Littman is money. The assignments are relatively tough (especially the first one due to its length), but unless you try to be superman and implement the algorithms yourself (to quote Professor Isbell “steal”), they are very manageable. The midterm is hard in large part due to the time limit (90 minutes), but the final was more straight forward (with 180 minutes).

    Seriously though this course taught me several skills that I am already applying at my workplace. Don’t take it lightly, but don’t be intimidated by it either.


    Semester:

    A very rewarding course. It is pretty fast paced - a lot of ML algorithms are covered and there is a lot of reading to do. However, you learn to use ML tools in the market (I had to program in Java and Python - many others used R) and to not reinvent the wheel. There are a couple of things I struggled with

    1. Picking the right datasets. You have to use the same dataset in 3 assignments, so ensure that you pick datasets
      • running a bunch of classifiers on them to ensure that they don’t all predict in the same or similar range, nor are they too easy (>95% accuracy) or too difficult (<50% accuracy)
      • ensuring you understand the underlying data - you’ll have to really care about the data else you’ll have a hard time explaining your results
    2. Switching from Java to Python and back

    I’d recommend sticking with the following libraries/packages for the various assignments

    1. Weka for Assignment 1 (many also used Python and R)
    2. ABAGAIL for Assignment 2 (This has a lot of starter code to help you)
    3. Scikit Learn for Assignment 3 (Weka has ICA missing)
    4. BURLAP for Assignment 4


    Semester:

    I wish all my classes were like this. It was very enjoyable. I felt that the two person teaching format worked really well for the course, to the point where I started to question why all courses didn’t do this. It sort of reminded me of the back and forth in a RadioLab podcast. This was one of the best classes I’ve ever taken, and even though I have some background in Machine Learning, I felt I took away a lot of new insights from this course.

    Is it hard? I guess. I don’t feel that it’s hard to get a “B”, but you have to work at it. I think the professor recognizes your efforts and as long as you are committed to learning the material (proving it by doing all the assignments and problem sets), then you should get at least a B. Another way to put it is that if you didn’t get a B in this class, you probably weren’t that surprised about it.

    In terms of criticisms, this was my first course in OMSCS, so I didn’t have anything to compare it to. Certainly there seems to be a fair amount of growing pains in the program itself when it comes to addressing student concerns or giving out grades on time. But it also seems that the administrators recognize this and actively try to improve the environment for everyone. Over time I think some of these hiccups will iron itself out. A second criticism is that the book they recommend is a bit antiquated, given the level to which this field has evolved. It would have been nice if they upgraded to ESL or something similar.

    Overall though, I’m very happy that I took this course.


    Semester:

    This class is tough. The workload is huge and the amount of material covered is enough for two or three 3 hour classes easily. It also cries out for a Lab session environment where students can work on projects somewhat communally and get feedback from TA’s in real time. The topic is fascinating, and the professor(s) are impressive so it is overall a good experience. The lectures are mostly just summary level though. You have to grind through the text and supplemental reading to understand it. The class needs more structure in the projects. The open-ended character of the process of choosing data sets and software environments for the projects makes it 10x harder than it needs to be. You can easily find youself wasting all your project time on trying to make these decisions. One important note is that the curve is very kind. Fight the urge to drop the class because of results and difficulty; it is worthwhile to stick with it. They seem to enjoy making everyone think they are failing and then curving to mostly A’s and B’s. Hopefully you will have some benevolent genius classmates that are active on piazza as well - I know I could not have done it without them.


    Semester:

    This was one of the hardest classes I’ve ever taken. Even to gain a cursory understanding of the material required many hours of reading supplementary material along with watching the video lectures. The projects were also fairly difficult and usually took anywhere from 30 to 50 hours to complete. You’re allowed to use any language you want, which is nice, but make sure you find data that you’re actually interested in analyzing! That will go a long way in keeping you interested and motivated in the class.

    The TAs and Dr. Isbell were great on Piazza, and I felt were fair in grading. The class is very difficult, and is graded harshly, but there is a curve at the end, so don’t lose hope if you feel you aren’t doing well! Despite its difficulty, I found the lectures and the material to be very engaging. Topics were explained very well, and were supplemented by the readings. I very much enjoyed this class!

    I took this class along with Computer Networking. Overall, it was a good balance, as Networking was pretty easy, and this class was pretty difficult.


    Semester:

    Very challenging class but incredibly rewarding. One of my favourite classes ever, you will be exposed to roughly a dozen machine learning algorithms.

    The first half of the class is the most difficult. Understanding the math, ideas, requirements for papers and midterm can be a little discouraging. The second half proved to be much easier and even more interesting. I was ready to drop the class at the midpoint but ended up finishing with a top mark.

    At the start of the course you have choose 2 datasets which is the basis of all your work and papers. The problem is that course does not explain what qualifies as a good dataset to study. Its a tradeoff between the training time, sample size and the number of dimensions. To little data and there is no difference between the various algorithms. Too much data and it will take a long time to run your programs. My first dataset was too simple and the second didn’t have enough data to train - given the number of inputs (dimensions). I would seek clarification before finalizing the dataset choice as the idea is to compare all the algorithms on the same dataset.

    The instructors are highly entertaining and seasoned experts in their field.


    Semester:

    I find this to be a very hard, but also very rewarding course. The professors put together some well-written, very entertaining lectures. The class covers a wide swathe of the machine learning spectrum. The lectures themselves don’t get too deep, but they do a good job of familiarizing you with a lot of concepts.

    There is quite a bit of supplemental reading, both with the primary text and several other papers. Not so much as AOS had, but still a fair amount.

    Professor Isbell and the TAs are pretty responsive on Piazza. Elijah has been very active and helpful in particular.

    The bulk of the difficulty comes with the projects. They are very open ended: you can use whatever data sets or framework you want to complete them. All of the coding and experimentation is just a set up for the analysis you write, which is the real centerpiece of a project. Writing a good analysis requires really understanding what is going on and will require a fair amount of independent research, above and beyond what the lectures and supplemental reading provide. It’s tough, but I find that it gives a thorough understanding of the area. For me each of the projects has taken around 50-60 hours to complete. They come at a two to three week cadence. Budget your time appropriately.

    For some of the projects it is likely that you will end up using ABAGAIL, which is maintained by Pushkar. It’s pretty solid, although it has some blemishes. My only complaint with it is that there are standing bugs in it which are fixed by several-month-old pull requests. You can go and find these yourself, but they really should be merged.

    I’ve only had the midterm so far, and I must admit it is probably one of the hardest I’ve ever had. It is intentionally hard. My understanding is not that it is meant to weed people out, but to separate the truly outstanding students.

    Overall, if you like machine learning and you’re willing to take on a tough course, I highly recommend this one.


    Semester:

    I dropped the first time, I’m doing well this time.

    The first time I understood very little because I had little knowledge of the subject. Since then, I’ve learned from various sources. Now when I read the book I actually understand. My best advice is to find classes in Coursera, in OMSCS, etc to give you background: because this class doesn’t.

    Lectures: VERY GOOD explain concepts quite clearly (see caveat above) Profs: FUN, participative, great. TAs: some are very helpful (esp. Elijah) Assignments: VERY POORLY designed.

    Tip: Pyhton, ABAGAIL Once past the smoke screen of indecision and tool barriers. The assignments are actually just a lot of busy work. You are also expected to dominate things not taught (ROC, precision vs recall… ). No methodology taught in detail in spite of this being the emphasis.

    My best advice? If your specialty allows it, skip this class. Watch the videos for free on Udacity and learn ML elsewhere. The assignments are just wasteful of your time.


    Semester:

    The lecture videos were outstanding.   The projects were very time-consuming, but helped me to learn the material much more thoroughly.   Follow the clear instructions on each project and you’ll do well on them.   My math skills are a bit rusty, so I had to go back and do some refreshers on it.   Some of the advanced math concepts for the algorithms were challenging, but not essential to do the assignments.   The class was very rewarding and I recommend it, but plan sufficient time to keep up with the workload.   If you fall behind, you would have a difficult time recovering.   One thing that is crucial to the class is the selection of datasets you use for your assignments.   Picking a simple dataset won’t let you contrast the algorithms, picking too large a dataset will make run-times for the projects extremely long.   My recommendation is to find a good large dataset and pair the data down to something that runs in a reasonable time.   Don’t use small datasets with less than 1000 records.


    Semester:

    This class tests your ability to work with libraries and hunt down data & process. It is very poor at teaching you Machine Learning efficiently compared to the numerous other offerings on Coursera.

    Don’t expect to understand the material presented. That apparently isn’t the goal of the course because the instructors spend their time hand-waving and the assignments have you spend time debugging against shoddy tools. You won’t learn to troubleshoot the thought process or algorithms, just to fiddle at the margins with the tools provided. The people who give this course favorable reviews are very strong coders but very weak on theory and math; they pull through because they can plug & chug the coding assignments and use the crappy tools. Based on other reviews, many students thought the math in this course was challenging. It is basic freshman/sophomore calculus, but a lot of people didn’t come into this program with that. If you consider yourself a math person, take Andrew Ng’s classes on Stanford Engineering Everywhere. That’s what real Machine Learning looks like, not the plug-and-chug coding of this course.

    In this course you will get a lot of practice running algorithms that are poorly explained. I have a math / physics background and am floored by how superficial – yet still time-consuming – the total coverage, problem sets, and exams were. The questions involve running algorithms and interpreting output, which is about as crank-turning as I could imagine. Still, it takes a lot of time to do because the tools (except Weka) are weak and the lectures exceedingly hand-wavy. I found the book much more clear (though dry) in its explanations than the lectures. Neither were helpful on any of the assignments. Basically if you’re modestly good at Java (or expertly good with Python and R ML libraries) and have a lot of time to learn to use APIs for existing ML tools, then you’re fine. Perhaps that’s what all CS courses are like?


    Semester:

    This course is possible with a dusty grasp on statistics / linear algebra.

    The projects require 60+ hours each; most of your time will be getting the code to work / generating the graphs.

    Frustration points: *The instructor doesnt care what language you use, but there are DEFINITELY bad choices. Proj 2/4 (almost) require Java; 1 is best done in Weka (from Java), and 3 is best in Python/R. *You pick 2 data sets - dont make your own. Download two datasets that are already prepped for machine learning / close to it (I selected two out of a ML book I bought, with the professor’s permission).

    The tests are designed to knock you on your butt; a 50% is a decent grade.

    All of that said, the instructor is good and genuinely cares how well you do.

    The material is alien, the math is dazzling, and the projects will take a long time; that said, there is a generous curve. IF you at least hand SOMETHING in / make an attempt, you will get a B. This is an endurance class, so hang in there!


    Semester:

    I have a different opinion of this class. It is often stated that people who struggle in this class suffer from inexperience. However, I am a senior level data scientist in the industry who has taught courses and authored packages on machine learning. In spite of that, the workload was high, and I felt the grading was arbitrary if not vicious. There is some talk that all of this will be corrected in the end with large scale curving, but that is a poor system. I ended up dropping this class, and I do not recommend it. The lectures are good, but those are free to watch at any time.


    Semester:

    I think all the previous reviews adequately capture the difficulty of this course. I highly recommend that anyone taking this course currently at least take a look at my open source assignment 4 code. Me and several other students spent a lot of time working on it and I hope it will help others taking the course as well: https://github. com/juanjose49/omscs-cs7641-machine-learning-assignment-4


    Semester:

    This course was very challenging because there is a lot of material to get through in a short amount of time. The homework assignments are long to implement and unclear - at first - what the professor is looking for in a good grade. The class gives you a taste of what it might mean to implement machine learning algo in real life - the frustration and uncertainty. If you stick with the course, you will be rewarded! I thought about quitting half-way through the class and received a C on the first homework BUT ended up with an A in the final course.

    There are opportunities for “extra credit”, where you can show that you have done extra work and get potential lift points if you’re in between grades - it is not clear how this is done but it worked to my benefit. The class is very open about sharing algorithms (but not write ups) and discussion boards are full of people exchanging ideas and helping students that are stuck. Very collaborative class and it promotes open sources and sharing in the CS community. Also, I appreciated peer feedback because then I could see how other approached the same question & with different languages.

    This class took over my life for a few months but I am a stronger technical person as a result. Recommend that you only take one course when Machine Learning is involved. Good luck! I took this class working full time


    Semester:

    This class will challenge you and require a lot of time spent finding data, training models, and writing reports. It’s all worth the effort because there’s so much rich content to learn. Prepare to work hard and long hours.


    Semester:

    The content isn’t too difficult. The lectures go into more math than you need for the tests and projects, but it’s good to understand. My favorite lectures so far in this program (edit: CV, which I took later, ties or is better for lectures).

    There are 4 projects that take a ton of time. Each project is open to how you want to implement it and with what libraries you like. Every time I spent several hours writing code before I could even begin the results papers, and then much more time running tests and rewriting code once I started and understood what each paper really required. It was stressful knowing another paper was due just another 3 or 4 weeks away and I had to begin immediately. Do begin immediately.

    As my first introduction to machine learning algorithms I learned a so much in one semester and the class was very worthwhile. I loved this course.


    Semester:

    I enjoyed the course a lot, though there can be times when it is exhausting from all the time spent on the projects or going from projects to exams and back. However in the end I felt it was worthwhile and the projects gave a lot more hands-on practice with some of the methods we studied in the class.

    The first half of the class can be a bit daunting in terms of the amount of material for the midterm - Supervised Learning covers a lot of lectures and most of the textbook for the class. The latter half of the class is a bit less material with respect to studying for the final. In that respect you should try to stay on or ahead of the schedule and readings so you don’t feel overwhelmed getting prepared for the midterm.

    In terms of the projects, the first one can feel daunting as you must select two datasets to use for this project (and reuse them for parts of later projects) and then apply a bunch of supervised learning methods to the data sets and then compare and contrast. Without giving things away, I would say on that first project try to focus on getting some plots that will help you to compare the algorithms in terms of different parameters, error rates and runtimes. Having the plots is really crucial to doing well on the assignments. As I moved on through the course I also found it helpful to write the report as I went along instead of running a ton of experiments and then trying to write it up at the end - since only the report matters for the project grades the most important thing is to start putting words (and plots) to paper, and that can help with “analysis paralysis”.

    Use the software you are comfortable with for the class. Whether you prefer Python, R, or Java stick with what you like and you will probably be happier. But also the randomized optimization project has a MIMIC implementation in the ABAGAIL package (Java) and the reinforcement learning project works well with BURLAP (Java), and using those may make things easier for those projects.

    If you do use java and want to get a head start on the class one activity that would be useful it watching the Weka tutorial, which walks through how to load data in Weka and use the different classifiers and classifier parameters in Weka. Learning to use either the Weka CLI or APIs to programmatically run classifiers is also helpful as you can use that to run a series of experiments to see how tuning parameters in the learning algorithms impacts the results.

    Finally believe Charles when he says not to panic on the midterm results. The mean on our midterm was around 50/100 but that corresponded to the equivalent of an A, and the B range was 20-30 points and up. So even if you feel bad about the midterm don’t give up, submit all the projects and you should end up okay.


    Semester:

    This class is a mixed bag. Can’t say its always enjoyable cause of sleep deprivation, but it will learn you some aha moments. The “trick” this class did was able to deliver material without imposing hard math constraints on the person learning. It’s pretty neat, you can understand lots of materials. This goes over foundational ML on classifiers, optimization, probability, Markov model… then some more.

    You will also learn really quickly that you can’t waddle through gradschool by just having coding chops, you have to read papers and you have to decypher textbooks(Tom mitchell). Lectures are mostly overview or summary of what your synthesized understanding should carry you to say that makes sense. The quizes are not leading questions, so Go!

    Pay attention to the pre-req: A little stats/probability and some light calc/linear algebra background do not hurt.

    For fall 15 java/weka/burlap - at least for Fall15 semester, if you know this, you should be OK. python/sklearn is trickier and could be more advanced for most people.


    Semester:

    Very, very challenging course, but one everyone should take. If you want to learn how to write a paper in graduate school and research deep topics this is the course for you. It taught me plenty about Machine Learning, a topic I knew nothing about, and stretched me in very good ways.

    Take it!


    Semester:

    Very difficult course with a lot of material. You really have to learn a lot of additional material outside of the book and the lectures on your own. Easier if you have some experience with Machine Learning software; otherwise try to get started before course kicks off by reviewing some ML tutorials.


    Semester:

    This class was especially difficult for me because I chose to use a dataset that was feature rich and sample poor. My suggestion to future students is to choose a dataset that is not so complicated. You could be much better off using one that had many samples and a relatively small number of features (less than 50) so that you have a better chance of understanding what exactly you are working with.


    Semester:

    I agree with all comments above. Probably the best course I’ve ever taken, even though at times I was driven to despair by the difficulty and time requirements. Brush up on your statistics before taking this and you’ll be happier.


    Semester:

    If you need to refresh on statistics, I highly recommend you take the statistics course on udacity before hand. If you work fulltime or have a busy schedule; I recommend you take this class by itself; It requires a lot of time.

    Udacity statistics class: https://www. udacity. com/course/st101.

    Part 1 of this class (Intro to AI), may also help: https://www. udacity. com/course/cs271


    Semester:

    Great class. It was hard but I learned alot. The supplemental readings are really important in internalizing the information and going to an advanced understanding but just the lectures ‘mostly’ are sufficient for the tests and assignments. The key on the assignments is to read the instructions carefully and include everything they ask for and remeber that they really are only looking for analysis that demonstrates you understand how the algorithms work and how to use them properly.


    Semester:

    Best course I’ve ever taken. Difficult, but not overwhelmingly so. The worst part is the workload – it’s ungodly, and I have to assume this is a weeder course. This course offered a lot of benefit, but I still don’t think that it justified the work load. As mentioned above, research projects are very long reports, experiments take very long to run, and the assignments are the worst combination of loose-definition and high-expectation one could imagine. You choose your own tools, data, analysis, and pretty much everything, but it’s still difficult to hit everything on the grading syllabus. Lecture videos are very entertaining and tied well into the assignments. Exams, I felt, did an excellent job of testing our ‘synthesis of the material’, as Prof. Isbell would put it. I hope the rest of my OMSCS courses are like this one, but with less busy work.


    Semester:

    One of the most fun courses I’ve had in my academic career. In particular, it pushed me to develop intuition of mathematical concepts and algorithms and how to explain them. Assignments are often 4x more time consuming than I’d think to allocate time for (10+ page analyses over 5-20 different concepts). Exam questions were easier than expected, but the challenge is to be able to convey a sense of ‘synthesis’ and knowledge of the concepts – and for both assignments and exams, good writing skills are very important. Overall, I would say it’s a fantastic course and definitely worth taking for any specialization.


    Semester:

    This class is definatly Math heavy, not that you need to actually solve equations (although you do) but that you need to understand the underlying principles of the math in order to do well in the class. I found the workload to be very difficult. I was taking two classes & working full time, and there were many weeks I just ran out of time. I think the subject is very interesting and you do get a good overview of what ML is and how it is applied. The projects are where you are really able to apply the concepts to real data, and this is a bit of a shame, because if you dont have a rich data set to use, something you are passionate about, and understand well, it can be very difficult to do well on the papers. Becase you wont really know what the application of the various alorithms is telling you, and that can reall imact your understanding of ML in general


    Semester:

    Lots of material covered. The math is not extremely difficult, but you will want to reserve enough time to become familiar with it. The projects are very intense, and the learning curve on tools alone will chew up tons of time. Great course, but be prepared to work your fanny off.


    Semester:

    One of my favorite courses of all time. Pair lecturing is phenominal - and the Isbell/Littman is awesome. The math and other lecture content is not terribly difficult. The time sink in this course is the assignments. The instructions are vague and open ended, while the grading is very strict if you don’t do what you didn’t know they wanted you to do without them telling you to do it. USE THE TOOLS THEY RECOMMEND. Your code is worth zero points; your analysis is all that matters. So do not spend time writing code, spend it writing the analysis. They are very secretive about the midterm and final. The test format is like any other college test, but they are hard - you probably cannot get the right answers by intuition during the test, even if you are very familiar with the topics; the answers tend to require reasoning abstractly under time pressure (although less time pressure on the final). Exam grading is very coarse - as though it’s done by the Soup Nazi from Seinfeld, earning zero points for the slightest provocation. Everyone should take this course.


    Semester:

    The lectures in this class are awesome and interesting. I really enjoy the dynamic between Michael and Charles. The lectures themselves are not complicated (though they do take a bit of time to get through). Most of the time is spent in the assignments which are open ended and a lot of work (but good work). My only real complaint is that the course schedule doesn’t quite match up with lecture order and naming. It almost seems as if things have been added to and shuffled but no one has gone back to fix up schedules and make things consistent.


    Semester:

    I guess I am at odds with the others. I did not like this course. The subject matter was interesting and the professors provided a great dynamic making the time spent watching the videos enjoyable. However, the amount of material covered on a weekly basis was like drinking from a fire hose, leaving little time to enjoy or absorb what was being taught. I also found it annoying that we had to find our own databases to analyze. I’m sure that that was perceived as a bonus by some, but for me it further diluted my ability to measure how well I was learning [through peer comparison]. I might take this class again, but likely only if it ends up being required to meet a particular specialization I’m interested in. All in all, a good topic, but I prefer a more ‘results-based’ class at this point in my career.


    Semester:

    The video lectures were the best I have seen, they managed to cover a very large amount of material while still getting into the specifics of each technique in a useful way. I’ve taken courses on some of these general topics before and still learned a lot. The assignments are flexible in terms of content, and very time-consuming, but the skills you will need to complete them can be learned during the course (you don’t, for example, need to be a great programmer). The time-consuming aspect is usually learning how to do techniques needed for the assignment in Weka or another program, then actually running all of the experiments and collecting the data, before you can even start writing the 10+ page paper. If you try to procrastinate and wait until the last few days to start an assignment, you will not do well in this course. The exams are tough but fair, if you remember and understand everything from the lessons you should be able to answer everything without getting stuck, although the midterm was purpsosely designed to not give you enough time to complete it so don’t waste too much time on any given question. I would say the one downside of this course is that it will take up too much time if you have commitments outside of this program and are taking another time-consuming course. I would recommend taking this course with a course that has a more manageable workload.


    Semester:

    Consumes a lot of time, but it is worth it. Knowledge of probability, stat, and linear algebra is super helpful.


    Semester:

    I dropped the course half way through. The lectures and material were amazing and very interesting. But the time commitment was just impossible. I was taking another OMSCS course at the time and I realized that I could simply not do both at the same time. This course had the larger time commitment so I dropped it. I really enjoyed the lectures and actually watched the rest of the lectures before dropping the course as I found the material really interesting. The time commitment comes from the papers you have to write. You dont actually write any machine learning algorithms. You download prepackaged algorithms, run them on non-trivial datasets and write papers comparing their performance and drawing conclusions. It requires a lot of knowledge in math (stats, etc) and just took way too much time. I took the midterm before dropping and did pretty well. I felt the midterm was extremely fair. But those papers, it will consume all your time.


    Semester:

    Amazing professors and great lecture videos. Unfortunatley, lecture videos provide 10, 000 feet overview of the concepts and were little helpful for actually doing the assignments. Assignment are very open ended, time consuming, and sometimes confusing. I found very little guidence on how to preprare for the Mid-Term. Mid Term is really important as it has 25% weight. I would recommend watching all the lecture videos early in the course and study text BOOK deeply.


    Semester:

    Great professors, great topics. Assignments require a lot of time.


    Semester:

    This is a great course, tough, but very rewarding at the end. The difficulting really depends on your background. Highly recommended course except if it’s your first semester in the program.


    Semester:

    Wonderful course with two great professors, but extremely time consuming. The projects are rewarding, but very open-ended and experimental. It was difficult to balance with a full-time job. Prepare to do nothing but school work for this class during the semester that you take it. Also, the exams were intimidating, but cool nevertheless. One disappointment for me was that you don’t have enough time to implement the algorithms that you learn about and instead are strongly encouraged to use existing implementations. I would have preferred to have implemented them myself to truly learn how they work in depth.


    Semester:

    This course covers a lot of material in a short period of time. The lectures show that the professors care that the students learn, but don’t understand what is complicated and what is not. They spend a lot of time on side jokes and stories as well as simple concepts and then gloss over the meat of the material. The homeworks take an incredible amount of time and are very open ended. I would’ve prefered the material to be cut down and gotten more feedback on smaller and more focused assignments. I spent a lot of time prepping for each homework (finding the right libraries to use, picking a data set and understanding what was expected). I hadn’t taken an AI course before and this being my first semester after 5 years out, taking two courses and working full time may not have been the best choice. This class wore me out.


    Semester:

    I learned a ton in this course. It’s difficult and time-consuming but for me it was worth it. If you’re the type of person that prefers paint-by-numbers type of assignments this class isn’t for you. It is very open-ended and self-directed. The biggest challenge of the assignments is figuring out what to do as opposed to actually doing it. The lectures are great, but expect to supplement them heavily with the text BOOK and online research. Downsides: the instructor support in the forum was a bit scarce and/or untimely and the assignment grading was likewise untimely with limited feedback as the grading is based on a rigid rubric (which is hidden from you) that probably isn’t ideal for such open-ended assignments. Also, the class felt very front-loaded to me as the last third was pretty quiet compared to the earlier enjoyable hell. The RL mini course doesn’t tie in very well with the SL/UL stuff.


    Semester:

    Good - Liked open ended assignments since we don’t have a masters project and can select any dataset that we want. I had an idea that the projects required a dataset selection so I picked biology based datasets and took 3 MOOC’s over the summer to better understand what the data meant. This included the MIT 7. 00x: Introduction to Biology and 7. QBWx Quantitative Biology Workshop. Prof. Isbell was active on Piazza answering all types of questions which I think is rare. So thank you for that. Though I do have some complaints listed below this is still the best OMSCS class I have taken so far. I expect to get kicked in the teeth for me to respect the class. I want to take the reinforcement learning class when it comes out though I will prepare for it in advance.

    Bad - Will consume all time so don’t take this course with another course. Some problem sets were assigned but solutions posted were incomplete. General lack of concrete problem examples/solutions. Needed to pull from old tests from other universities.

    Ugly - Inconsistant grading of projects. Some received feedback of points off based on a rubric, some got only comments without telling where points where deducted and some got nothing at all. Felt some graders were tougher then others as I could tell several different grading styles. Either I had an easy grader for my third project or I got someone else’s grade as it was my worst paper of the four but my highest grade. This will get worse as they may go to no feedback at all as the class size scales. You won’t even know if your score is your own or a mistake. I think a few sentences describing where you got points deducted is a minimum requirement for a distance learning program for major assignments.


    Semester:

    Assignments will consume a lot of time. I underestimated the amount of effort required for assignments. I wouldn’t recommend taking this course together with another workload-intensive course as it will severely undermine the quality of learning. As others have mentioned, little to no feedback on assignments is a major flaw but this happens to both the courses I have taken so far. Regarding the math involved, the materials presented in the lectures are manageble and the gory details of the ideas are mostly hidden away in the supplementary materials. Having said that, it is possible to do well skipping the supplementary resources until there is a need to refer them in the assignments. Oh, almost forgot, Charles and Michael are funny as hell. Definitely better than a boring monologue session.


    Semester:

    Great class. Charles and Michael are extremely entertaining and make the lectures fun to watch. I definitely recommend taking this class by itself, because the assignments can take an obnoxious amount of time to complete. Start the assignments early; it takes awhile just to figure out exactly what you need to get done on each assignment, and then even longer running experiments and collecting data. STAY ORGANIZED. I also recommend using the tools and libraries suggested (Weka, ABAGAIL, BURLAP, etc. ) for the assignments. The exams aren’t aren’t that difficult, but simply doing the problem sets isn’t enough to do well. Prof. Isbell really emphasizes ‘synthesis’ of the material, which I translate to: ‘a general knowledge of the concept, its strengths and weaknesses, and how it relates to other concepts’.


    Semester:

    I agree with the comments above. I think that if you do all the work assigned, especially projects that would set you up for success especially on the exams.


    Semester:

    This class is no joke. I had to marshall all of the organizational tricks I learned in the decades since graduation in order to squeak by in the this class. I certainly enjoyed the material. The lectures are a lot of fun and engaging, and surprisingly clear for the concepts presented. However, there was a big gap between the lectures/reading and the assignments, which to me felt like they really aimed to teach you how to do this type of work for yourself. Much of the learning required for the assignments was on your own. It would have been nice to have some kind more help (i. e. , domain knowledge) to get us going. Exams were mostly about ‘synthesis’, i. e. , demonstrating your knowledge/recall of the material through writing. reading all of the readings was very helpful for exams, but very time-consuming as well. As someone said, if you work full time, kiss all of your free time (and family time, and chore time, and etc. , time) goodbye! Good class, but put a strain on my marriage and/because it prevented me from mothering my kid.


    Semester:

    This was my fist class in the OMSCS program and my 3rd CS class ever. There was a large amount of work on the assignemnts wough the tests were not so hard. The concepts in this class were somewhat difficult to grasp but not imporable. Overall I had a lot of fun and I learned a lot.


    Semester:

    This was my first ML class, and I took it with CS 7637 while working full time. I had almost no free time during the semester. Gym time was cut by 2/3, which was the most regretable part. The semester was like a boot camp where I’m constantly doing projects dued on Sundays, squeezing 30+ hours of coding into each Fri/Sat/Sun. I seriously contemplated about dropping this class at least twice due to the amount of time required. I’m glad I didn’t. This class was definitely the hardest that I’ve ever taken, and the most satisifying to complete. The lectures are top notch. I had to watch most video at least twice to understand them. They grade very slowly, and offer no feedback on test results. Grading on tests is tough. I used Java exclusively, but I think the more popular industrial tools are in Python or R. If taking two classes, take it with an easy one. I’m keeping all my projects for personal future reference. Good luck, have fun.


    Semester:

    As you can see from the above comments, you should be prepared to work hard. I had taken lots of machine learning MOOCs in the past, and so thought I was well prepared for this class (also I have a strong mathematics background). It still took a surprising amount of work. Don’t try to reinvent the wheel - I took far more time than I needed to doing that. It’s an excellent class, and you’ll learn quite a lot. And it looks like there is a sequel course coming, on reinforcement learning. :-)


    Semester:

    I didn’t enjoy the course (I seem to be a minority!). The material was interesting, but it was mostly what I found on my own. The lectures didn’t really go in depth; they seemed to be more of a summary of what you needed to know, then go look it up. I utilized many outside resources for this (there are excellent resources out there). So, overall, it didn’t really feel like a course, more like a reference. Looking things up that you know are on a video is hard to do, though. Office hours were inconsistent, too, and it was really hard to get my questions answered (I used stackexchange often to look things up). Since the class was so vague, I felt like I was guessing at what concepts I needed to know. I’m for independent learning, but it doesn’t make sense to me in the context of a class with deadlines. I’m not done (at the time of this writing), so we’ll see how the remaining projects and final exam goes.


    Semester:

    The course is decent. The assignments are easy but time consuming. Prior class on ML like the one by Andrew Ng on coursera helped a lot. The lectures in the course didn’t go in depth, so outside resources or participation in discussion forums will be required. Professors and TAs are active on Piazza and you usually get your queries resolved in short time. The assignemts are roughly at the intervals of 2-3 weeks. I used to take a 2 week break after submitting one assignment and work 30-35 hours in the last week (sleepless weekend). Overall I feel it’s an easy course if you already have a background in ML. Doing the course on coursera (completely: submitting the assignments and solving the quizzes) before taking this course with help a lot. Midterm was conceptual. You do not need to memorize facts which you can look up on the net to be successful in this course. Instead you should be able to understand the materials, which may demand watching few video lectures more than once. For the exams, watching the lectures throughly and understanding the materials should be enough.


    Semester:

    Lectures are fun but not even close to the only thing that’s necessary to do the assignments. Assignments are very frustrating, and take many hours to do. The TAs who grade all of the assignments are incredibly inconsistent and generally unhelpful. An A isn’t difficult to get since the curve is so heavy but the class as a whole is extremely frustrating.


    Semester:

    I really have mixed feelings about this class. True, the interaction of the two professors during the lectures is fun to watch but in the end I found it boring. The lectures take so long to get to the point, they are quite shallow and we never see an application of the algorithms (I thought it was a strong point of the Andrew Ng’s lectures). The assignments are painfully long and the grading is so frustratingly inconsistent. Most of the time a assignment requires to solve twice the same problem for no other reason than to take up your time. There is so much material covered that we learn everything to a very shallow level and the math that everybody seems to be scared about is never used during the assignments nor during the exams (which makes the math requirements quite low I think). This being said, I have learned so much during this class and that makes a very effective foundational class for the rest of the master. If the Machine learning specialization is the one you want, start by this class! I would even add that I would not have succeeded in the interview process I just went through without this class experience.


    Semester:

    I wanted to like this class more than I actually did. It was okay, but after reading stuff here I was expecting more :) The lectures are fun, and Charles is very involved. It seems like he believes very much in the teaching style of burying people and then standing by as they dig themselves out while providing little hints to help. Its a fine strategy, and it does force the students to learn themselves with effort. As to the assignments, there were parts of them that I really enjoyed, but mostly they were just a lot of work to do. The parts that I enjoyed were where I had a flash of inspiration and was able to come up with applciations of the problems to solve things that I found cool, but without those flashes just meant that you are spending hours and hours thinking about random datasets that aren’t really that exciting. The assignments are very open ended, and they basically just say ‘Answer all of the questions that you can think of about [something]’, but do note that there are specific requirements that you are graded against, you just don’t get to see them in advance. This didn’t impact me very much, but I know that others were annoyed that they lost points for something that wasn’t specifically called out as a requirement. The TAs went through bursts of being responsive, but then we wouldnt hear much for weeks. Oh, and the peer review system that they set up was worthless. They said it was optional, but then mandated that you could only get answers from TAs about your grading through the peer review system (so much for optional), and the peer feedback came too late to help with anything.


    Semester:

    This is a difficult (time-consuming) but worthwhile course. The assignments can be annoying since they are relatively open-ended with no rubric. As such you’re pretty much have to try to answer as many questions as you can as concisely as you can. The exams focus heavily on ideas and concepts, but this does not mean the material is light on the details! In order to perform well I believe you will have to understand the material in some depth.

    On the assignments, they are a huge time sink, and I would recommend choosing the smallest possible problem to answer. Be prepared to run through assignments multiple times to contribute very little to your actual assignment writing. On the tooling side, I ended up using R, Python, Java and MATLAB. I would say the best idea is to be comfortable on many different platforms, and pick the one which you feel will solve the problem the easiest. It is a matter of choosing the best tool for the situation. With that in mind I think that it is essential to at least know a little bit of Java for assignment 2 using the ABAGAIL library, since MIMIC algorithm is not really implemented anywhere else. (MIMIC is based on an algorithm which is the subject of Charles’ research). Be prepared for learning curve on the tools that you will use, because at least for me I ended up trying many different tools for my assignments, before settling on one.

    Overall, I have enjoyed the course and have learnt a lot.


    Semester:

    Great course, but I took it without prior ML background and without meeting prerequisite skills in statistics and linear algebra. Predictably, that made this course extremely challenging and time-consuming. The course description is very clear about needing either those skills, or time to learn them along the way, and they’re not kidding. I also had to spend a lot of extra time getting up to speed with the Python libraries for data science, such as numpy and matplotlib. With a full-time job and family, there’s no way I could have taken another course on top of this one unless I had those prerequisite skills already in the bag. Still, I made it, so you can too.


    Semester:

    Very engaging. I learned not only about machine learning, but how to think about machine learning. The assignments are very open ended, so open ended that it began to hurt my head on how I should proceed to do my assignments, I wanted them to be good, but at the same time reasonable to solve. (In retrospect I would go with making easier problems rather than flashier, more intricate problems). Basically, this was an excellent way to learn how to implement a machine learning problem in the practical sense. If the assignments are the practical side of ML, then the exams were the thereotical side. The midterm was hard, I couldn’t even finish the whole test, this is expected so it is generously curved, they are also very lenient with grading it, so move fast on the midterm. I just finished the final and didn’t find it to be as difficult as the midterm. I enjoyed both tests. And although the implementations of the algorithms were not required to be done for the course, the algorithms were given in class and left to the student to implement himself if he wanted to. I was not too fond of this at first, but realized that I learned more about the behavior of data and machine learning algorithms by seeing how they worked in a practical sense. If one wants to learn more indepth about how algorithms should be implemented look at the Coursera. com course on Machine Learning, which I also highly recommend. I am excited for the new reinforcement course taught by the same professors in the Fall. Its good to know Java and Python for this class. As I am sure the TA were quite backed up this semester, I was not happy with the grading system. Points on assignments seem to be taken off without much justification.


    Semester:

    This course requires lots of additional learning in order to success in midtern, final, and to complete homework assignments.


    Semester:

    I did some preparation ahead of this course including watching class videos and choosing datasets but this course was still a ton of work and it is designed to be like that. Assignments always went down to the wire and I found myself working non stop throughout the entire semester. On reflection, my knowledge and performance gain in this course reads like a tsunami - I started of with a poor first assignment and average mid-term to really nailing the later assignemnts and final. The peer review really helped here and the constant work contributed to some real learning interia. I almost dropped this subject before the W deadline but am really pleased I perservered. The open-ended nature of the assignements I believe is deliberate, I needed to experience the tools to be able to understand the problems given and that is where a lot of my learning occurred. I spent a lot of time agonizing over the choice of tools. Ultimately I just selected R, despite not having any experience in this package, and just ran with it. I used the recommended java packages for the rest and just immesered myself in those.


    Semester:

    This course does require a dedicated amount of time. In hindsight, I probably would have tried to get a head start on all 4 assignments within the first month. the last section of the course felt very rushed- as going from assignment to preparing for the final left very little margin of time. It probably would have been easier to just polish up the assignments before submitting by the due date. The midterm and final are really difficult, in the sense that you study a very broad area and are tested on being able to synthesize details, so it’s probably a good idea to use the quizes and problem sets as practice. this course was definitely a strong introduction to the feild, after taking this class you will have good general knowledge of techniques and when to apply them. This is a great course to take if you are interested in Machine Learning. There is a bit of disorganization, as it feels that the TA’s are trying out new methods, so anticipate variation in grading. I am sure that this will improve with continued iterations, as the online delivery methods improve.


    Semester:

    Not a difficult class, but it demands dedication. Pay attention to the assignments, I would sugest starting work on first assignment 2 weeks in advance, just because you’ll have to understand how things are working, after that you can probably start working on assignments a few days in advance. Unless you are advanced in R or Python (by advanced, I mean ADVANCED), use Weka for the first assignment, use ABAGAIL in the second one, Weka again for the third, for the fourth assignment you’ll figure out what to use. Pay attention to the assignment requirements too. Don’t waste your time trying to understand the math, you don’t need to, and probably you won’t be able to anyways. Just watch the videos, take notes, watch the videos again and then watch you tube videos on the topics you found interesting. Don’t memorize anything, it won’t help you in the exam, try understanding everything instead.


    Semester:

    Over all, I really enjoyed this class. Professors Isbell and Littman made the lectures very informative and entertaining. The amount of information and the rate at which you are exposed to it can be a bit overwhelming. I found the midterm and final to be challenging and long. The supplemental readings provided essential additional details for success on the exams.

    I agree with previous comments that all four assignments were unnecessarily long. Choosing good data sets is a must. I would recommend choosing data that you are either very familiar with or that can be easily understood and visualized (this would have helped me get a better understanding of what the algorithms were doing). I used Matlab to complete all but one assignment. I used Java on the other assignment b/c it was the only place I could find an implementation of MIMIC. I have no previous Java experience, but was able to cobble together enough of it to complete the assignment.


    Semester:

    This is a great class and I learned a ton. The lectures are highly entertaining. I enjoyed that they let you choose your own data and analysis toolsets, though it made it a bit harder to get help with problems on the forums sometimes. I’ve rated it as difficult, but its probably more fair to call it massively time consuming. The projects are long; for me it took a couple of weeks to complete each. To do over, I would get a jump start on the lectures before class begins, and get familiar with the toolsets, so i could start the first project early. The class would have been more enjoyable with a bit less workload, perhaps covering a bit less material. There were quite a few grading issues, and at times, things seemed a bit disorganized. But overall, an excellent class.


    Semester:

    Great class. It’s more on the application side than the theory side, which is not quite my preference, but allows the class to cover a very wide variety of algorithms. There’s a ton of work, so be very disciplined about time management. I also encourage the use of a stock dataset for your first assignment. You don’t want to be spend huge amounts of time wrangling your data into the proper format before you have a chance to see how some of the tools work.


    Semester:

    The lectures for this class are the high point. At least for me, they were a joy to watch over and over again, which really helped those concepts simmer in my head (which, in turn, really helped with the final). The exams were also really fun and reflected both the high caliber of intellect and the wicked sense of humor found in the videos. I watched the lectures through once before taking the class - however, in retrospect, I would have been better off picking some good datasets for the assignments. Don’t make my mistake and spend 20 hours during the course processing your music library into a dataset! Go into the course with 2-3 good datasets selected - datasets which are manageable enough that a neural net can do something meaningful with them. They link https://archive. ics. uci. edu/ml/datasets. html in the syllabus - you could also try http://mldata. org/ and https://bitly. com/bundles/bigmlcom/4. I used Weka, ABAGAIL, ABAGAIL and BURLAP respectively for the four assignments. Note that these required virtually no coding. They encourage you to do as little coding as possible for the assignments, and they are serious about this. Unfortunately, they had very specific grading criteria which they didn’t share in advance of the assignment submission, particularly for the first one. It also took an insane amount of time to turn around the assignments - I got back assignment 1 on the day assignment 2 or 3 was due. Because of this it took me some time to even understand what they were looking for in the papers. On the flip side, their final grades were quite forgiving, and if you had a good score on the final and the last assignment they erred on the side of giving you a higher mark. So don’t let the grading scare you away.


    Semester:

    This class is amazing but, challenging. If you have been out of college for an extended period of time (like myself), I would suggest starting off with something a bit easier. Make sure you do all the assignments and extra-credits as they take those into account if you are between grades. With that said though, I feel like a learned an incredible amount in this class and it really sparked my interest in neural networks. Overall, awesome class though!


    Semester:

    A week and a half after completing this class and I’m still digesting the final parts of it. The material covered in this case could fill 2 or 3 classes so be prepared for 2-3x the workload. The material isn’t hard on its face, the difficulty comes from how it all fits together. I had planned to use R for the entire course, but needed to do some work in Python for a few algorithms.


    Semester:

    Disclaimer: I’ve done the Andrew Ng machine learning MOOC and have a personal interest in machine learning, so 50-60% of the class was not new to me.

    That said, I found this class fairly easy. For both material I had seen and not seen before, Prof. Isbell and Prof. Littman did a great job of presenting the ideas, intuition, and some degree of mathematical formalism. If only my classes in undergrad were so entertaining! Maybe there were a few things that I didn’t know, such as algorithms and complexity, but nothing a little Googling couldn’t solve. The lecture videos take maybe 4 hours a week, with some pausing. What really kills the brain is some of the REALLY long and mathematical reading. My advice: skim, but don’t skip the reading. There’s a lot of interesting details, not to mention having a broad view of the field of machine learning is quite useful if you want to practice data science. So you have to be efficient. (Read: Data science != Machine learning).

    The tests were fair in my opinion. They did make me think hard about the properties of the methods we studied. But they are long. It’s a bit annoying to use the text entry methods on T-Square, especially when Piazza was way better for typesetting math.

    Probably as many people will say, the homeworks were incredibly time consuming. On average, the homeworks took me about 40 hours. This includes brainstorming ideas, programming and implementation of algorithms, collecting data, generating graphs and tables, and writing the report. I admit that I’m a pretty slow (bad?) coder, but using Python made it easier. On the other hand, Python has fewer resources and is slower than Java. But that’s the practical lesson of the homeworks: balancing speed of implemention, execution time, and effectiveness. Don’t make your homework needlessly complicated though, since your goal should be to master the concepts, not programming!

    The recommended book (by Tom Mitchell) was pretty accessible. It’s not a criticism of the class, but I thought many of the examples IN THE book were lame or otherwise uninteresting. On the other hand, the chapter introductions and especially summaries were a great review. I would recommend also checking out a few other BOOK s in addition.

    Last comment: Piazza is awesome, especially if you are active. I didn’t find Hipchat to be very useful since it was a bit too real-time and you couldn’t typeset math when you needed to explain equations or what not. I didn’t attend any of the office hours.


    Semester:

    VERY time-consuming and open-ended course but you learn a lot. I felt that this course was a bit too open-ended at times.

    The lectures are entertaining and informative.

    The assignments are based around performing a series of expiriments and then performing analysis on those expiriments. Neither the lectures nor the assignment instructions go into any real discussion on how to implement the expiriments, you are mostly on your own in that regard. You need to choose what tool or software package to use (WEKA, ABAGAIL, BURLAP, R, SciKit, etc. ) as well as what algorithms and parameters to use in many cases. You are given very little direction on how to perform the expiriments, so they typically take a great deal of time to setup. You are given zero points for implementing the actual expiriment, the grade is based entirely on your analysis of your results. That said, as long as you answer all the questions the assignment poses, the grading tended to be fair. Piazza is your friend here as other students are a good source for what direction to go or not to go for each assignment.

    The exams were also very open-ended and you aren’t given much direction on what to study.

    Overall if you do all of the assignments, and do more than just watch the lectures and read the book to study you should manage at least a B.


    Semester:

    This course is almost perfect and ‘almost’ just because perfect does not exist:) Lectures are amazing, detailed and engaging. The structure of the material presentation is what I consider as best - starting with the main idea(s) and presenting it in a simple (but not primitive) and memorable way and then diving into details (technical and rigourous) and then recaping what you’ve learnt. The level is very good and assignments allow you to make the course as difficult as you want. Some suggestions: To students - 1) follow the assignment rubric carefully, if it says do kurtosis analysis - do it (it’s actually not that optional as you might think). If you do a reasonable analysis following rubric fully, you can be almost sure you’ll get more than 90% and all the rest will depend on the amount and quality of your analysis. 2) Do all optional work you are given (reviewing assignments, problem sets, etc. ) It will help understand the material and get a better grade. 3) If you want to really succeed on the exams (like solving almost all problems) and it is your 1st ML course, then doing lectures and homework assignments most probably won’t be enough. Read the BOOK s and solve some additional problems from other sources. To Profs: 1) it would be great to make problem sets a little closer to the type of questions students will see on the exam (both questions and problems), I felt that they were slightly disconnected sometimes. 2) It would be better to provide more problems in each problem set (even if they are optional). 3) It would be good to see not only midterm exam explained by Profs, but also Final - it is a really important educational piece to know what you did right/wrong on the exam and why.


    Semester:

    Difficult but rewarding. There will be times especially at the beginning of the class when you will feel totally lost. But dont let go and you will see the results. Brush yup on statistics (I found intro to statistics on udacity to be especially helpful). Participate in Piazza and Hipchat and discuss topics with fellow classmates. A major part of the learning of this class is from peers. Do not try to go solo. The assignments are very open ended and gives a lot of room to be creative. Focus more on the analysis and why you are seeing the results instead of what. Grading is liberal as this is difficult course.


    Semester:

    This course was a lot of work, even after I had prepared considerably for it. The lectures were very theoretical and give very little advice for implementation of algorithms. It would have been helpful to have more resources on that available. Know Python, Java, R or matlab. I found the TA’s difficult to understand during office hours, although that partly could be attributed to poor sound quality. There were several plots they were looking for in each project that weren’t obivous until grading, although by the last one you can start to guess what they’re looking for. The exams were challenging. I do feel like I learned a lot, and somehow managed to get an A. The curve will be your friend. Choose data that is large enough to have some diversity but small enough that runtimes will stay at the level of several minutes for each implementation. [ 1000-10, 000 observations]


    Semester:

    The lecture videos were outstanding for the on-line course. The projects were very time-consuming, but helped me to learn the material much more thoroughly. Follow the clear instructions on each project and you’ll do well on them. My math skills are a bit rusty, so I had to go back and do some refreshers on it. Some of the advanced math concepts for the algorithms were challenging, but not essential to understanding how to use the algorithms. The class was very rewarding and I recommend it, but you should plan sufficient time to keep up with the workload. If you fall behind, you would have a difficult time recovering. One other thing that is crucial to the class is the selection of datasets you use for your assignments. Picking a simple dataset won’t let you contrast the algorithms, picking too large a dataset will make run-times for the projects extremely long. My recommendation is to find a good large dataset and pair the data down to something that runs in a reasonable time. Don’t use small datasets with less than 1000 records.


    Semester:

    This class can be math heavy however you can pass without the background in math ( I did ) but I don’t recommend it. The assignments are very time consuming because of the machine learning algorithms runtime. Each paper is around 10-15 pages and you can do endless experimentation on each part of it. Its a great course, and you will learn more than you thought possible in a semester.


    Semester:

    Incredible lectures that are super engaging as I’ve taken more classes I just appreciate these lectures way more. The projects take a lot of time, but really give you an idea of the machine learning landscape and how easy it is to apply practical machine learning data sets to problems. The statistics behind a lot of the learning techniques is pretty advanced, but not too hard to follow. Picking a dataset was super hard and I picked a couple bad ones that I later regretted. Don’t necessarily pick something you think would be cool to do machine learning on. Instead arbitrarily pick some large datasets that really let you explore the power of different algorithms. This class really gets you thinking about all the potential machine learning has and how easy it is to categorize some incredibly complex problems.


    Semester:

    I think this class can be informative and interesting. I say the delivery was a joke. Glossed over everything (and there is alot espcially if you don’t have a background in machine learning). A different delivery format, a little more indepth (even in just a few of the areas given that it’s alot of information) would make it a worthwhile course.


    Semester:

    I’m somewhat echoing what Victor Ma said, as my perspective is of someone coming in with a pretty strong background in math modeling and statistics as well as statistical programming and data analysis. The difficulty of this course is it covers a ton of material. It mostly glosses over regression and doesn’t address generalized linear models at all, nor does it go into any kind of graph analytics. There is exactly zero discussion of tools and applications. What you get is the kitchen sink of techniques for taking in data and gaining some understanding of it, as well as optimization and optimal control thrown in for good measure.

    The treatment of the math is frankly fairly superficial if you have a decent working intuition of probability and linear algebra. There isn’t much discussion of statistics and it would help to supplement what you get here with some outside reading about resampling, bootstrapping, cross-validation, and various loss functions. You need these to analyze the results you get. You don’t need to get deep in the weeds with proofs, but understand how and why they work and what you’re measuring.

    The biggest thing is don’t underestimate the assignments. Don’t get cute trying to build web scrapers or pull real-time data from APIs, doing all kinds of feature engineering. Being a data ninja is fun, but this isn’t the class for it. You’ll get zero extra credit for that. Pick something from the UCI repository that is ready to throw into a train function right away. 100% of the points you get are your analysis. Use well-tested library code on simple datasets and put your effort into visualizing and explaining the performance characteristics of each algorithm, because you need to run quite a few of them. Know what a complexity curve is, a learning curve, a confusion matrix, know what the tuning parameters are for each modeling package and know how and why performance changes when you tweak them. And know the performance measures! Be prepared to explain why you would use accuracy, precision, recall, area under the ROC curve, or whatever measure you use. It’s specific to the problem you’re trying to solve and this isn’t covered in lectures or in the required text, so do some outside study. The package documentation for modeling software usually explains these things pretty well and it isn’t complicated, but you’ll lose points if you just use straight defaults across the board and can’t justify why you chose the resampling technique, parameter tuning strategy, and performance measures you chose.


    Semester:

    Do not take it if you are not ready with the prerequisites. Found it imposible to understand some topics as I made that mistake. Also add scikit-learn as a prerequisite, if you are into python, or WEKA, if you are into java. Every assignment got harder. Given the chance would have dropped the course, but realised this only in March.