Whew! This course is something else. In a nutshell, you will learn a lot, cover many important topics - maybe too many given the time constraints, and will have to work your butt off to survive. Be prepared.
Qualification - this review is from an average guy. I am like the guy in idiocracy they sent up in the space probe. Just average in every way, that's me -right in the fleshy part of the gaussian. So if you are gifted or a genius, this review is not for you.
For those that do not want to read a very long review, the next section are the highlights.
Highlights and what to expect
What is the saying, "no pain, no gain"? AI 6601 is probably one of the most challenging classes I have ever taken. It's sink or swim. I am sitting between a B and a C. If I blow the final, we will see how low the curve goes.
Overall, even though I have completed the class with a B (most likely, but grades not out yet), I am not sure I would retake it. There are too many "WTF" moments where you have little direction and somehow need to figure it out without useful lecture and class material. From this point on while I am in this program, I am unlikely ever to take another class listed as 4+ difficulty on OMS central as an elective. The value proposition is just not there for me to spend 20-25+ hours a week on a class assignment. Once I reach the 15 hours a week threshold, there is a marginal utility leveling since I need to balance career, family, and personal interests. When you take this class, those other concerns get put on hold. The opinion of others will differ from my own, but make sure you have the time to commit to this class. When you start hitting 25+ hours a week on top of a full-time job, things become disruptive, and it starts to bleed into other aspects of your life. It is a great class, you will learn and grow a lot, but it is a ton of work and a lot of stress.
This course likes to rachet up the stress levels, and it never relents. Understanding the basics will not get you very far. You need to be able to reason from first principles; don't expect a nice stackover flow post to help you get thru it. Assignments and exam questions often require that you go further than the lectures, and even in some cases, the text can take you. Exam questions will add new twists and combinations you did not think of or understand, and the labs are rather intense.
The labs are "sink or swim," and ALL of them are difficult. Don't be lulled into thinking only the first two are tough. They are all tough, but the medians are pretty high. That is mostly because of the caliber of the students and not the relative difficulty of the assignments. A sampling of your classmates is pretty diverse and not just working professionals. There are those working on Ph.Ds in engineering, full-time students in the day program masters, and even professional data scientists taking this class. If you are like me, an IT geek trying to further their skill set, parts of the course may be a bit much to chew off. I felt I was over my head in some of the Bayesian and Gaussian stuff. Assigned readings for the labs were often too theoretical to make sense of, at least for me. I had to scour the internet looking for more palatable youtube videos and articles to understand the concepts. If you keep re-reading the articles and looking at formulas with strange symbols, they eventually start to make sense.
The Ga. Tech OMSC program is the Navy Seals of online graduate programs, and this course is like 'Underwater Demolition Training.'
You've been warned; proceed with caution. ;-)
The Details
If you are still reading, then here are the details...
Prerequisites
You will need solid stats and linear algebra, and then you may have an easier time in the latter half of the course. But if you are weak in those areas, then I recommend taking another course before this one or a refresher before the class starts. You will need to understand basic Linear Algebra operations like matrix multiplication, transpositions, broadcasting, and other LA concepts. You need to be comfortable with that stuff and be able to set up your equations using Python. For the neural network topic, understanding partial differential equations will help - there are exam questions that require it, but it is a tiny part of the course, and you can probably survive without it. This course will not teach you those techniques - you need to know them. I assume you already know how to program, particularly in Python. If you are new to Python but not programming in general and have experience in languages like C#, Java, C, etc. I think you should be fine. Understanding recursion is a must - two labs use it extensively.
This course is not a gentle introduction to anything. The text is mostly a YMMV - but makes a great addition to your collection since it is a great book. In my opinion, the book and lecture material is not that useful after the first two assignments and becomes increasingly disconnected from the projects as the class goes on. I found the book invaluable during the first part of the course - the min-max/alpha-beta pruning sections in the text are all you need. After the first two assignments, you will need to do independent research outside of the class materials and the text.
Piazza and TAs
The TAs are hand-tied but did the best they could. They cannot provide direct advice but can instead nudge you in the right direction. Some are great and others not so much. There were numerous times when a TA would cancel hours at the last minute or too many people showed up, and there was not enough time to get to your questions. If it were only once or twice, no big deal. But it was probably around 20-25% of the time that I did not get to answer my question or a TA canceled at the last minute. All that being said, the TAs were mostly pretty good and were very smart and helpful.
Piazza was a little more useful. The other class members (and some TAs) were quite accomodating on Piazza. For most of the labs, it was suggestions on Piazza that got me over the hump. As long as you did not paste code in Piazza, you could describe steps, and the instructors usually let it pass. They were not that strict at policing it, at least not that I could tell. So lots of good suggestions and helpful tips on Piazza.
But Piazza was also a source of noise and could be a little deflating. It was very frustrating when on Day 2 of an assignment, some students asked questions about the lab's final section, and I knew I was about ten days behind them. I often wondered how they got to the end of the assignment that quickly.
The Instructor - Dr. Ploetz
Dr. Ploetz was surprisingly involved in the class, more so than most instructors at Ga Tech - at least from my limited experience. He does hold office hours once a week and occasionally responds to posts. Dr. Ploetz is an interesting guy, obviously brilliant and helpful, and very approachable. For a class this large, you will mostly interact with the TAs for the "day-to-day", but he is around and active if you need him.
The Assignments
Project 1 - Game Search - fun lab, but many struggled due since debugging recursive processed can be tough.
Project 2 - Graph Search, Djikstra's, A* - good lab, and straight forward. But went on forever. Very long. Must budget time accordingly.
Project 3 - Bayesian Networks - neat lab. Actually a pretty good one, you learn how to build a network using a bayesian library.
Project 4 - Decision Trees - Uses recursion C4.5 algo to build tree. the first part is the hardest and gets easy after.
Project 5 - K-means clustering and Gaussian Mixture Models - This was so tough and I have no idea how we were expected to figure this out. This was one of the labs were they just thru us out there and let us drown. If you have a solid stats background, then this might be easier for you.
Project 6 - Hidden Markov Models and Viterbi Algorithm - kind of cool, but the first part is tricky. This was my favorite lab.
Getting started was the hardest part. I usually was in a fog for the first 3 or 4 days just trying to figure out how to get started on the assignments and what was expected.
Everyone's background and strengths differ, so what's challenging to one person may not correlate with another. That being said, the first two assignments were the most coding intensive and most students rank them as the most difficult. But that depends on you. Do you like to code? Are you comfortable with an editor and debugger? Good at recursive algorithms?
The next four assignments required more math and stats and less coding, but conceptually very challenging. Even the last assignment, which I believe is dropped in the summer, was well explained in the lectures and is probably the easiest of the six - but still has its challenges. Ironically, this was one of my favorites.
You can drop one assignment - for me that was assignment #5. I spent about 40 hours working on it and could not get it to pass Gradescope, even though local tests were passing. I fell asleep on my laptop on the eve of the due date. This was a low point for me. I went from A/B boderline to B/C borderline in one assignment. I also spent an amazing amount of time working on this and to basically just have to give up out of sheer exhaustion. It shook my confidence. Lab #5 was a tough one.
Gradescope for lab submissions is pretty awesome. All classes at Ga. Tech should move to this platform and utilize it the way it was in AI 6601.
Exams
Exam 1 - It's an open book, lecture material, take home with one week to complete. It is a nice format, but some pretty crazy questions that were tough to answer even with a book! When they give you a week, you will need a week. Some of the questions were too tricky, and the instructors need to do a better job of explaining many topics such as Bayesian Inference, Backpropagation, CSPs, and MDPs - the lectures on it are not that great.
The worst part of exam 1 were the endless revisions and clarifications. I could not keep up. I would finish a question, and then two days later, there would be a clarification or correction due to a mistake in the question. Exam 1 was awful.
The final was similar to the midterm in format but even more challenging and comprehensive. There were fewer clarifications, as the instructors were better prepared. Very difficult and long (I think 60 pages). Some questions seemed to push the boundaries of what was taught in the class, while others were direct applications of stuff from lectures and previous exams. It was exhausting.
Extra Credit - Who has time for this? During the course, there were Kaggle challenges and really intriguing thought questions, some of which you can earn extra credit. I wanted to do them, but there was absolutely no time for me. I spent all my time trying to finish assignments and catch up with readings and lectures. I never was able to spend time working on extra credit. Dr. Ploetz tried to add lots of extra credit opportunities on exams and labs.
Cheating
There were no class-wide cheating scandals in this course, at least any that were reported. The caliber of student in this class is pretty high and most tend to stay clear of any conversations that could be considered borderline appropriate. I think the course composition of students was pretty elite. Many dropped out around the first midterm, and the remaining students were rather remarkable as a whole. However, for those that breezed through labs way too quickly, I wondered if maybe they had a network of friends that were sharing assignments from previous semesters and/or working together. Not sure of this, but only a hunch based on the fact that it was so much more difficult for me. (This may just be me and my sour grapes attitude.)
Final Thoughts
My biggest critique is that there were too many times that the instructors could have provided a little more context but chose not to. Notable examples are the EM algos on lab #5 and the backpropogation
question on the exams. There were too many moments of utter confusion with nowhere to turn for an answer. The TAs held a walk-thru session at the start of each assignment, where they would step through the details. I found these mostly worthless since they would just read the instructions. I can read the instructions myself. It would have been better if they instead provided tips and pseudo-code for selected parts of the assignment.
I wanted to like this class, and I certainly learned a lot, but it has been an extraordinary amount of work and was very stressful at times. Stress is fine when you are in your 20s and a full-time student. But this class is not set up for someone in their 40s, working full-time with a family. I would recommend reconsidering this class if you fit the latter criteria. It is a mere elective, and does not count toward the ML specialty and overlaps with ML4T and ML. Any course that regularly requires 30+ hour weeks can put stress on your job, and your marriage. Think about weeks where you will spend 30-40 hours working on an assignment. Consider that carefully. Often I had to neglect professional and family responsibilities.
That being said, some just breezed through. Labs that took me 40+ hours took them maybe 10 hours. I suspect that many in the class are just that smart - bordering genius. There is also probably a little cheating, working in groups, having access to friends that took it last semester so you can review their assignments. I am sure all of that is going on. But unfortunately, I have no network, so I had to do it all on my own.
Ga Tech should consider splitting this class into two classes - AI 1 and AI 2. Same material, just spread out over two semesters. The book is around 1000 pages, and there were many topics that the class did not get a chance to explore. I think Ga Tech should consider this revision. You will be introduced to many different types of problems, and the techniques in this class can give you a leg up on a career demanding an innovative and broad background of expertise.
Many students probably prefer courses covering only the most marketable topics like Machine Learning or Deep Learning, or how to learn Spark/Hadoop. That is all fine, but a comprehensive course like AI can provide maturity to someone starting in their career. I make this statement as someone entering the latter half of their own career. I wish I took this class 15 years earlier. This class will widen and enhance your problem-solving toolbox by providing a conceptual framework for those situations that require a fresh perspective and full consideration of available techniques. Without this sort of training, one would be unable to recognize many of the problem types this course goes into and thus unable to solve many classes of problems optimally, if it at all. This course requires that one reasons from first-principles, rather than the, let me google for the answer on stack overflow approach so common in industry today.
The class is supposed to be curved, and I am hoping for a nice one. But given the very high medians and high caliber of students, it may not be as much as one would expect given a class of this difficulty.
Good luck.