• High School
  • You don't have any recent items yet.
  • You don't have any courses yet.
  • You don't have any books yet.
  • You don't have any Studylists yet.
  • Information

Assignment1 - search

Artificial intelligence (cs 6601), georgia institute of technology.

Student

Students also viewed

  • L3-38 - 2023 Spring
  • L2-3 - Summary Artificial Intelligence
  • Lesson 1. Search - lecture notes
  • Chapter 06 - Game Search
  • Class Schedule Artificial Intelligence - CS-6601-O01

Related documents

  • CS6603 Syllabus Fall 2022 Omscs-1
  • Multidirectional Search
  • Bi Directional A Star
  • Bi Directional A Star with Additive Approx Bounds
  • Bi Directional A Star - Slides
  • Adversarial Search Algorithm explained - Chapter 1, 2 and 3

Preview text

6601 – assignment 1: search, instructor: thad starner ta: daniel kohlsdorf, titilayo craig, weiren wang weirenwang@gatech, linkedin/in/weirenwang, github/jeffreyweirenwang.

Assignment 3: Describe a state space in which iterative deepening search performs much worse than depth-­‐first search (for example, O(n2) vs O(n)) Suppose that there is a tree to search, the tree has only one branch. Depth-­‐first search could reach goal after searching the single branch search in the tree. The complexity is O(n). The iterative searching needs to search 1+2+3+...+n which is, O(n! ). The other situation is a tree has b branches. The answer is in leftist branch. DFS take O(n) to find. IDS take O(b !!! ).

Assignment 3 : Prove each of the following statements, or give a

counterexample: a. Breadth first search is a special case of uniform-cost search. True. When all step costs are the same, uniform-­‐cost search is similar to breadth-­‐first search, except that the latter stops as soon as it generates a goal, whereas uniform-­‐cost search examines all the nodes at the goal's depth to see if one has a lower cost; thus uniform-­‐cost search does strictly more work by expanding nodes at depth d unnecessarily. b. Depth first search is a special case of best-first tree search.

True. When the evaluation function in best-­‐first search is proportional to the depth of the state which searching. c. Uniform-cost search is a special case of A* search. True. A* is estimated by function f(n) = g(n) + h(n). While h(n) = 0 for all states, the A* algorithm is the same as the uniform algorithm.

Queues: Figure 3 in your textbook shows the uniform cost search algorithm. Argue in terms of computational complexity why a priority queue such as a fibonacci heap is superior to searching the max in an unordered queue or to sorting. HINT: you have to use both INSERT and POP for your argument. You do not need to prove your result but construct a clear argument. Fibonacci heap actual insert complexity is O(1), pop min/max complexity is O(n), decrease key(or increase) for updating the queue is O(n). In terms of amortized cost, the insert complexity is O(1), pop min/max complexity is O(log n), and decrease key is O(1). The properties for searching is inserting several nodes and popping out max/min nodes every time. In the initial state, the queue is empty and then insert one source node. During the searching or expanding the graph, inserting the nodes and pop out the max/min from the queue. The overall complexity is O(nlog n + e) for Fibonacci heap is better than the overall complexity of min Min heap which is O(nlog n + elog n). BDD: If you search large spaces, keeping track of nodes you visited (explored queue in the algorithm) already might be expensive in terms of memory. How could you use binary decision diagrams (BDDs) to keep track of visited nodes with the goal to save memory? How do you you have to represent states?. The BDD is generally achieving by merge isomorphic subgraphs and eliminate

Bidirectional Search

The bidirectional search is complete and optimal. The core idea of bidirectional search is let the start and end to search simultaneously. We keep track of the frontier of each node. When two frontier has intersections, the point could be reached both by start and end. Thus start and end could reach each other. In the three city problems, we define a start end tuple structure, [start, end]. Then based on this, we use [A, B], [B, C], [C , A] to be the start point and end point to test.

Tridirectional Search

The Tridirectional search is complete and optimal. The core idea of Tridirecional search is very similar to bidirectional search. Instead of start from two points, we start from three points this time. Keep tracking tree frontiers, once they find the interaction with each other. Then stop. Because both of the three start place can reach to the intersection place. And we are using breadth first search, the solution is complete and optimal. For the three cities problem, the Tridirectional Search is the best fit.

From the data, we can find that the tridirectional search is the best search compared to bidirectional search and uniformdirectional search. Tridirectional search is better than bidirectional search in this case because the three places searched outside simultaneously. Once their frontier intersect, the place is the optimal choice. For bidirectional search, we need to run the bidirectional search 3 times so that we could find paths to connect three cities. These three paths connect each two cities. we then select two paths to be the optimal choice. For Uniform cost search,it is the worst in this case both in time and space complexity. We need to run this algorithm at three times, at least two times to find the optimal path. At the same time, Uniform cost search is really time consuming because of its time complexity.

Criteria Breadth-­‐First Uniform Cost Bidirectional Tridirectional Complete YES YES YES YES Optimal YES YES YES YES Time O(𝑏! ) O(𝑏 !!!∗/! ) O(𝑏 !/! ) O(𝑏 !/! ) Space O(𝑏! ) O(𝑏 !!!∗/! ) O(𝑏 !/! ) O(𝑏 !/! ) b is the braching factor; d is depth of the shallowest situation; l is the depth limit.

  • Multiple Choice

Course : Artificial Intelligence (CS 6601)

University : georgia institute of technology, this is a preview.

Access to all documents

Get Unlimited Downloads

Improve your grades

Get 30 days of free Premium

Share your documents to unlock

cs 6601 assignment 1 github

Why is this page out of focus?

Kevin Wang

Welcome to my shared space of projects in engineering, startups, and personal interests.

OMSCS Review

CS 6601 - Artificial Intelligence

CS 6601 - Artificial Intelligence

Artificial Intelligence covers relevant and modern approaches to modelling, imaging, and optimization. There is a large focus on implementing algorithms from scratch, and then applying some portions on practical examples. Many of the concepts are at a lower level than you might expect, too, including tasks to optimize runtime. There is probably a higher number of topics in this single course than any other I've taken, though the depth within each varies.

* I took this course Fall 2019, contents may have changed since then

🏢 Structure

  • Six assignments - 65% (of the final grade)
  • Midterm Exam - 15%
  • Final Exam - 20%

Assignments

Six assignments are assigned and due every two weeks, and consist of a problem set where you implement functions to pass an autograder, as well as output additional images for a report.

  • Swap Isolation - Minimax decision making to beat an agent in a board game.
  • Search - Working up from UCS to efficient tri-directional search
  • Bayes Nets - Implementing Bayesian sampling methods
  • Decision Trees and Forests - Implementing the classifier and leaf splits from scratch
  • Expectation Maximization - Clustering methods applied to image segmentation
  • Hidden Markov Models - Demonstration of time series data classification

These are actually uniquely interesting (and long!), covering topics from assignments, but also those from lectures. You typically solve smaller puzzles by hand using methods to demonstrate knowledge. It is open book + open internet and you have the week to submit.

This includes topics like optimization algorithms, constraint satisfaction, probability and Bayes' Theorem (more in depth), machine learning implementations (neural net, SVM, regularization), time series classification, and Markov decision processes.

Yes, this course is time consuming 🙂

📖 Assignment 1 - Swap Isolation

Minimax is a decision-based strategy to minimize the worst-case loss.

https://personal-site-kwang.s3.amazonaws.com/omscs/cs6601/Untitled.png

The tree above represents a two-player game where each player alternates taking turns. The value at each node is our evaluation for the board, and each connection is an action we can choose to take. The first level, 0 (max), is our turn, so we want to maximize the next situation. then, it is the other player's turn, so we assume they try to minimize our value.

This continues for as deep as we can go, given the computational resources we have.

Alpha-Beta Pruning is an optimization which decreases the number of nodes that need to be valuated, while still guaranteeing the same minimax solution.

Whenever the maximum score that the minimizing player (the "beta" player) is assured of becomes less than the minimum score that the maximizing player (the "alpha" player) is assured of (beta < alpha), the maximizing player can prune further descendants of this node, as they will never be reached in the actual play

https://personal-site-kwang.s3.amazonaws.com/omscs/cs6601/Untitled%201.png

We apply minimax and alpha-beta pruning to the game, "Swap Isolation", to beat various players, of increasing difficulty.

This game takes place on a 7x7 grid, with two players that can move with chess queen-like moves. When they move, the space they previously occupied is blocked, so you cannot move through it or move to it again. There is a special move, the swap, where you can swap spaces with the other piece, but this time you can move through the blocked spaces. A swap then has a cooldown of 1 move.

https://personal-site-kwang.s3.amazonaws.com/omscs/cs6601/Untitled%202.png

The game ends when a player can no longer make any moves, and they lose.

We apply minimax to beat the other player, including competing agents across other students.

The game tree quickly expands after a few moves, and we get 1 second to make a decision, so to receive full marks, you need to be clever with your implementation.

📖 Assignment 2 - Search

A quick recap on search. Uniform cost search (UCS) expands nodes based on the lowest cost path. We are guaranteed to find the optimal path from start to goal.

A* search achieves better performance by using heuristics. If we use an admissible heuristic, we are guaranteed to find an optimal solution. An admissible heuristic is one that never overestimates the cost to the goal.

We can further reduce the number of expanded nodes while guaranteeing an optimal solution by using bi-directional search. With this technique, we expand from both the start and the goal, and continue until they meet in the middle. Let's compare these with a visualization.

https://personal-site-kwang.s3.amazonaws.com/omscs/cs6601/Untitled%203.png

On the left, the large blue circle represents the expansion area of UCS from start, the smaller yellow circles are if we used bi-direction USC. The overall area is significantly reduced. The white oval is A*, which did not need to expand as far left due to its heuristic.

On the right, an improved bi-directional search utilizing heuristics is used, further reducing the search space to find an optimal path.

You need to be careful about the stopping condition though, since it does not necessarily occur on the first node that the two searches meet at. Instead, it is at the point where the the cost of the connecting path is less than the sum of the cost for the two nodes on the frontier. With this condition, we can guarantee that any more connected paths will be more expensive than the existing one.

We can go even further with tri-directional search. In this case, if our goal is to return any valid path going through all three, the heuristic from start A to goals B, C, for a new node becomes the minimum estimate between B and C.

For this assignment, we implement all of these searches and apply them to the infamous Romania graph, as well as an actual map of Atlanta!

https://personal-site-kwang.s3.amazonaws.com/omscs/cs6601/Untitled%204.png

📖 Assignment 3 - Bayes Nets

For this course, we use Bayes Theorem for inference on Bayes Nets and distribution sampling.

Bayes Theorem: P ( A ∣ B ) = P ( B ∣ A ) P ( A ) P ( B ) P(A|B)=\frac{P(B|A)P(A)}{P(B)}

In a Bayes Net, events are represented as nodes, and connections show dependence

https://personal-site-kwang.s3.amazonaws.com/omscs/cs6601/Untitled%205.png

Here, A and B are independent events

P ( A B ) = P ( A ) P ( B ) P(AB)=P(A)P(B) and P ( A ∣ B ) = P ( A ) P(A|B)=P(A)

Let's introduce event C, which influences both events A and B

https://personal-site-kwang.s3.amazonaws.com/omscs/cs6601/Untitled%206.png

Now, A and B are conditionally independent. Knowing the outcome of event A actually influences our estimate of event B, so P ( A ∣ B )   ≠ P ( A ) P(A|B)\ \neq P(A) . You can derive this using total probability and Bayes Rule. As an intuitive explanation, let's say A and B are two independent but accurate cancer diagnosis tests. If we know don't know if a patient has cancer (event C), knowing the result to test A informs our estimate of cancer, which in turn informs our estimate to the test B diagnosis result.

https://personal-site-kwang.s3.amazonaws.com/omscs/cs6601/Untitled%207.png

This represents conditional dependence. A and B are independent events that both influence C. Here, C is the confounding cause, and in the absence of information about event C, A and B are still independent. So, P ( A ∣ B ) = P ( A ) P(A|B) = P(A) but P ( A ∣ B , C ) ≠ P ( A ∣ C ) P(A|B, C) \neq P(A|C) . Here's the best example of this.

https://personal-site-kwang.s3.amazonaws.com/omscs/cs6601/Untitled%208.png

Now, we can take this knowledge and apply it to any Bayes net configuration!

https://personal-site-kwang.s3.amazonaws.com/omscs/cs6601/Untitled%209.png

This assignment involves properly modeling a Bayes Net as an input to pgmpy , a Python library that assists in Bayesian inference. It uses variable elimination to solve for the posterior.

https://personal-site-kwang.s3.amazonaws.com/omscs/cs6601/Untitled%2010.png

We also implement Gibbs Sampling to estimate for a more complicated network.

📖 Assignment 4 - Decision Trees and Forests

Decision trees are often the best performing learner for tabular data. That is, after some clever optimizations on the vanilla implementation. See: XGBoost and LightGBM

Because of the ample resources, I won't touch much on decision trees and forests, as this assignment simply involved their implementation.

📖 Assignment 5 - Expectation Maximization

K-Means Clustering is an unsupervised (does not require labels) technique which groups data points into 'k' clusters, each with a computed center, where point belongs to the cluster with the nearest center. Its aim is to group similar data points together and identify underlying patterns.

The algorithm is guaranteed to converge, but there also exists local optima, so restarting with changed initial locations may be necessary to find the optimal clustering.

Let's address some problems of k-means: what if some of the clusters are overlapping? Or if a cluster has a non-circular shape? Gaussian Mixture Models (GMM) ****cluster as Gaussians, and assign a probability distribution for the center, as well as having a covariance distribution which describes their shape. This allows us to assign data to a cluster by some probability.

A GMM consists of different Gaussian components, and the joint distribution is described by the weighted average of the individual components

https://personal-site-kwang.s3.amazonaws.com/omscs/cs6601/Untitled%2011.png

Expectation-Maximization (EM) is the iterative algorithm which optimizes the parameters of the GMM. For more information on GMMs and EM, refer to this excellent video !

We implement a vectorized version of k-means clustering and apply it to images. The gif below shows the clusters from k = 2 → 6 over the original image, on the left. In the end, the grey, yellow, two shades of blue, and two shades of red are found to be the average colors with the least error across all pixels.

We also implement expectation maximization to utilize GMMS for this same problem, which results in a similar output image.

This same technique can be applied to 3d images, as shown below. Pretty cool!

Objects were still segmented by color, but additional coloring replaced the original shade to provide more contrast.

📖 Assignment 6 - Hidden Markov Models

A Markov chain is a sequence of events with transitions based on certain probabilities. The probability of the next even occurring only depends on the current state. A Hidden Markov Model (HMM) is a Markov chain with unobservable states, X, as well as observable states Y, which depend on X. The goal is to estimate state X based on observed outcomes Y.

https://personal-site-kwang.s3.amazonaws.com/omscs/cs6601/Untitled%2012.png

The above is a Hidden Markov Model of the weather guessing game. In this situation, Alice walks, shops, or cleans, solely based on the weather with the shown probabilities. Unfortunately her friend Bob is stuck in a basement and cannot directly observe the weather, but Alice tells Bob the activity she did each day. Bob knows the general weather behavior, and what Alice likes to do (the events and transition probabilities are known), so she tries to guess the weather based on Bob's activities.

The Viterbi algorithm is a method for finding the most likely sequence of hidden states.

We implement various methods to estimate the word from ASL videos based on the hand position sequences.

Our model takes the sequence of inputs X and Y from a single hand and guesses the original word. This is modeled by three hidden states for every single word, representing the start, middle, and end of the sequence.

https://personal-site-kwang.s3.amazonaws.com/omscs/cs6601/Untitled%2013.png

We are given training data, which consists of the original word and its sequence. Given this information, we can model each state for each word by their sequence statistics and apply this model to estimate the base word for sequences we have not seen.

✏️ Exams + Other Topics

I believe it's worth briefly mentioning course topics that were not on the homework assignments but were still covered.

Genetic algorithms are a global optimization technique, best known as a method to solve NP-Hard problems like the travelling salesman problem . An interesting application, for which we had to solve a mini-version of, is multiprocessor scheduling. When you have many tasks with a complicated dependence, solving for the ideal configuration is an NP-Hard problem.

Given certain constraints, you can apply mutations and crossovers to optimize for the schedule

https://personal-site-kwang.s3.amazonaws.com/omscs/cs6601/Untitled%2014.png

Constraint Satisfaction Problems have a world in which a set of variables can be assigned to a value, as well as certain constraints on those values. Map coloring is a popular example of this, where you need to assign a certain color to each country, but no adjacent areas can have the same color.

This also applies to many graph-based puzzles like Sudoku, and these are typically solved using a search variation. This search is often optimized based on domain-specific heuristics, such as the Minimum Remaining Value heuristic, which chooses the variable with the least possible values given the current configuration.

This article provides a cool visualization on the backtracking search tree for sudoku.

Dynamic Time Warping is a time-series classification technique which measures similarity between two sequences that can vary in speed. Naively, it can be implemented by dynamic programming as shown below.

https://personal-site-kwang.s3.amazonaws.com/omscs/cs6601/Untitled%2015.png

⏩ Next Steps

I certainly feel more confident with the overall themes, strategies, and even the math. It was beneficial to implement some topics which are not as popular, such as GMMs and AB pruning, as it widens our base compared to seeing similar topics over and over. You are definitely equipped to start understanding research papers within many of these topics.

cs 6601 assignment 1 github

CS 6476 - Computer Vision

A comprehensive review of the content, assignments, and deliverables for the course, including object detection, face detection, and image transformations

cs 6601 assignment 1 github

CS 7642 - Reinforcement Learning

A comprehensive review of the content, assignments, and deliverables for the course, including theory, simulations, and multi-agent learning.

cs 6601 assignment 1 github

Melon - Food Delivery

The improved food delivery service I tried to scale, but ultimately shut down after a few months of operations.

Navigation Menu

Search code, repositories, users, issues, pull requests..., provide feedback.

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly.

To see all available qualifiers, see our documentation .

  • Notifications You must be signed in to change notification settings

Artificial Intelligence

allenworthley/CS6601

Folders and files.

  • Python 52.6%
  • Jupyter Notebook 44.4%

CS-6601 - Artificial Intelligence

Ai generated title.

Overall, this is a well-designed course. I manage to get a solid A (>97%). Here is my advice:

Prepare for heavy self-learning. Lectures are only introductory. The majority of the class relies on self-learning.

Assignments - start early if you are not familiar with AI or numpy.

Exams - plan enough time to work on it (3 days for midterm and 4 days for final). They are long and not easy.

This was a great course and one of my favorites in the program. I am specializing in computing systems, but took this course to get some exposure to AI/ML and managed to get an A.

The course is challenging and there is quite a bit of material covered, but most of it is interesting and I found the projects enjoyable. It is apparent that Thad cares a great deal about the quality of his course.

Most of the grade weight is in the projects, which are fairly straightforward provided that you start early. My lowest grades were in the first two projects. The exams in this course are unique in that you do quite a bit of learning during the test, which takes place over the period of a week.

The final is my biggest complaint about the course. I found it much more challenging than the midterm and I believe this was due to the lack of relevance to the projects / lectures. In contrast, the midterm felt like a logical extension of the topics we had covered. There were also many errors that had to be corrected after its release and this is frustrating to encounter while taking the exam. The exam length was twice as long as the midterm, but the time to take the test was the same. The length is not a huge issue given that it is twice the material, but there were no real deliverables in the prior week. I think a better approach would be to dedicate the final two weeks to the final, rather than giving 3 weeks for project 6 (which only took a few days).

Overall I highly recommend the course for anyone interested in a survey of AI topics.

I took this class to get some exposure to ML/AI and to see if I’m interested in pursuing more classes in the domain. I have a non-CS background with no experience in ML/AI, no numpy experience, and calc/linear algebra/probility/stats from 10 years ago and mostly forgetten.

I tracked my time spent in the class using a focus timer app and averaged 15 hours/week with a few heavy weeks of 20-30 hours for the search assignment (1st), gaussian mixture models assignment (5th), and final exam. I read select chapters from the book up until decision trees but stopped after that as I lost interest in ML. During Bayes nets I got busy with work so couldn’t spend enough time on it and thus ended up with a shallow understanding of it and following modules which are heavy on probability.

Assignments:

  • Search (33 hours) - This one isn’t too bad if you taken GA or done graph problems on leetcode before. I spent over 8 hours trying to get a final point in Bidirectional A* search which I couldn’t get in the end, so around 25 hours if I called it quits at 99 points.
  • Game playing (10 hours) - Supposedly this is the hardest assignment, but we may have lucked out with an easy variant this semester. It helps to submit early and often as there’s some randomness in beating the best agent, e.g. some people beat it with vanilla alpha-beta pruning while others couldn’t with iterative deepening.
  • Bayes net (12 hours) - I only completed half this assignment due to work commitments so ended up dropping it.
  • Decision trees (20 hours) - Relatively straightforward.
  • Gaussian mixture models (26 hours) - If you’re not good with linear algebra or numpy then this project was brutal. I spent more time trying to vectorize matrix operations using numpy than on the actual algorithms.
  • Hidden markov models (13 hours) - Relatively straightforward.

Tips for exams:

  • You can implement algorithms in Python/excel/etc. to check your work / solve the problems. This helped me score in the 90s for the final. Had I done this for the midterms, I could have scored high 80s.
  • The practice exams and challenge questions are good preparation for the exams

The median scores for the assignments and exams are quite high and there’s little to no curve. To guarantee an A, you need to get above 90% and above 80% for a B.

Overall, I enjoyed the first half much more than the second half. Knowing what I know now about the material, I probably wouldn’t take this course, stick with computing systems courses, and just wait for new courses to get added (revamped/new databases, programming languages, quantum computing, etc.).

The Spring 2022 CS6601 is a mixed bag. The class content is good and the enjoyable. But I did not like the learning environment set by the teaching staff (compared with some other class I have taken in OMSCS)

The content of the course is well designed to help you understand the fundamental concept of AI.

The assignments are challenging enough to force you read the supplemental materials, which was rewarding and worth the time.

The environment of the class is, hostile. My impression is that Dr. Starner seemed to care “catching plagiarism” than “actually helping students solving the problem”. In one of the his RARE office hours that I attended, he spent 30 min on warning students of the punishment for plagiarism and only 15 min on very very very high level brief review on the midterm chapters. IMO, not helpful. Not to mention that you are not to allowed to look for help and read pseudocode in online resources. Students on Ed are willing to help each other, and I had a lot great discussion with them. But more than too often, everyone was afraid of sharing too much detail to be tagged as “plagiarism”. This definitely needs to be improved.

TAs rarely answered questions on Ed except those closely-related to the assignment. Not sure if they are are not allowed to (remember the no pseudo code, no plagiarism policy? ) or as someone else mentioned, they don’t have the knowledge to do so.

Most of the coding assignment is not really “CS coding” I would say. Rather, knowledge on statistics and linear algebra are more useful for assignment.

The open book midterm and final exams are the WORST part of the course. They are not hard.(I got >90 on both) But the exams are riddled with typos, grammar mistakes, ambiguous problem definition, etc. I spent more time on figuring out the “correct” interpretation of the problem than on actually solving the problem in both exam. Imagine dealing with “ambiguous problem” and “possible trick question” at the same time! Sure you can ask on Ed for clarification, but good luck on any TA caring to respond, or worse, waiting half of the final week only to get a more misleading hint from TA.

CS-6601 is a great introduction class to AI.

  • It does not have a useless group project. So you can spend more time learning than dealing with people.

Lecture videos:

  • The professor uses simple examples to explain AI concepts in the lecture videos, making this class friendly to people who do not have relevant CS/AI backgrounds like myself.
  • Total 6 assignments. One assignment is due every other week.
  • The assignments are not easy but not too challenging either. You will be guided step by step.
  • I didn’t fully understand every part after watching the videos. Working on assignments was a big help to further digest what I learned.
  • The first assignment (Search) was the most difficult one in my opinion.
  • On average, I spent 10 hours on each assignment.

Midterm & Final:

  • Open-book midterm and final - you will have a week to complete them.
  • As long as you understand the concepts, the questions are simple but don’t wait until the due date to start.
  • The exams are well designed to test the basic understanding of concepts by using actual examples - additionally, you will be provided with partial answers to check whether you are on the right track.
  • A good class that demands time and effort, but is not too challenging.
  • It does not require any specific pre-requisite.
  • This class does not demand advanced programming skills in Python. For math, as long as you learned math at college and have not forgotten all of it, you will be fine. If you don’t even know how to multiply two 2-D matrices or don’t understand basic probability, you might have complaints in every class.

This course is a mixed bag of enjoyment, stress, and chaos all in one. Its a great course where you learn so much and are consistently challenged but it is ruthless. I thought the assignments were mostly fun but A5 was very challenging. The exams are not to be underestimated. You can assume the average for most assignments will be around 100, so the exams seem to be the limiting factor on your grades. I did not do well on the midterm bc it was right after A3 was due and i was working on A3 till sunday night so i didn’t study for the midterm and my grade reflected that. For the final i put in all my effort and the week of i probably spent around 40 hours on it, which is on the very high end to be fair but I really wanted an A since this was my last class to graduate. Useful tips i have are:

  • Try to get a study group for exam prep, we did this for the final and i learnt some stuff i probably would not have otherwise
  • Don’t underestimate the amount of time the midterm/final will take. The midterm was more difficult imo, though the final was double the size but felt fair besides a couple of mishaps w/ communication from the TA’s.
  • If you can save your drop for A6 i’d recommend that so you have 1 less thing to do while prepping for your final

Cons of the class:

  • The TA’s sometimes dont have a deep enough knowledge to help you when stuck. I’ve had varying experiences with the various TA’s. Some are great, some have kinda just moved on from your questions in OH when you’re stuck.
  • Communication in the class can be improved upon, there were a couple mishaps in spring w/ the Final and a extension on a assignment that was announced after the deadline. Overall nothing too bad but was annoying since you’re already stressed out
  • The stress of your grade till the very end of the class. If you do well on the midterm you don’t have to worry about this unless you’re really aiming for an A, but if you’re fighting for a B it can be quite scary since you have no idea what the curve will be till the end of the semester

Overall fantastic course. The good parts: Assignments were challenging and crystalized the learnings. The not so good parts: The video lectures could be better as they didn’t explain a lot well. Needed to supplement with readings from the textbooks and YouTube videos. This made midterms and finals a lot harder and time-consuming than they should be.

Despite these shortcomings, the time invested in this course pays dividends. Tips: Start early on assignments and even earlier on exams. Do all the extra credit. Shoot for 100s in the assignments. You will need all of these to average out with the hard midterm and final.

I settled for a B because I didn’t think I could get a 69 on the final. Feel really bad about it too!

No idea why everyone says the 1st two assignments are the hardest. The 2nd assignment was the easiest BY FAR. The final is the hardest part of the class. I only took 1 day off work but I should have taken a few more AND I should have started it sooner.

Assignments

Search – 94 score, 35 hours over 2 weeks

Game Playing – 95 score, 5 hours over 2 weeks

Bayes Net – 71 score, 25 hours over 2 weeks (had family in town)

Decision Trees – 100 score, 18 hours over 2 weeks (ML4T really helped here)

Gaussian Mixture Models – 100 score, 20 hours over 2 weeks

HMM – 100 score, 10 hours over 2 weeks

Midterm – 79 score. I choked on the Bayes Net question. No surprise considering my assignment score.

Final – Estimated score of 48. I stopped trying once I realized a 69 was unlikely. The final was a great deal more difficult than the midterm. I spent ~12 hours on the final and probably needed another 20 hours to get my desired score for an A but alas, here I am. The final 3 assignments had very little to do with the final exam which was surprising to me.

Some of the final exam questions, I simply had no idea what they were asking. There was a q-learning question which, initially, I thought I would do well on because of ML4T but I was confused and just gave up.

The ML and HMM questions were above and beyond the assignments. Updating weights in the ML question and forward/backward was new to me but briefly mentioned in lecture. Had I understood all the mathematical syntax or read an additional 75 pages from the book then maybe I could have gotten it but ran out of time. I also had no idea on the constraint satisfaction problem, even though I did well on this topic for the midterm, and gave up when the tip was “read another 30 pages from book”.

Please read https://omscentral.com/review/-Mg2meE3KVrVBVS4yIDu and DON’T TAKE THIS course if your answer to any of the categories under “The type of student I think would struggle” is YES. IMHO, for a very marginal learning, this course has an insane amount of suffering and slogging that you’ll have to go through. Video lectures are a joke, reading material is difficult to digest, assignments are out of context and unnecessarily complex, and exams are largely based on topics that are covered with 1-2 minutes video lectures at best or are out of context just like the assignments. I am honestly surprised that there are so many positive reviews for this course. I am sure that you’ll be able to find much better courses on AI outside that are probably free; in fact, that’s what you’ll end up doing anyways: watching YouTube videos to finish assignments, because none of the provided material helps. I don’t even want to talk about that exams that are 40-60 pages and (very proudly) are announced to take 13-15 hours to complete!

Take this course only if you are familiar with AI concepts previously and are very good with linear algebra / probability (I had forgotten most of it). Otherwise, kiss your life goodbye in the semester you are taking this.

My background: OMSA student 7th course, c-track (other course is RL). Undergrad in CS

I thought this was a really well designed course that goes over a whole wack of areas in AI. Basically begins with your classical AI problems of search and game playing then transitions to some ML topics such as GMM and random forests before getting into HMMs and some more theoretic parts of AI (planning, logic, etc.). The course makes use of AIMA (AI textbook) which is a really great reference throughout the course because admittingly some of the lectures are a little bare. The open book midterm and final exam are very well put together (kudos to the designers), and do a good (but fair!) job of testing material throughout the course. I really liked the format of riddle/thinking problems in this format. The assignments are also very well done, I sort of wish there was one more on RL at the end because I am a big believer in learning by doing, but I guess there is an entire RL course for that.

Like most of the online program, this course is what you make of it, if you only spend time working on the assignments then your time commitment will be a little lumpy. However there is tons of content throughout the course and textbook if you really want to get into the weeds and keep busy.

EDIT: I can imagine there will be students that will write scathing reviews over the final exam for this term, these are overblown. Yes there were some mix-ups but the amount of complaining that went on Slack afterwards is ridiculous, if you knew what you were doing in the class you were ok on the exam regardless of these.

Background: CS Degree from a top school, working as a software engineer. Doubled up on this class with Network Science. I’m writing this review from the perspective of having a strong CS background and having taking an AI course in undergrad.

Really well structured class with clear goals and deadlines for each week. If you have a strong CS background and experience with Python, the class is much easier from a workload and difficulty perspective than the other reviews are saying. Around 80% of the material covered should not be new material and is just slightly more in-depth than you should have already seen, and the lectures do a great job of covering the material. The book is great for the first half of the semester, and ok for the second half. Definitely worth reading, but got a little math heavy and theoretical for my taste in the later chapters.

I found in the weeks that I wasn’t actively working on an assignment, the classwork was pretty light. Around 2 hours to read the assigned reading and take notes, and around 2 hours to go through the lecture videos. I found reading the book, then following it up with the lectures was helpful to confirm my understanding of the material as the lectures are much simpler. The lectures are easy to get through and honestly fun to watch.

In the weeks I was actively working on an assignment, the hours spent in the class went up depending on the assignment. Like everyone else, I found the search assignment to be the most difficult and time consuming. However, it’s an assignment worth doing as the median was quite low and it’s fairly straightforward to get an ‘A’ on. The rest of the assignments I found to be about the same level of difficulty with varying amounts of code. All told, I averaged about 10 hours per assignment on the last five assignments, and spent roughly 20 hours on search, and have been at or above the median on all assignments.

The midterm was lengthy but fairly straightforward if you took your time and made sure you understood the question. I spent about 10 hours on it and was well above the median. Haven’t taken the final yet, but assuming it will be similar.

Overall, I really enjoyed the class and I feel it has strengthened both my theoretical understanding and my practical knowledge of many AI topics. I would highly recommend this class, and if you have a similar background it’s not as arduous as it’s made out to be. If this is your first foray into the material, it will be more time consuming, but still worth taking.

It’s not easy class and requires lots of time devoted, but the course is very well structured to ensure you obtain knowledge after each assignment. Also, you build your python skills while doing assignments. It gives you directions.

7th class (AI4R, HPCA, IIS, GIOS, SAD, iHPC)

I was a bit nervous for this course given some of the other reviews here, and in the end I think the difficulty of this course has been overblown–at least for where it was in Fall 2021. The TLDR is that it is not an easy course, but not that hard if you have experience programming and are willing to put time in.

For context, this was my third OMSCS course (after KBAI and HCI), and I got my undergrad in CS. I’ve been working as a software engineer for 3+ years now. I actually took an AI undergrad course in uni, and it covered many of the same topics, albeit more superficially and this was a deeper dive than I had studied AI in the past. This was the only course I took this semester. I work full time and have a decently busy side hustle on top of that. I’m finishing the semester with a very solid A.

assignments If anything, this course is uneven. Some of the assignments will completely drain you, and you will need as much time as you can to complete them. Others you will finish rather quickly (8 hours or less) and then you will have a whole week with not much to do. In a fall/spring semester, there are 6 assignments and your final grade will account for 5 best ones. A quick overview:

  • assignment 1 - search Many cite this as one of the more difficult assignments, although if you have programmed UCS/Dijkstra before, it’s not so bad, just a lot of code to write. The last few points are far more difficult to achieve compared to the first 80-90 points, which is actually a pretty fair way of setting a problem up, in my opinion. I got 96% in one week and had to stop due to competing work obligations. It’s too bad, the last part of this assignment was really interesting.
  • assignment 2 - game playing For me, this was the doozy assignment. I spent every free hour I could (and then some hours I was supposed to be working) trying to get the last 10% of credit, and finally managed it in literally the 11th hour. Because gradescope submissions are limited and randomized, you can only test your code against…your code. So if it’s flawed, the only ways to figure out the issues require seriously meticulous debugging.
  • assignment 3 - bayes nets Pretty easy if you have any previous familiarity with probability or stats. Just requires carefully following the instructions.
  • assignment 4 - decision trees Similar to above, but even less required math knowledge. I finished this in 4 weekday evenings–the fastest assignment for me.
  • assignment 5 - expectation maximization I think this assignment is dropped in the summer semester and I can see why. It kind of comes out of nowhere (lecture videos barely mention the concepts) and mostly requires translating complex mathematical notation into code…specifically optimized Numpy code. You cannot pass with naive solutions, so you basically spend a lot of time digging through Numpy posts on stack overflow and playing code golf. I did about 20% of it and then decided to skip it, since I was out of town for most of the duration of the assignment anyway.
  • assignment 6 - hidden Markov models Time series prediction is a personal interest of mine, so I really enjoyed this. It was medium difficulty, and required some careful coding, but I finished it within a week.

extra credit There is extra credit for it assignment and it varies by a lot. Sometimes it is trying to optimize code from the assignment to perform even better (sometimes competitively against other classmates). Sometimes it is basically a whole new assignment. Sometimes it’s a really quick True/False quiz. I only did the quizzes, and managed to score a few extra points there. I might have done the other extra credit tasks if I wasn’t doing this course on top of so many other things in my life, they seemed fun and honestly where you earn the most grit as an AI programmer.

exams The exams appear to have been shortened significantly from previous semesters, but were still long. The midterm was 22 pages and the final was 41. It’s a fairly even balance between multiple choice and short answer questions, and each question has several pages of setting up the problem space. Some of them are pretty complex. I spent the entire week on each of them, carefully going over them 3 times each and did fairly well. The midterm was easier, in my opinion, whereas the final required more going back through the book because it covered less content discussed directly in lecture videos. In one case they linked a whole new paper for us to read (30 pages) that we were told was “invaluable” to solving the problem. I found it useless, but was annoyed that they expected us to read an entirely new piece of content during an exam. Besides that, nothing on the exams felt like it came out of nowhere.

instruction Despite previous comments, I actually thought Piazza had pretty decent activity and got helpful info from there regularly. I never went to office hours, but they were hosted regularly as well. Ploetz, the instructor, was semi present, and the TAs were pretty good at responding on Piazza.

book There is also some confusion in previous reviews about the required text. I rented the 4th edition of the book and bought the 3rd just in case. It was unnecessary to do this. The 4th is definitely a more relevant edition. If you are looking to buy and keep the book: get the 4th. Because I had bought the 3rd (it’s available in paperback and way cheaper) I used it a lot more to highlight while reading and it was adequate. The book in this course is a must, no matter which edition you get. There is a lot of content not covered in videos you will need to read on your own for assignments and exams.

Some final thoughts:

  • Taking this course during the summer seems like a bad move, because there is no midterm. Spring/Fall, the midterm and final are 15% and 20% of your grade, respectively. The midterm will give you a really good prep for the final, and in my case, it padded my grade nicely so I didn’t have to stress about the final so much.
  • From what I can tell, other official instructors of the course are not so present in the past. It’s unclear if they have responded to the criticism this semester, or Ploetz and his TAs are just better suited, but maybe try to take the course with him if you can plan it that way and that stuff matters to you.
  • The lecture content is useful in some places, but you will need more. I think they need to update the lecture videos. They’re a bit all over the place in quality, and don’t give you what you need for the assignments and exams which is…all the course is.
  • You don’t need to be “good” at math for this class. Comfort with mathematical notation will help you, but deciphering equations and re-writing them as code is different than actually doing math (imo). There is some probability, but that was about the extent of it.
  • I said 15 hours a week of work on this class as a general average. Some weeks it takes 20-30. Some weeks it only takes 8. Some weeks it is nothing. It just varies.
  • It seemed like some of the gradescope tests were kind of broken, claiming to be more challenging than they actually were. That may have made some of these assignments easier than in the past.
  • This class seems like it would be very difficult for someone new to programming. I probably would have had multiple breakdowns if I were taking this several years back.

I took 3 classes this semester: AI, NSec, and ML. This is the only class that I’ll bother leaving a review because it’s impressed me both positively and negatively. My previous classes are CN, IIS, GA, SDP, and DL.

Disclaimer: This review is from the perspective of a tryhard. I wanted to maximize learning, so I did (almost) everything optional and sought to maximize the numerical grade.

I signed up for this course literally in the last minute on free-for-all day, not because it was hard to get into, but because I couldn’t get into my top choice for the 3rd course. I had no intentions of taking this course but since I signed up for it I treated it like any other course that I take.

A day after I’d joined the course, Assignment 1 was released. I can say for sure that this was the most challenging assignment that I’ve encountered in the entire program. Not that challenging if you just want a passing grade because it’s easy to get most partial points. However, if you are like me and feel uncomfortable not achieving 100/100 then prepare to spend dozens of hours in this assignment. I ended up getting 100/100 within 4 days but in this period of time I barely thought of anything else besides how to optimize search algorithms. I estimate 50 hours of work to achieve 100/100 on Gradescope. If you have a weak background, it will be impossible for you to achieve 100 within the 2 weeks allotted for this assignment. I saw messages on Slack from students that were trying to debug their implementation using print statements and, at that point, I felt sorry for them and didn’t think they could survive this course.

After assignment 1, unfortunately, everything went downhill. The subsequent assignments didn’t pose the same level of challenge and some had buggy autograder implementation. Assignment 2, for example, is considered “the other hard assignment” in this course. However, since the teaching staff modifies the problem slightly each semester to mitigate plagiarism, the tests used to evaluate the implementations become broken. It was possible to pass the challenge milestone (a bot with a hidden evaluation function created by none other than Peter Norvig) in this assignment with the vanilla implementation of the minimax algorithm used for the first part due to randomness. Likewise, even with a fairly optimized algorithm, there was no guarantee that we could beat even the first milestone. After assignment 2 my excitement began to wane.

The other assignments are not worth mentioning here since they were too easy. Even though one of the assignments would be optional, I completed every one of them and every extra-credit opportunity starting from A3. None of them posed a level of challenge comparable with assignment 1, which was disappointing as I felt I wasn’t learning enough.

The midterm was, disappointingly, a joke. One or two weeks prior to the release of the exam, the teaching staff released a practice exam that was the official midterm from Spring 2020. I solved this practice exam and felt that it was a lot of work, but the right amount for a week-long open-book exam. The midterm that we had, though, was nowhere nearly as difficult as the practice exam. Most of the questions could be completely solved by simply finding an online solver and using it directly. Yes, that was not allowed, but during my time in this program I came to realize that students would cheat in this type of situation without remorse or shame. As a consequence, we had an exam that was too easy considering how easy was to cheat on it. Plus, this exam only tested superficial knowledge of the subjects and in my opinion could not gauge student’s mastery of the topics appropriately. The median score for the on-campus cohort was 95/100.

The class progressed on a similar tone until the end.

I’ll proceed by briefly listing pros and cons.

  • Instructor was active on Piazza and even held 1:1 sessions with online students for those who were interested
  • Assignment 1 was good and I felt challenged
  • Extra-credit opportunities were good and I wish I had attempted the opportunities for A1 and A2
  • Challenge questions were a nice way to practice the concepts
  • Lectures by Thad Starner and Peter Norvig were OK
  • Grading was either broken or too easy for assignments 2-6.
  • Midterm was too easy as discussed above
  • Final’s official answers had too many errors. Thankfully, the TAs released the answers before the grade release, otherwise they’d see a slew of regrade requests coming their way. The worst part here was not the amount of errors, which was not insignificant, but the attitude of some (not all) TAs. Instead of acknowledging the mistakes and thanking students for pointing them out, they would get defensive and write things like “that will also be accepted because we didn’t specify how to do X”. I observed this embarrassing behavior in P1 (game playing), P8 (pattern recognition through time), and P9 (logic and planning). I’m listing them here explicitly in the hopes that the instructor or head TA will read this review, read those threads, notice how embarrassing it is to have TAs behave egotistically like that, and do something about it.
  • Students are passing this course without basic understanding of the concepts. In the final’s answers threads, it was clear that some students didn’t know basic stuff like how DFS work, or how to calculate conditional probability correctly. These students, sorry to say, have no business passing this course, but they probably will due to lenient grading. Still, I’m not sure they even understand how Bayes Nets or Hidden Markov Models work when they are struggling with much more fundamental concepts.
  • Piazza was pretty quiet during the semester. Students only posted on assignment-related threads. Even the professor remarked that the challenging questions threads had no activity. It’s odd and disappointing for a class of at least 600 online + 200 on-campus students (minus the droppers) to see this level of activity.
  • Lectures by Sebastian Thrun, except the last one on planning under uncertainty, were lackluster.
  • I don’t see the point of having one of the assignments being optional. Students only do something for credit, as evidenced by the Piazza activity, and the class has become so easy to pass that there’s no need to have this 5 out of 6 rule anymore.

Overall, I don’t think this course was difficult. But if you’re into learning, there’s a very high learning ceiling and you definitely can learn a lot if you go above and beyond. However, I think if that’s the case you will certainly be in the minority. Students are disinterested and TAs also don’t seem that interested or knowledgeable about the content. Evidence of that is that I was the ONLY student who attempted and completed the A6 extra-credit opportunity this term (really, literally the only student), which was a quite interesting application of HMMs.

I loved this course and I’d highly recommend it. I agree with another review that I’d happily take this course repeatedly to really dig into the material.

It was my 7th in the program. I have been a software engineer for years, so writing code and debugging is just another day to me. Also, having previously taken ML4T and AI4R made the “hard projects” in this class pretty easy.

The hardest thing for me was turning a mathematical expression into code (specifically value iteration and the viterbi algorithm). I have some survivor bias, but I think I spent less than 3 full 8 hour days on 3 of the projects while a couple took another day. I think one took me a day.

Dr. Ploetz is fantastic. One of a few professors that has real office hours (both as a group and individual breakouts). He’s helpful and understanding, which I never once got from … some other instructors.

I spent a lot of time relearning probability and am absolutely glad I did.

The exams are pretty time consuming because there really is a ton to do. They are fair and aren’t necessarily hard since you have open book/lecture/notes. If your memory is better than mine, you won’t have to go back through lectures & reread the book. We apparently had the shortest ever this semester and both still took me the whole week (while working FT) to complete.

If you’re looking to take two classes and have taken ML4T and AI4R already, it is 100% doable as long as you find a way to manage your time on exam weeks.

Perspective for this review:

  • This was my 1st OMSCS course
  • I’ve been out of collage for 9yrs
  • My undergrad is in Mechanical Engineering

I thought this class was really great, only wish it was longer because there was so much to these chapters that it was hard to keep up with all the material. It would be great to take this 2-3 times over to really let it sink in, because although i did good on the assignments/tests, i still feel shaky if i was given one of these problems on my own without all the instructions for how to setup a model.

Here is a pro/con list that is very much tailored towards my knowledge and experience so take it with a grain of salt.

  • really interesting topics so it was easy to stay engaged and not be board of feel like you are working on something that you will never use
  • not sure if all classes are setup with gradescope and unittests for your assignments but i thought this was awesome for this class. My experience in the past has been that you do your best on the hw and hand it in, but in most cases there are errors. With the unittest provided on local as well as gradescope i was able to keep working on these not only to get full credit but also to not stop till i really got the concept.
  • books was good (as much as i could keep up with reading it) but also there were a lot of resources online to help
  • TAs were great help during office hours and on piazza
  • love coding in python and this was all in python. Even learned some new stuff around numpy (that dam einsum…)
  • ton of hours spent on this. I work full time so it was really challenging to spend 20-30hrs / week on this
  • not sure how in person lectures were, but online lecture weren’t as helpful as i thought they were going to be. Sadly 30-50% of the time i learn concepts better from other resources about the topics.
  • the last bullet goes along with this one, in that, the jump from lectures to assignments was very steep! Especially on the 1st assignment. You’ll be learning for the first time about search algorithms then next thing you know you have to do multi-directional searches with landmarks.
  • there were challenge questions posted that i was not able to keep up with (also goes to say the workload was high for me on this one)

All in all, really great class!

My background is a CS major working as a software engineer at a FAANG.

This was my third class in the OMSCS program, my first summer course, and I took it alone while working full time.

A hard class with very interesting projects. My favorite class I have taken so far.

This class is mostly project based, something I personally enjoyed very much.

The projects were very neatly paired with the lectures but their difficulty were not equal. The first two projects I found much harder than the rest, maybe 2x more effort to complete.

An interesting addition was the limit of how often/many times one could submit to Gradescope. With the limited submissions you can not rely on Gradescope to figure out if you are on the right track.

I feel this should be a given, but practical knowledge of debugging is crucial for this course. The algorithms get pretty complex, and I had quite a few nasty “off by one” bugs that required careful stepping to find.

I was concerned by the number of students who did not understand how to attach a debugger to their script, and I don’t know how they could have completed the projects without it.

I found the textbook extremely helpful for solving some of the projects. Personally I think the lectures purposefully leave out some pseudocode/equations in order to promote reading the textbook. Don’t sleep on it. If you finished a lecture and still felt a bit confused on some parts, read its section in the textbook.

I did happen to find some errors in the textbook and wasted some time trying to understand stuff that didn’t make sense. There is an errata page that I highly recommend adding to if you find any issues.

There was only one exam, the final, since I took this course during the summer. It was an open-book take home exam that covered all the modules.

The exam covers everything from the lectures and I felt was very fair . We were given a week to complete it, and it probably took me 20-30 hours to complete.

I took this course over the summer, and I felt very rushed to complete everything. It was a challenge, and I honestly would not recommend it during the summer.

Overall a great class, and proof of the quality of the OMSCS program. I highly recommend everyone to take this course as you are sure to learn something.

As the majority of the people here I consider this course hard. But also I think it’s extremely overrated. 4.12 (as of august 2021)? That’s ridiculous.

My background : My original education was in engineering, so I don’t have a Computer science background, nor am I good at math. On the other hand I have almost 10 years of experience working in the industry as a Test automation engineer.

Labs : I personally don’t understand why people consider the first two labs as the hardest in the course, I didn’t have lots of issues with them. First one search - if you have a CS background or experience working in the IT industry for a year or more - it shouldn’t be an issue for you. The majority of the search algos you asked to implement are part of the pa. Second one (game playing) is pretty straightforward as well, pseudo code is available in the book, so the only thing you need to do is to implement it. No big deal at all. I struggled the most with the third lab and this is where I understood why this class is considered “hard”. Last lab I did (decision trees) was no big deal as well. On average I spent 20 hours on my first lab, 10 on second, approx 30-40 on third and approx 20 on fourth

Why this class is “hard” : That’s pretty simple, complexity of this class comes out of 3 things:

  • Videos are extremely outdated and most of the time are unrelated to what you’re expected to do in the labs or in the final exam
  • TAs DO NOT EXIST IN THIS CLASS. I never met TAs that were more unhelpful than these. 99% of the time the answer they provide is something like: It’s described in the book. And when you ask where exactly in the book it is described they may answer something like: It’s described in multiple chapters(true story). Oh, and it happens IF TAs answer at all. So if you’re not feeling like teaching yourself pretty complex concepts - do not attempt taking this class. Luckily it’s not my first class in the program otherwise I would’ve been highly demotivated.
  • Final exam covers topics that are not covered by lectures at all. At least a couple of questions were completely unrelated.

So in order to expect an A in this class you’re expected to be able to self-learn or already possess required knowledge, be good at math and coding. If you want to get a B you should be either good at math or at coding and that should be sufficient in my opinion.

This is an interesting class with a good textbook and generally well thought out projects. The difficulty and workload reviews I see on this site were way above what I experienced. I rarely spent more than 10 hours a week on the class, and didn’t even attempt any of the extra credit and I ended with a grade in the mid 90s. You’ll need to be comfortable converting pseudocode from the textbook to code (Python) and allocate enough time on the homework, but none of the coding in this class is too difficult. Give yourself 5+ days for the take home final - you could do it in a day but the time to check work and not rush helps a lot, especially considering how important the final exam is to your grade…

The main issue with this class is its grading structure and point allocation for assignments:

  • Everyone scoring above the median gets an A
  • Some extra credit is limited to top N scores on the assignment, so not everyone can get it.
  • Assignments are designed so that getting 100% is straightforward given enough time (other than the first two). This means that the final exam is basically all that matters, since the median on the assignments is often 100%.

What would have been better would be to make some of the extra credit mandatory as part of the assignment, to make the assignments harder so that the median score wouldn’t be 100% all the time. The assignments would be more meaningful and there would be less pressure on the final exam.

Recommend this class for some historical context on AI and broad survey of the field. The textbook is good although heavy on math-y notation. Assignments and exams are interesting. Grading scheme is weird but not a dealbreaker.

Overall, I very much enjoyed this course. I found most of the lectures to be insightful and the book is one that I’ll be keeping on my shelf permanently.

The assignments were by far the best part of the class. Every assignment was the right amount of challenging and it always felt great to figure out that last piece to get you full points on GS. The first assignment was the most time consuming by a large amount. The other 4 assignments (5 in non-summer semesters) are significantly less challenging, but still engaging and interesting overall.

The final exam has a chance to hit you blindsided if you haven’t been reading the book and keeping up with lectures. There were some challenging sections for sure, but nothing insurmountable. A couple of the questions were poorly worded and caused many to lose points unnecessarily, but the TAs seemed to do their best to rectify that through either clarifications or by just giving points for certain questions.

My only complaint about the class overall would be with the TAs. They were generally not responsive (at least in my section of Piazza) or they would only respond to the “low hanging fruit” questions and leave many other questions unanswered. Also, if they said something would be done by a certain date, you could almost guarantee that they wouldn’t meet that date. Especially towards the end of the class, it seemed like something happened that caused them to become very disorganized and non-responsive.

Overall, this is a great class. I recommend taking it regardless, but if it is one of your core classes, maybe get a couple of other difficult classes under your belt first (like CV or CP) before taking this one.

This is not an easy class but if you come prepared you will learn a lot.

Instead of repeating what others have said earlier, I’ll just throw in a few takeaways based on my own experience:

My background is STEM (non-CS) and had no previous experience in AI. This is my 5th class in OMSCS. I do have a full time job and a family. If I can survive this everyone else can.

The first project (search) is the most demanding that I have witnessed so far in the entire program. You may feel exhausted and frustrated - but don’t give up! You can give up this project (which most likely won’t affect your final grade), but don’t quit the class as the rest of projects get significantly easier.

I agree with the previous post(s) that final exam is difficult and seems to be largely unrelated to projects, but I take it as a necessary step to cover the other chapters in the AIMA book. I mean, come on, they did give us practice exams with solutions prior to the final. If you go through those you’ll do just fine as the style of the questions is practically the same.

I attended zero OH and had very few interactions with the TA’s, but it did not prevent me from learning a great amount. In summary, I believe if you actually take the time and go through the lectures, the book, the Challenge questions posted on Piazza and all the assignments (including the bonus projects), you’ll not be disappointed by the amount of AI that you ultimately would learn.

I like this class. Period.

I have nothing to add about the projects that are not in the other posts so I am going to skip right into the final. In my opinion the content of the final should be what the instructor wants the students to really take away and learn from the course. I do not think that is the case here. The topics were mostly not relevant to any of the projects or covered as key concepts in the lectures or book. I thought the calculus came out of left field..just make a t/f fill in the blank proctored test and save me the week of stress over poorly worded irrelevant word problems. When is the Joyner version of this class coming out?

TL;DR I liked the course a lot and learned a ton, just don’t expect to get your hand held.

My background: I have a BS and MS, but both in engineering fields. This is my second course in the program, with my first being Knowledge Based AI.

Lectures: I really didn’t get much from the lecture. You can find a lot better content on youtube from a UC Berkeley AI course and Bert Huang (links at the end). Some people also mentioned Statquest, but I personally never watched any of those videos.

Book: I used the third version as that is what I had access to and everything was fine (link below). I found the book pretty helpful in most cases and if I didn’t feel obligated to watch the lectures, I would have just rather read the book. Book > Lectures in my opinion.

Assignments: This is what I liked most about the course! The assignments were the right amount of challenging to stimulate learning. Why take a class if you know the assignments are super easy to implement. In terms of difficulty, the assignment related to search, assignment 1 or 2 depending on the semester, is the hardest, but definitely doable. All the other assignments including: game playing, bayes nets, hidden markov models, and decision trees were reasonable.

One thing I saw a lot was people complaining about pseudocode not being clear or simply the lack of pseudocode (tri-directional search), so if you can only implement code if there is the accompanying pseudocode, you might struggle initially. Personally, I don’t really think you learn too much when pseudocode is provided because nearly everyone who can program can implement it. I think true learning happens when you are at least somewhat challenged and put outside your comfort zone, i.e. when you don’t have pseudocode.

In the end, I think the assignments are great and honestly, I kind of liked having to workout a bug in my code by solving the problem by hand because it definitely reinforced the concepts. At least that was the case for search, game playing, and variable elimination.

Final (no midterm since it is summer): The final was pretty fair and straightforward except for a handful of statements, which were ultimately clarified on piazza. I think the primary challenge for this exam was its length. Sitting at 40+ pages, it definitely takes some time, but nothing was out of the blue. For the people complaining about calculus being on the final, you are a graduate student in computer science, what did you expect? If you practice the provided sample test, understand the programming assignments, and are comfortable with most of the challenge problems you’ll be fine. I work fulltime and had time to go through the exam three times to check my work and ultimately get ~94/100.

Instructors/TAs: Not relevant as they really did nothing. All the grading is automated, so they really only occasionally clarify things on piazza. This is basically a self run course.

Conclusion: I learned a lot about the methods used in AI from the assignments and even the final exam. If you want to learn a decent amount and get practice implementing some cool algorithms, I’d suggest taking the class. If you are looking for an easy class for some reason and just want to get by without providing much effort, this course might be more challenging. If you decide to take the course, just go in expecting things will be challenging and try not to give up at the first barrier.

Links: UC Berkeley: https://www.youtube.com/channel/UCB4_W1V-KfwpTLxH9jG1_iA/videos

Bert Huang: https://www.youtube.com/c/berty38/playlists

3rd Edition Textbook: https://cs.calvin.edu/courses/cs/344/kvlinden/resources/AIMA-3rd-edition.pdf

I took the course in Spring 2021. This class was good to gain breadth knowledge and exposure to AI topics and get the hands dirty in the implementation of some classic algorithms, however, it didn’t ignite any passion in me to pursue these topics further, so bring your motivation from home. I loved the first 2 topics (Game Play and Search) but I found the remaining lectures and assignments very dry and uninspiring. I am rating this course as “Neutral” because of this. As for workload, is quite heavy, so start the assignments as soon as they are released or even earlier, and assume that your weekends are going to be busy for the entire semester.

  • 1: Start early, if possible as soon as the course starts. It’s difficult but once you get comfortable with the codebase it gets easy and you can start reading and getting ideas about how to improve your agent from the book.
  • 2: Start early and have at least the basic search algorithms implemented before the official start. Conceptually easier than A1 but however tests are more strict and is more difficult to get a full score.
  • 3: Not so much code involved, but I would say that it is harder than A1 and A2. Lots of theoretical contents, insufficient local tests and just 5 Gradescope submissions. My local tests were failing but somehow got 100 in GS.
  • 4: I am glad I took ML4T before this class since the way it explains DT/RF in this course is over-complicated. Plus, the assignment write-up is unnecessarily convoluted. It was easy, and I finished it surprisingly fast, but it’s a very uninspiring way to teach something as fun and useful as DT and RF is.
  • 5: The worst, horribly designed project. This reminded me of the worst assignments in my undergraduate, since the entire difficulty of the assignment lies in Numpy vectorization instead of in the topic that is being studied.
  • 6: My assignments average was already high enough and since I was behind in the lectures I used the time for studying for the final. Still, I attempted it and got around ~35 in couple of sittings, so it looked easy.

Exams: They are doable, so don’t panic. Yeah, they are 30 something pages long, but most of them are instructions and it’s open book. There is a fair amount of partial credit, just be careful and double-check your work, I got 90 in the midterm and 88 in the final and surprisingly found these assignments the less stressful of all of them. There are like 6-7 topics per exam, corresponding to each of the lectures examined, I did a topics or two every day during the week after work and then in the weekend finished the remaining ones. The correction thread in Piazza was not as bad as some people makes it to be, at least in my offering.

Lectures: My favorites were the ones from Peter Norvig and Thad Starner (although I found the ones for ML topics from Thad disappointingly bad). I don’t like the overly optimistic quiz-oriented Thrun style, as I could already experience in AI4R/RAIT.

In conclusion, I took this course because it is mandatory for CP&R specialization. I am not a big fan of AI and all the hype surrounding it, but still enjoyed half of the material and was a good exposure to it, so although it was hard, I am glad I took it.

This class was pretty fun. Just a lot of work. The material is really awesome stuff. You get exposure to so many concepts which could be their own (and some are) courses, so it’s really fun to learn at least a high level understanding of so many core AI concepts.

Lecture videos for this course make a lot of advanced topics very approachable, and I felt like the assignments lined up nicely with the assigned lectures and readings.

I have an undergrad in CS, work full time as a software engineer, and have quite a bit of experience in Python, so that made some of the concepts and assignments considerably easier for me than they would be for someone without those attributes. Not all the topics were entirely new to me.

The course is generally fair, but some of the assignments can be a bit frustrating to wrestle with the grading platform. If you write your code perfectly, you should have no problems getting a good grade, but the nature of the assignments is such that it’s exceedingly easy to miss one tiny step which can take hours or even days to track down. The grading is mostly fair, but I think could be more gradual in some of the marks. For example, in the Search assignment, being off the target performance by 2/10000ths of a node explored on average was enough to drop my grade an entire letter grade.

The final was pretty tough, but definitely fair game for a grad level AI exam.

Overall, I loved this course, loved the knowledge it gave me, and it definitely made me a better overall engineer.

This was my 7th class, and I have taken RAIT, ML4T, KBAI which may relate a little to this class. This was a tough class, but I enjoyed many aspects of it.

Projects are all auto graded, which is nice. The projects do reflect the material and give a real world application. Unless you are very well versed in the topic, start as soon as possible on each project. I found the book to be a necessity.

The Exam was a lot to handle for one week. I didn’t take any time off work as some others mentioned, but it was absolutely among the busiest weeks I’ve had in OMSCS.

Finally, the lectures gave a 30k ft view, but the real learning came from the book, papers, and projects. Piazza was oddly quiet, I had to sign into slack to see any activity.

I’d absolutely recommend the class, but not as a first class unless you have a good handle on things.

This has been my favorite class so far, but it has some issues and I don’t recommend it for everyone. To give you a gauge for your experience - this is my 6th class, my undergrad was CS, and I have a lot of experience with Python. If you have little or no experience programming, I recommend getting comfortable with Python (and maybe numpy) before you come near this class so you don’t have to deal that and the projects.

The videos are by three different instructors with different ways of presenting information. They varied from decent to incredibly confusing depending on which professor was teaching. I found them moderately useful. The book (I had edition 3, but they switched to 4th for this semester) was very useful for the first two assignments and for the final.

Piazza was very quiet - it’s the least active class forum I’ve seen. There were some questions posted, but answers may not come for a couple days. The TAs did occasionally post incredibly helpful answers and held office hours for one on one help. I did not attend office hours so I can’t say if they were helpful. Most questions I had were answered through discussion with classmates on Slack.

The projects were challenging and I enjoyed working on them even though I occasionally felt like I was banging my head against a wall. The assignments are well organized and make it clear what parts to start first (coming from ML4T, this was a relief). They give hints but avoid handholding. This is where I really enjoyed the Slack discussions vs getting an answer from the TAs. We were collectively figuring out things and it helped make the knowledge stick. What you get on Gradescope is your score which makes life a little less stressful. Most assignments are infinite submissions but limit submissions for a time period (like 3 submissions per hour). One or two have hard limits on total submissions.

Assignment 1 (formerly assignment 2) was easy to understand, but time consuming to implement. Assignment 2 (formerly assignment 1) was similar, but slightly less time consuming to implement. The tricky part was the randomness in the last section meant some people were able to pass with the base algorithm and others had to refine and improve it before it finally passed. Assignment 3 was difficult to understand (the relevant lectures made me more confused), but easier to implement than the previous assignments. Assignment 4 was the easiest for me. I’d implemented decision trees in ML4T though others who didn’t have that experience also seemed to find it a lighter project. Assignment 5 was skipped for the summer session. Assignment 6 wasn’t difficult, but took more time than assignment 4 due to calculating the distributions by hand.

The final was brutal. I like the idea of the “take home” exam where you have a week to complete it and learn a little more as you work on it. You know going in that you will be going beyond what you’ve done so far (looking at the practice exam shows you this will happen), but it was way more than expected. The part I found most frustrating was spending the entire class not really needing calculus then having questions that not only need it, but build off the hopefully correct answer from the previous question. As someone who couldn’t start the test right away, the clarification/correction post was not a major issue for me, but is frustrating for those who dive in as soon as the test posted. Most of the updates to the test were clarifications, but some were details that made people have to completely redo a set of answers.

As someone who does not have a CS background, I was extremely nervous for this class. However, it pleasantly surprised me and I would recommend this to anyone that is an independent learner and is passionate about learning AI.

My Background

Business school for undergrad, hands on Python work which really helped me in this course, and work full time. Have taken SA, HCI, and CN.

The Assignments

The assignments were what made this class for me. If there was one word to describe them, it’s fair. There are no obscure languages since everything is in Python, so you can truly just focus on the concepts which was so helpful. The content of the assignments actually aligned with the lectures and helped me learn the concepts on a much deeper level. And, dare I say they were sort of fun?

The best part for me though was being allowed to submit the assignment multiple times and have it graded each submission. For some, you could submit an assignment twice within a half hour window up to the deadline (and believe me, I used all the submissions I could and submitted some assignments 30 times). For me, this structure actually allowed me to learn from the things I did wrong on the assignments without being punished for them which really amplified my learning.

The assignments are long and I spent probably 24 + hours on some, but you get two weeks to do them. Just make sure you start early.

The Support

I am someone that is very independent with my learning and seldom will reach out for help, so my analysis may be skewed here, but I have zero complaints about the support and teaching staff for this course. I thought Thad’s lectures were entertaining and helpful, and the guest lecturers were fine. I thought there were ample opportunities to get help from TAs as long as you planned ahead and put time on the calendar for a session (there were always a lot of sessions). Piazza was a bit dead as compared to my prior courses which is fine, just something to consider if you rely heavily on forums.

For summer session we only had one final, and while it was challenging I do think it was fair. There are a lot of parts that rely heavily on calculus, so that is something to think about if you are considering this course.

Again, I was really nervous coming into this course, but everything was doable and fair. It was a lot of work, but I learned a ton. If you are strong in Python and Calculus and can put in time for the assignments and exams, I would definitely recommend this course.

There’s a lot to say about this course. It is definitely in the top 3 courses in the program for me, and arguably #1, but in a way that makes it unique. Let me clarify.

It’s an unusual class

The assignments and the exam(s) (only one exam in the summer) are the heart of this class. There is almost no value to this class outside of them. Looking for a classroom-feel? Looking to learn from instructors or TAs on Piazza? Looking for nuggets of information only offered in lectures? You’ve got the wrong class. It’s as close to a self-study course as you’ll find in this program (and that’s saying a lot). The TAs go out of their way (probably by design) to make sure you’re doing all the work yourself.

Then why did I praise it so much in my first paragraph? The assignments and exams are that good. And when I say assignments, I mean all 12 (10 in the summer) of them. The so-called “extra-credit” or “bonus” assignments should be mandatory – you’re doing yourself a big disservice if you skip them. Not only did I do most of my learning in the bonus assignments, but at least 4 of them are structured as competitions, pitting you against your classmates, which makes them more fun than most other assignments in the program. And here is where kudos goes out to the staff. Though they’re quiet and generally not involved, they set up a complex infrastructure to make sure that those bonus-assignment competitions are done right: a private Kaggle competition for the machine learning section, a tournament for your game-playing bots in the adversarial search section, etc.

However, I can see why the syllabus would leave the bonus assignments off of the official requirements, as doing them all, on top of the required ones, makes this course as time-consuming as any other course in the program (on par with RL or DL). I can also see why many people wouldn’t rave about this class. If you attempt and get through all of the assignments, you will feel amazing about the course. As you start to deviate from this ideal, I can see how your experience in the class would suffer more and more.

My approach

I took an unusual approach to the class which is probably opposite that taken by most students in the program, but which worked very well for me because of my background (I was well-prepared for the class – had taken ML, RL, DL, RAIT, and have a strong background in probability theory).

I almost completely eschewed the course lectures. I watched less than 10% of them, and only because it was necessary for a couple of the segments. My learning precedence was:

  • Assigned reading for the assignment (e.g., papers)
  • Textbook (AIMA 4th edition by Russel and Norvig)
  • Lectures (last resort)

Generally speaking, the class lectures are there to bridge the knowledge gap between what the student brings to the course, and what the textbook or papers provide, which are often difficult/terse. If you don’t need that bridge, save the time and go straight to the sources.

The fact that I had taken all of the individual courses that this course surveys prior to taking it made me apprehensive about its usefulness, but I was pleasantly surprised by how much I learned. The flipside here is that if you are taking this as a first course, with no experience in AI, and you want to get the max out of it, you’ll have a daunting journey ahead of you.

A word about the exam(s)

This is another spot where I feel for students with less experience. Some of the exam problems would have been vastly more time-consuming if I had not already taken RL and DL. And in fact this will be the typical case as this course is generally marketed as an introduction to AI.

To say the least, this class is a mixed bag.

On one hand, the topics are so cool. Even if they’re outdated, it feels so gratifying to solve these problems, do these projects, implement these algorithms, etc. The feeling of getting a 100 on GradeScope after grinding it out for hours and hours over the course of a week and a half is fantastic.

On the other hand, most of the common criticisms of this class are simply true (with one big exception- you don’t need to be a math or stats or AI wunderkind to do well on the projects). The professors are completely inactive and the TA’s are only somewhat helpful at best. The projects sometimes take a ridiculous amount of time. And the final is downright obnoxious.

Some key points I would highlight:

  • People criticize the lectures in general, but I don’t think that’s fair. Thad’s lectures are pretty good for the most part. Conversely, it would probably be impossible to convince me that any human being has ever learned anything from Thrun’s lectures in this course. Get ready to seek some external resources for anything Bayes related.
  • The first two projects are the hardest, but don’t let that freak you out. A lot of people here seem to complain about things like tridirectional search not being shown in the lectures, but I didn’t find that much of a barrier at all. These projects both require a bit of outside the box thinking and a lot of time, but despite coming from a non-CS background with only one prior course, I got a 95 and 100 respectively.
  • The next three projects vary in difficulty quite a bit (we skipped #5 in the summer). #3 I found to be quite a bit difficult, just not as much outside the box thinking as 1 and 2. #4 and #5 were pretty straightforward once you fully understand the ideas and terminology.
  • Sorry to say, but the final is just awful , easily the worst part of the class. I’d gotten nearly a perfect score in the class up to this point, but I think that there’s a pretty reasonable chance I’ll end up with a B due to it. It tests you on concepts that are not needed anywhere else in the class; hope you’ve brushed up on Calculus concepts up to Calculus 3 inbetween all of these projects. And whoever thought to make a 14 point section where each answer is dependent on previous answers and no partial credit is given really needs to reconsider whether they feel compassion for other human beings.

I’m half joking, but also pretty annoyed. I honestly may have given this class a “Liked” before the final, but it really left a bad taste in my mouth.

With that said, I still think this is a worthwhile class to take, I learned so much. I just wish that the learning came more from the modules themselves than external research, and that we were tested on the actual concepts learned from the coursework rather than what felt like a pool of AI topics.

Edit: After seeing how much partial credit they were willing to give on the exam, and how they reimbursed us a few points for missed questions, I realized I would make an A and thought I might edit my review, since I had been annoyed by the idea of getting a B. But then, before I had a chance, the TA’s revealed that the extra credit on the final they’d promised us wouldn’t be coming, due to the fact that we didn’t hit an 80% response rate on CIOS. This was not mentioned on Canvas, on Piazza, or on our exam. The only mention of it was in a practice final from 2019.

So now that I know I’m getting an A and still being deeply annoyed by how the TA team is handling the end to this class, I feel very justified in giving this class a ‘neutral’ instead of ‘liked’. To reiterate, this class will teach you a lot, but you also may be blown away by some of the incompetence and disregard for students at the end.

This class was one of the worst classes I’ve taken as part of this program. Most have been pretty poor, but I would not recommend this course to anyone under typical circumstances.

The type of student I think would succeed:

  • Only attending school full-time
  • Has lots of free time and likes focusing on school
  • Has prior exposure or knowledge of AI concepts and algorithms

The type of student I think would struggle:

  • Anyone working, with a family, or other external responsibilities
  • No prior exposure to AI concepts and algorithms
  • Cannot self-teach from academic papers or math proofs

My general recommendation to anyone considering this course would be to disregard the modules, Piazza, and book entirely. Find a good IN-DEPTH YouTube lecture series and learn from those. It’s not impossible, but you will have to dedicate an immense amount of time and energy to this course.

This is my 7th course in the program, and I work full-time. I’ve gotten A’s in all previous courses with a healthy balance of proper planning, weekends, and evenings, without making a ton of personal sacrifices for school work. I’ve got an BS in Software Engineering and have been writing software professionally for 6+ years now.

This course was the first course I actually had to take time off work and, on multiple occasions, would spend entire weekends working on the projects – and still only scraped by.

The Modules

The video content provided on Canvas is a joke. There are 3 or 4 different lecturers, so example problems you’ve been following between videos will just change or reference examples you never see. The inline quizzes are not helpful and generally take the shape of:

  • Start a new module: “Let’s introduce this topic with a quiz” – How is a learner supposed to approach a problem they have no exposure to yet? That’s why we’re watching the videos
  • Guess at an answer that’s either intuitively easy or so hard you have no idea
  • 5 second video saying “here’s the answer”, with no explanation

The best analogy for the quality and content of these videos are like when you Google something, and Google shows the two sentence summary of Wikipedia on the sidebar. That’s about the extent and depth to which topics are discussed or explained.

The Projects

The projects in Summer 2021 were due every other week and consisted of the following:

  • Search (A*, BFS, etc.)
  • Isolation (MinMax, Alpha-Beta w/ Pruning, http://primaryobjects.github.io/isolation/)
  • Bayes Nets (Sampling, Probabilities)
  • Decision Trees (Fitting and classifying data, random forests)
  • Hidden Markov Models (Didn’t attempt, just took this one as dropped)

The coding projects given throughout the class are disorganized, poorly written, and extraordinarily complex. Each project consumed many hours of work. Starting from project 1, you’re immediately asked to implement bi- and tri-directional search algorithms without any prior exposure in the videos. Most projects just have a smattering of academic research PDFs that are given as the basis of where to start learning on your own. There is no extra material or guidance on where to learn these things – you teach yourself.

Some projects READMEs talk about one topic (Snails Isolation) while the supporting code references another (Queens Isolation) while the code you’re supposed to write references neither. It makes debugging, writing tests, and understanding what you’re even being asked to do difficult to start.

Most projects have seemingly arbitrary Gradescope limitations (only 3 submissions every 6 hours, 2 every 60 minutes, etc.), which is very annoying, especially when the feedback from Gradescope is less than helpful or nonexistent. Pay attention to these or you will quite literally run out of time.

The Extra Credit

The extra credit is not here for struggling students to get a few extra points. These extra credit assignments are explicitly harder extensions of the already difficult projects. If you’re already struggling with the projects, these are not helpful.

The Final (there was no midterm)

The final exam was a 41 page PDF of 10 questions. It mainly consisted of tedious number crunching with (apparently) no room for partial credit since you’re just submitting an answer. A direct quote from the Head TA on Piazza:

Partial Credit is assigned at the TA’s discretion. It’s unlikely that you’ll get partial credit for work you show, since it can’t be scaled to the number of students in this class.

None of the questions on the final were extensions or similar to any content presented in the course. Most questions introduced topics or methods that were never talked about in the Modules or projects – NN back propagation, constraint satisfaction, expectiminimax.

The Teaching Staff

Never had any correspondence from Thad Starner at any level. Literally until I was writing this review, I thought the head TA (Rohit Sridhar), WAS the instructor because they were the ONLY one communicating on Piazza and Canvas.

Rohit was semi-active on Piazza, but Piazza in general was never helpful. Only got 1 Canvas post a week just reiterating deadlines and readings. No idea who the rest of the TAs were. There were challenge questions posted in Piazza, but literally no one ever responded to them (they’re not worth anything, so I doubt anyone felt like making time to work on them). I saw a handful of posts answered and closed to the effect of “We answered this in Office Hours”.

If I were Thad, I would be utterly embarrassed to have my name on a course of this quality.

For some background, I did my undergrad in computer engineering at a top 10 American university, currently work as a full time software engineer, and this is my 6th course in the Interactive Intelligence track for this program. This is without doubt the hardest class I’ve taken in this program. You NEED to take this class seriously or else you will not get a B or A.

Here are some of my experiences:

  • I usually did my homework and projects on the Sunday that they are due for other classes in the program and got an A on almost of all of them without much difficulty. This course was different. I got below the median on both Assignment 1(Search) and Assignment 2 (Game playing) even though I started on the Friday of the weekend that the assignment was due. I was almost about to fail the 3rd assignment because of starting late again and strongly contemplated dropping the class but thank God that I was able to finish the project right before the deadline. Slack is a great resource to get very quick clarifications on the assignments.
  • For assignment 4 (Decision Tree) and assignment 6 (HMM), I started these the week that they were released and finished both of them a week in advance.
  • With a 95% average on the assignments and no extra credit (only the Decision Tree extra credit is easy to get, everything else is hard), I needed a 45% on the final to get 80% in the class and come out with a guaranteed B. This is NOT easy to do. I started the final exam on the Monday it was released and easily spent over 40 hours and took a day off from work to finish it on the following Saturday. I think I may have gotten above a 45% on the final but I guess I’ll know the grades are released in a few days.
  • For the final, if you can code an answer, do that so that you can change the input values when they are inevitably going to updated in the finals clarification thread.
  • I used Intellij’s debugger with submission.py and didn’t use Jupyter notebook for any project.
  • There is a curve in this class, but I don’t trust it because it’s basically non-existent. Your classmates are insanely smart and/or hardworking. If you don’t start assignments early, you will drop this class or ruin your GPA or won’t graduate (if you’re in the Interactive Intelligence track).

This class is very interesting though and I liked it even though it was painful. Looking back, this class has definitely made me a better programmer, and introduced me to some difficult graduate level algorithms. The level of difficult for this class is right for a grad level course.

This is one of the worst classes in the program. I did end up getting a good grade, but the class was a frustrating, disorganized mess and the TAs offered no support. Just one example, from the very beginning of the course:

The syllabus explicitly asks us to buy the 4th edition of the textbook, but all the REQUIRED readings were from the 3rd edition. Mapping the pages and chapters was nontrivial since the 4th edition was completely re-organized and revised. This is what the TA’s told us, verbatim from Piazza:

“You can use either. While we prefer you use 4th, you’d have to translate the chapters on the syllabus to the 4th edition, so you can use either as long as you cover the material.”

When we were asked later to get the chapter mapping from the 3rd to the 4th edition, this was the reply, also verbatim:

“3rd edition chapters are already provided as part of the syllabus. We may/may not provide the corresponding 4th edition readings.”

As you can probably guess, we were NEVER provided the official readings from the 4th edition, despite them telling us they preferred the 4th edition, which made it difficult to refer to content from the book whenever the material made references to it.

The rest of the class followed similar themes. Piazza was extremely unhelpful, with questions often going unanswered for days. The lectures are disorganized and are a mashup of videos from a handful of lecturers, making it confusing to follow. The projects are difficult, and for some parts just provided a link to some other university’s slides on the material and expected us to figure out what to do on our own. The final was a weeklong take home exam, which was extremely tedious and prone to error because it required crunching numbers by hand. I feel that the final did not do a good job of assessing my understanding of the material; rather, it tested how many times I double checked my calculations. Additionally, there was a long “clarifications” thread on Piazza that corrected many mistakes on the final. You have to follow that thread up until the very end of the exam period because the assumptions for any question can change at any time, and you are expected to re-work your answers for it. I had a trip planned for the second half of the exam week, so I stayed up late the first half to power through it and submit it to get it out of the way. Then, as I was boarding my flight, I see an update in the clarifications thread which meant that I had to scramble to re-work all the numbers for a question while on vacation for work that was supposedly completed.

Comparing this course to some of the courses from my undergraduate CS degree, the way this course is run is inexcusable for a “top-tier” CS program. Will you learn something? Yes - you will probably learn a lot about AI. But if you take this course, be prepared to rely on no one except yourself.

This is my 10th and final class of the program and I can definitively say it is the worst OMSCS class I have taken so far. The course lacks structure and some of the assignments have large parts that are almost all or nothing: you submit your code to gradescope and you’ll end up with 20/40 with no idea what went wrong. The lectures aren’t great: you have to go back and forth between each video because they reference information from one another without directly referencing them. The lecture quizzes barely provide any reasoning regarding the correct answer, just 7 second videos saying “Here’s the answer.”

If you don’t already have strong AI foundations, I’d avoid this class. It comes off more as a refresher than actually teaching you the material.

I have taken KBAI prior to this class and it really doesn’t prepare you at all for it. This class is hard. SOME of the lectures are good and helpful. Just like SOME of the book is helpful. But there are also some really terrible lectures in here as well. The lectures are given by the Professor, Peter Norvig and Sebastian Thrun. You’re almost better off not watching Sebastian’s videos on probability and bayes. It’s basically a series of quizzes that assumes you already know it. Some of the lectures felt more like a refresher than trying to teach the material like new. I’m going to do anyone reading this a favor that I wasn’t given. For most of the class you can watch youtube videos that explain most of the material WAY BETTER than the class lectures. Look up StatQuest with Josh Starmer on youtube. This was a lot of help and saved me more than I want to admit.

HW - These vary but if you start early, most of them should be manageable as long as you can dedicate some real time to them. The wild part is apparently the first two are considered the hardest, but I found them to be the most straightforward. I ended up fumbling the rest of the assignments.

Bonuses - These are for all the people that are going to ace the class. For anyone that’s taking multiple classes or juggling a fulltime job, you probably won’t have time to even try these. You know how some games have a “catch-up” mechanic that helps people that are further behind help catch up to the rest? Yeah these are the opposite of that. These are so the people that either really know the material or have way more free time than you can brag and try to get over 100% in the class.

Final - This is a massive test that you’re given a week to do, and you’ll need it. Fair warning it covers everything in lectures, in the book and even some stuff that’s in neither. Have fun.

General Advice - Watch the lectures early and get them out of the way. If you can, speed read or at least skim all the chapters as soon as possible. You’ll need most of your time to do the assignments and test. If you get lost or stuck go watch some statquest videos, they will help.

Piazza - This is supposed to be where you can ask for help or advice but there’s a good chance it’ll go unanswered. They post challenge questions each week so you can practice the material but again, you’ll have no real time to do them AND when you have questions about them they will go unanswered.

All in all, be prepared to teach yourself difficult concepts with little help, unless you find some nice classmates that are willing to helpout. All the people that said this class was easy either already knew the material coming in,are fresh out of undergrad or have way too much free time.

I have taken KBAI, RL, Bayesian Stats prior to this course and has done some work in ML before. Hence, I come into the course with a fair bit of background knowledge.

Compare to KBAI, RL, Bayesian Stats (over the same topic), AI has more focus on algorithm. We get to code a lot more on the algorithm and understand its complexity.

HW - all homework are non-trivial work. I spent a lot of time in Search and the last one HMM (use up the full 2 weeks, 40 hours+). Search is coding-heavy and HMM is conceptually hard for me. the other 3 HWs(game, bayesian network, decision tree) take around 1 week (20 hours-ish) to finish.

Bonus - I attempted 3 out of 5 bonus exercise. it is good learning exercise though not easy to get the bonus point. Recommend not to get too hung up by it. Final Exam - I am doing it now (take a break and hence write a review here). It is long, multiple-page like other have mentioned. it covers all the topics in the video lecture. It covers new things that we are not able to hands-on/learn from HWs.

  • Getting the AIMA book is the best decision. It is useful throughout the whole course
  • The HW is hard.. start early.
  • I think taking KBAI , RL, Bayesian Stats before AI did help me prepare for this course, though you don’t need them as pre-requisite.
  • I front-load most of the video lectures prior to the start of semester which helps me to save some time
  • There is not much discussion in Piazza. less interaction compare to other course l took (KBAI/RL/Bayesian Stats)

I dropped right after the assignment 1 (search) deadline because I felt as though there is not enough teaching happening unless you ask questions on Piazza. That and I was able to game the assignment so that I did not even look at any of the complicated math PDFs, made up some arbitrary condition and passed on Gradescope (85 out of 100) which to me signalled that the simulation itself that my code was tested on had too much slack. Teaching for me means to present ideas, say pseudocode, for things like tri-search or even bi-search but rather these had to be discovered through questioning on Piazza and waiting for a response which was a complete waste of time. There is huge gap between the easy-to-follow videos and the difficulty of some of the handouts. Something in the middle is necessary and Piazza takes too long. Now I was trying the minimax assignment a bit but again the documentation in their code is unclear. For example for the initial eval function testing board state, what should it return? I guess I could write something to calculate it but that is just more book keeping type of coding which is so so boring and not really related to AI, more like generic coding class. So rather than spending time to really understand the new algos and ideas presented, you just end up spinning your wheels to fill the gap where the instructors’ team was too lazy to make this course really shine. It’s really sad that combined with how I’ve heard the ML course is not that great either, the ML specialization is basically second rate compared to free MOOC’s out there like Ng’s ML on Coursera. Also, the longer I’m in this program the more I’m realizing there’s quite a bit of hoiti-toitiness, humble-bragging, begging for remarks, etc which I never saw during my undergrad CS.

I’ll try not to repeat what others have already mentioned. I don’t have a lot of AI/ML related background, but the assignments felt very approachable, came with common sense, and in general I was able to learn quite a lot. They did require effort, of course. The course material is a good broad survey into AI and ML topics. One can go shallow or deep with the material and extra study/assignments - impacting learning outcome, but not necessarily the grade. The course carries quite a lot of self-engagement opportunities in terms of learning deeper.

I enjoyed the assignments and I found those exercising the material pretty well. No reports, just programming and immediate feedback (Gradescope submission). Those did take time. One of the 6 assignment grades was dropped, as per the syllabus.

I loved the midterm and final exams format (week-long extended non-programming assignment), and generally (at least in our term) those were rather easy, surely not as difficult as I expected, if you cover the lecture material well. I do realize that the previous terms seemingly had a longer exams format. I was able to finish the final, for example, over a weekend.

The lectures do sometimes skim the presented material, but are structured well to present the basics.

All in all, I do recommend this course - it presents the building blocks pretty well, has nice assignments, carries no reports, very manageable load-wise.

This is my 2nd OMSCS class, my first being 7642. Overall, the class was fairly interesting, but not terribly useful and extremely outdated.

Assignment 1 was a bit of a pain, and it was kind of just luck in getting hyperparameters right to beat the RNG auto-grader.

I had the amazing foresight to completely skip assignment 2 after realizing how annoying the auto-grader would be, which saved me countless hours and gave me the opportunity to start early on the later assignments.

Assignments 3-6 were all fairly easy. Some had restrictions on number of auto-grader attempts, but these specific assignments (markov models is one) were very easy.

I also was lucky to be in a semester where the tests were maybe 1/3 the length of that of previous semesters. The tests themselves were of medium difficulty, but were fairly easy to get above 90 in.

In terms of grading, you should be able to get 90-100 on assignment 1, 100’s on assignments 3-6, and I’d highly recommend skipping assignment 2 after learning just enough about BFS, DFS, and A* search.

This course is by far one of the best courses thoughout my OMSCS journey.

WHAT I LIKE:

Video lecture is really clear. Thad (and Shirley) did a intuitive and clear introduction to essential AI algorithms, while Peter Norvig did good walkthrough on search, logic, inference, and Sebastian Thrun did good walkthrough on probability and value iteration. Frankly I never seen any AI/ML lecture video with step-by-step walkthrough as clear and detailed as this course. The videos are also interesting without overload with senseless humor (as in Computer Vision). All resources available (though not confirmed) before course start is also a huge plus.

Assignments are good with well defined test scripts and Gradescope tests. Whenever an assignment is done, I can use the provided local test scripts to validate, and I can use Gradescope to validate the rest. Scoring 100% in Gradescope means scoring 100% in assignment, which is clear and worry-free.

Easy to get A, since everyone with total score above median (computed before adding extra credit) or above 90% will get A, not mentioning 6 extra credits (which is effectively 30 points in a 100-point final exam) can be earned without overwhelming effort. I guess almost 70% of the class get A although I do not have exact statistics. Similar to my shopping experience in a wine store when I find every bottle gets a over 90-point score, I do not know if that is a good thing, but still I am happy with an A.

Exam in almost each semester contains a question which more like a tutorial than a question, which guides you through each step in a simplified but classsical AI/ML algorithm. In my exam I learned about CNN convolutional neural network, which both explained a final project topic in my other Computer Vision course, and introduced me to another Deep Learning course. Such design of the examination is very thoughtful.

WHAT I DISLIKE:

A few TAs are not well equipped with addtional knowledge that is relevant to the extra credits of assignments. For example, in assignment 2, which is a search, the last section encourages us to find our best search algorithm, where the hint links to a research paper talking about Reach, but when I asked the TAs, I surprisingly found none of them even heard about Reach… Although that Reach concept may be an overkill, but I suppose when the hint links to it then the TAs should know about it…

Some assignments are not well tested before release. In particular for my assignment 1, which is a game play, the game board is so small and the chess pieces are so many, such that a victory is either pre-defined by move priority or dominated by randomness. That defeats the purpose of AI in trying to win.

Take-home exam may give you more freedom over a traditional proctored exam (at least you do not have to look at a stupid camera and let some AI/ML algorithm detects your attention), but the extra workload is a torture. I am lucky and my study term only offer 30 pages of final exam, but I learned that the previous term offered a 100 page final exam, which is really too much. In addtion, although some questions are kind to offer partial answers for cross-checking vs your own calculations, some questions are in fact offering useless cross-checking figures. One example is a value iteration question which offers cross-checking figures far away from goal, therefore the numbers are not relevant to the answers which are near the goal. What’s worse is the cross-checking figures are once changed by clarfications, and the clarifications even changes the value iteration algorithm to slightly differs from the lecture video example… so every value iteration algorithms in the course subtly differ, and I totally failed that question although I repeatedly tested my algorithm vs all course examples and I totally align with the cross-checking figures. Again, I was lucky to still get an A since I have good assignment scores and extra credits and A covers more than half of the class, but still I think the cross-checking partial answers should serve the purpose of guarding vs minor mis-calculations, especially when the numerical questions have been clarified.

This is a very good introduction to every AI/ML concepts, particularly when you want to deeply investigate one of the AI/ML topics. Excellent course design and good tutorial management! Thank you very much!

This is my first semester into the program and I’m glad that I had a pleasant experience.

I come from a CS background and had 5 years working experience as a developer.

As most of the reviews, the assignments are hard and will take a lot of time. I don’t know how many hours I spent on the assignments every week.

The lecture videos quality is a bit disappointing as I found many concepts were not explained well and ended up going to youtube watching some other videos to understand about some concepts.

Given the huge amount of knowledge i’ve gained from this course, I will give this a 5/5 for such a well designed course.

On the bright side, I find the grading quite generous. I didn’t attend any office hours and never attempted any bonus, I got a 95%. I believe a big portion of students will get A given the grading criteria (>90 will get A).

So my advice is just not to worry so much about the score but rather, enjoy and focus on the knowledge you will gain from this great course.

I completely agree with the tips provided by the reviewer just before my comment. Those are the best tips I have read so far and would like to offer.

Most of the time I felt lost after watching the lecture videos in the course module and spent a lot of time finding the right kind of videos that would help me in understanding the course material. I watched lecture videos from Berkeley, MIT and Stanford to gain knowledge. Those were useful for both doing assignments as well as in the exams. After watching all these videos I only had to skim through the book.

Also make sure to spend enough time on the mid term and final exam. Even if the questions were straight forward application of the algorithms that we learnt in the course there are lot of opportunities to make mistakes. Hence, definitely schedule time to review your answers and not just answering them. During midterm I answered all the questions to the best of my knowledge and was lazy to review the answers. As a result only got ~70%. However, I reviewed by answers in the final and scored ~95%.

At last, don’t waste your time attending office hours.

Most of the post in here already reflects the fact that this course is a tough one. This is indeed a hard course and has quite heavy workload but definitely doable.

Survival Guide

Grab recent semester syllabus and go into course schedule. Here is one from Spring 2021 . At the bottom of course schedule you will find topic list for final exam. Now glance over the topic list to see how much it feels familiar to you. If you are not familiar with most of it, this guide is for you.

Hardest part of the course was seeing all these topics for the first time and not having enough time to review it. So, prepare before the semester begins; you will see the course lecture when the semester begins but for early preparation go through:

  • Berkley syllabus: https://inst.eecs.berkeley.edu/~cs188/fa18/
  • In this syllabus notice the step-by-step ; you will likely use that very much too

OCW MIT AI Class

  • Optional Stanford’s AI class - CS 221

Now when you see the course material, it won’t be first time.

Keep up with the reading of the book; you cannot survive this course if you don’t read the book (it’s a very enjoyable book).

  • The hardest part of the course is that the assignment might fully occupy your free time and therefore you never find time to read the book; by reading early you are going to do your future self a huge favor.

Definitely read the chapter 13 & 14, probability and bayes net (BN Representation) before semester begins. If you feel lost here re-read it again since this will be core to a lot of ideas for rest of the lectures.

  • if you find the probability, random variables, bayes theorem etc. are very foreign concept to you consider going through this probability lecture from MIT . Good news is that you only have to go finish first 7 lectures at minimum.

Re-read chapter 13 & 14 (yep!).

It gets little tough after midterm because of the course load. In some weeks you will have multiple chapters to read. Keeping up with it will be almost impossible. Definitely try to read few of those chapters in advance. If you can’t, that’s ok too and next item will help.

One of the best policy of this class is one of the assignment with lowest grade will be dropped. Try to do best (I mean over 90 because a lot of your friends will; my class median was 92) in the first 5 assignment so that you won’t have to work on assignment 6 at all. With this you will have 2 weeks of free time right before final which you can use to keep up with readings and watching lectures.

Assignment Survival Guide

Assignment for the course took me almost all of the time to complete. Therefore, it left with little time to read the books but from above tip you already know I had pre-read the book (and made my life easier).

For your own consideration a note note about me: I have writing code at my day job for over 8 years and still find coding for assignment time consuming.

  • Learn Python; you don’t have to be pro at knowing every python syntax; it is not what the course demands.

Learn Numpy and it will be used heavily in later part of assignment

  • Read chapter 1-4; Numpy is the API you should know and vectorizing will be key to your assignment running successfully.
  • With this book you will cover both points 1 & 2
  • Know how to debug code; not your average logging into console for debugging but using actual IDE’s debugger. My favorite editor is VS code and it also has Jupyter notebook capability right in the editor (but you might have your own favorite editor)

Should you take it?

This is really great class but slightly heavy on workload; I have spent over 30-35 hours every week but in the end it was worth it. Now I have confidence I can survive anything. You will learn a lot from this class and I strongly recommend taking this class. You are here to learn interesting ideas!

I liked this course for the content. Much of it is reviewed at a high level / very briefly, but it gave me a good overview of the field. Previously, I was more limited in thinking only about RL \ Deep Neural Networks for AI. This course does not cover RL / Neural Networks in any detail. The videos are pretty good, but they do seem “patched” together, with several different lectures and styles. I thought the book was very good, but we only really dived deep in a few areas. The assignments were good, but the last parts would get challenging. I had real issues with the TA’s in this class not being helpful. I attempted office hours twice with poor \ no results, and did not find that much help from them on Piazza. Not sure if this was just this semester, but the TA’s in the RL class were much better. Tests were open book, one week long, with many of the subjects being completely new exercises. I felt that they were grading as much on, can you learn this quickly yourself. I spent a lot of time on them and did well. The assignments are programming w/ gradescope. They would be very hard if you weren’t reasonably good in python, otherwise they were tough more for the last 25% of the score.

About me: OMSA Program, 4th semester

Strong Python but no prior CS experience before this program

This was probably the hardest course I’ve taken in the program. If I compare this course directly to something like CSE6250, another heavy load course, the course material in this one is much more complex and there is a focus on theory that I hadn’t found before. As someone who did not study CS in undergrad, I felt like I started pretty far behind as things like recursive algos and Search were difficult for me to grasp quickly. The second assignment was especially challenging. I spent 40 hours on that one and was not able to make the tridirectional search work. However, I found the Search topic in general very unique to this class and am very glad to learn it. Compared to Search, the other assignments are much easier to implement (average 10 hours each) and I felt very comfortable towards the end of the course when more ML topics came up like decision trees and clustering.

One other thing I found helpful from this class was the exposure to writing our own tests. This is another reason some assignments are easier than others. The test suite the staff provides can either be sparse or very comprehensive. Writing my own tests to fill in the gaps was a great skill to get more experience with but I never complained when I was given all the tests I needed to complete the assignment more quickly.

I found the exams to be quite easy? I did not score 100 but half of the problems are presented in a way where it is very difficult to screw up. They provide some of the answers inside the test so that you can confirm if your method is correct. I spent less than 5 hours on each exam and they were significantly easier than the assignments. I think this semester may have just lucked out because the previous final which was given to us as practice appeared almost twice as long.

The one thing I would change about this course is the plagiarism policy, which is very intensely worded and is detrimental to learning. I was not comfortable with posting questions early in the semester on piazza at all for fear of “cheating”. I was not even comfortable looking at other resources to aid my understanding. Piazza engagement was essentially non-existent for the first half of the semester as I’m sure there were other students that were scared off like me. Moreover, the TAs were probably understaffed as they were not very responsive.

I was pleasantly surprised by this class! This was one of the best-run courses I have taken so far (I am now halfway done with the program). I expected this course to be pretty tough and time consuming based on previous reviews, but I never spent more than 15 hours a week on this class. I would rate it as pretty middle of the road in terms of time required and difficulty. TAs were pretty helpful and Thad (professor) chimed in every now and then and also held office hours. I echo the reviews below mine about this being a survey class on AI.

The class has 6 assignments and you get to drop your lowest score. It’s true that the first two assignments are harder, but I wouldn’t say that the rest of the assignments are a walk in the park. All of the assignments required a decent chunk of time (10+ hours over 2 weeks), and all of them were doable. I suggest starting as soon as the assignments are released so that you aren’t pressed for time, and consulting Piazza and Slack for pointers.

I really liked the format of the Midterm and Final exam. Both were week-long take home finals that were open note/lecture (not internet). They both felt like problem sets aimed at helping your understanding on the topics. Pretty low stress overall and satisfying (never thought I would call an exam satisfying). I did not have to take PTO for either of the exams (normal 40 hour/week job) - I managed the timing by doing 1-2 problems after work each day. This got me through all problems before the weekend and left the weekend to review answers.

Overall I would recommend this class to be taken standalone if you are working full time. This is a great medium difficulty class!

I really enjoyed this course! It feels very similar to CS-7638 (AI for Robotics) though different topics, of course. Thad is an awesome instructor. he presents concepts well and usually with a bit of humor. Sabastian presented a few chapters (same professor from CS-7638) which I very much enjoyed. Peter Norvig also presented 2 chapters. I found his presentations alright, but I will note that I couldn’t listen to them with noise cancelling headphones. There were certain noises that felt like they were piercing my brain during those lectures. It wasn’t nearly as noticeable if I didn’t use headphones though. Hopefully those videos are updated at some point.

The assignments were both very straight forward and interesting. I didn’t get the chance to do any extra credit assignments due to time constraints from the other class I was taking, but I certainly would have if I had the time. Oh and the exams (mid-term and final) were “take home”. I.e. print them out and work on them for a week. I found this to be a much better approach to exams. They were probably the most difficult piece of this course (for me). I don’t do well with the cram everything in your brain for a test approach. So with this style, I was able to better understand some different uses for the concepts learned throughout the course. I would definitely recommend this course!

I feel like this course was way overhyped. Assignments were okay. The vibe of this class was so casual. We were split into two groups for Piazza. My group was completely dead. I don’t even know why I paid for this course if all I’m going to do is do the course on my own. Nobody really created threads discussing about AI topics. This course is run in a way that it pigeon-holes you into only focussing on this old age assignments they assign you. So the large chunk of your time is spent on these. Have you ever enrolled in a course were the course content is great and they try to make it unnecessarily difficult? That’s this course.

The unofficial slack was the saving grace for this course. The AI lectures are god awful and require an overhaul. The instructor barely conducted office hours and TA support was pretty basic. I think these people are assigned to a particular task and they only open their mouth when it’s their turn. Except one or two people, nobody really cares about educating or inspiring students to explore AI.

TA OH on the other hand was absolutely pointless. All you get from there is some shallow responses like “hey how about you check what it’s returning or read the question” like really? They have this walkthrough of projects were they read slides and call it a day.

In previous semester with the other professor, class was run along with oncampus students in piazza (as one piazza), so do not expect the same experience when it’s only OMSCS. There’s obviously some low effort teaching and management when it’s just online students and especially with this Spring class.

I skipped Fall - AI to get to Thad’s class but was extremely disappointed on how the class was run. The final exam was medium difficulty and midterm was easy. If you are expecting AI opportunities or expecting something to happen, you’ll be disappointed.

They removed 5th assignment extra credit and compensated with 6B + extra grade. How in the world do people care about extra credit once final exams are over is beyond me. We are almost at the end of the course. Obviously most of them are going to skip. People don’t even do CIOS and you expect us to rush this extra credit in less than a week?

For people debating between Spring-AI and Summer/Fall - AI, pick anything other than Spring. It’s just hype and horrible management. I really dislike when they treat OMSCS as some low tier student batch.

There were also some people from corona-hit countries expressing their concern about their country’s situation and personal situations during the course in slack and not even a simple annoucement of concern was sent. Tough luck kidos, you are in GT.

Overall A is possible if you put in the effort and B is a no-brainer if you get 90+ in the first two assignments.

This class definitely has its challenges. I thought the worst part of the class, as many people have already mentioned, is the lecture videos. They don’t do a good job explaining subsequent assignments, and much of my time was wasted trying to figure out the assignment instead of understanding the lectures and reading the book. I would recommend professors balance out the class by decreasing the assignment load and allowing for us to spend more time digesting the material. It has the potential to be a very enjoyable class, and the difficulty of the assignments didn’t lead me to having a stronger grasp on the subject. The most difficult assignment for me was assignment 2, which is scored a 64 (but eventually had dropped, since it was my lowest.) Assignment 5 also took a number of hours, but the Slack group was an absolute savior. (In general, Slack was the best resource for this class.) The remaining assignments weren’t too bad (I was familiar with DT from ML4T so that helped with assignment 4, and the probability from assignment 3 wasn’t too bad either- definitely easier than the Bayes net question on the final.) Assignment 1 wasn’t so well executed in that a lot of your results were left up to randomization. As far as the midterm and final, I found the midterm to be reasonable, and the final a bit more difficult. There are too many clarifications (including typos, statements that were left out, statements that were entirely changed…), which means that you need to keep checking back on Piazza to make sure that you have the most updated version of a question. There was also an extremely slow response times for questions on the final. Overall, I can say that I learned a lot from the course, it’s not impossible, but it can be executed much better to allow for us to retain the maximum amount of knowledge while still giving us practical experience in the assignments with some AI problems.

This course is NOT the entry level course even though the contents are classical but outdated. The first two assignments are pretty hard and you need to test for a long time. Not because the algorithms are hard but the environments (the problem environment not the coding environment) of the assignments are hard to be manipulated and you need to be familiar with the environment quickly. Only the basic test codes are provided so that you need to write the test code by yourself.

The lectures are pretty good and you can lean a lot classical algorithms. However, the lectures are too easy comparing with the assignments. It is like you are taught how to cut woods but you are required to build a palace.

The TAs answer super super slow. I think they only check the piazza once a week.

If your have the solid background with probability and coding with python, this course is not that much hard. If not, avoid the course because you cannot depend on TAs and you must try a lot to solve the problems by yourself.

Overall I felt that this course was challenging in a way that actually tested what you were supposed to learn in the course.

The assignments were very front loaded with the first two assignments being the most interesting and time consuming while the later assignments took less time but were not as interesting.

The mid term and final took a ton of time. I liked the format as I felt it aided in learning, but they took entirely too much time.

I have always had a difficult time with this sort of course; one where the lectures don’t seem to cover the material that’s on the assignments. As such, I always get behind on the lectures because I’m spending all of my time on the assignments. This became an issue on the midterm, as there was content that I hadn’t seen before.

6 assignments, but the lowest score is automatically dropped, so each of the remaining 5 assignments amount to 12% of your final grade. Overall, I struggled with trying to “fit” the assignments to what is expected in gradescope, which really leads to me never truly understanding the content; this becomes a problem when the tests come around. Many of the assignments have instructions that leave a lot to be desired; as someone else mentioned these instructions may only include a link to some research paper, or a wikipedia article. To me, this seems incredibly lazy and just pathetic.

For the type of person I am, there is absolutely no positive learning outcome from these types of exams. The midterm was ~28 pages (much of that is explanation or diagrams) and was a week take-home. The largest problem I had (and in fairness, it seems many others did not) on the exam were the clarifications. The reasoning behind a living thread of corrections/clarifications was that writing a test is hard. Seems silly that instructors are telling students that. I also found some of the wording and contradictions on the exam to be quite misleading (again, many others didn’t have this issue). I probably spent 30 hours on the midterm and scored very poorly. I’m quite terrible with probability (specifically Bayes) so I bombed that part of the midterm, and since the final will be comprehensive I fully expect that be brought back to embarrass me again.

Communication/TAs

There doesn’t seem much usefulness on piazza, I’ve found it to generally be a waste of time. Peers discuss more freely on slack, so that is where the only help has been. I’ve popped into a few office hours and these were a joke, don’t bother. The TAs have also given “assignment walk-throughs”, of which I attended only one; if you want someone to read the instructions to you this is helpful, otherwise you’ll be left wondering what the point was.

if you’re going to take this course make sure you understand probability (especially Bayesian), be very comfortable with Python, and have a good working knowledge of Numpy and dealing with large numpy arrays.

After reading through all the reviews, in my opinion, this class is a little over hyped. First two projects are really good and enjoyed every bit of it but after that the class becomes too easy and doesn’t possess much challenge.

This is my 5th class in OMSCS. I am comfortable with Python & NumPy after taking CS6475: Computational Photography the previous semester.

This was a great class! Most parts of the class were polished and in combination provided one of the best learning experiences I’ve had in the program. My only major complaint is that the resources & support around the assignments could be improved.

I rated the difficulty Easy which is unusually soft for this class. This was due to a few key factors:

  • Predictable outcomes ( e.g. no hidden test cases, no subjective grading)
  • Generous grading policies ( e.g. dropped assignment, curved in case the exams are unusually hard)
  • Relatively straightforward Midterm & Final Exams

We still used the older, 3rd edition of the book. You can get the international version (marketed to India) new for very cheap , although the printing is cheap and minor issues are likely.

  • Autograding : Assignment grading was fully autograded on Gradescope.
  • Great Textbook : Textbook was one of the best I’ve ever had for a class even though about half of each chapter was irrelevant to the lectures, assignments, & tests.
  • Assignment Resources : These left a lot to be desired: Piazza posts from 2017, random PowerPoint slides, Wikipedia pages, YouTube videos… these poorly-curated resources account for a significant proportion of the assignment difficulty. Several OMSCS classes operate this way: teaching only at a high-level and expecting students to figure out tons of implementation details using only research papers or other similar resources. It sucks, but everything is doable.
  • TA Office Hours : These often had very long queues & inconvenient hours during the work days; they offered code reviews but seemed too unfamiliar with assignment pitfalls (one TA admitted to never fully completing A2 ¯\_(ツ)_/¯) or NumPy to provide useful feedback. The assignments would be far less time-consuming if the TAs could effectively guide students out of the ruts.
  • “Challenge Question” Answers : These were often mediocre- or poor-quality recordings from several years ago. Also, the majority of questions on those posts went completely unanswered by the TAs which was pretty frustrating, given how much they were emphasized as an exam study tool.
  • Disconnect between Principles & Questions : The class sometimes tests on topics that aren’t thoroughly taught, making easy questions substantially harder. This is kinda like “reasoning from First Principles” applied too strictly as if you’re supposed to intuit the rest. For example, D-Separation problems were challenging because the class taught Active & Inactive Triplets but neglected to share the easy, procedural solution for a full Bayes’ Network .
  • Rough A1 : First assignment was revamped, which introduced many preventable issues: released 1 day late, unit tests didn’t work on Windows, hot patch was required halfway through the assignment, & grading was heavily influenced by random chance.

Other reviews are suggesting Slack for receiving help from other students, but in my opinion Slack is just ephemeral Piazza discussion in more detail, pushing the limits of the OSI (plagiarism) rules. Is that an ethical way to compensate for the unhelpful resources & TAs? You decide.

The class is curved with the A / B cutoff placed at the median or at 90%, whichever is lower. B / C cutoff is placed at median minus 1 standard deviation or 80%, whichever is lower. Like previous semesters, the lowest assignment grade (out of 6) is dropped.

The median for my section of the class was 91.6% , so the cutoff for the A was adjusted to ≥90%. The B cutoff landed at roughly 78%. About 63% of students who finished the class (didn’t withdraw) received an A .

Recommended Strategy

Given the generous grading policies, assume there will be no curve. Aim for >80% on at least one of A1 & A2, then aim for 100% on the remaining assignments. That should give ≥95% average on the assignments, so a ~80% average would be needed on the exams excluding any extra credit.

Including extra credit, I finished with a >98% grade in the class. I have never previously worked with Bayesian statistics or truth tables and have a non-CS engineering degree. The structure of the assignments & take-home exams means the grading is extremely predictable, so getting the A simply requires investing the right amount of time & effort.

Aside from the Assignment 1 issues mentioned in the Lowlights , these were a good experience by condensing “real-world” problems into objective, 2-week assignments.

Here is a brief breakdown of the assignments with the median grades & my subjective rating from 1 (trivial) to 10 (mini-thesis):

Adversarial Search (95%, 6)

Recursive minimax, alphabeta, and iterative deepening aren’t terribly hard to implement, but it’s hard to know how much optimization is required. Due to random variability, I was able to resubmit the same code 30 times without advanced optimizations until it passed. Really important algorithms handicapped by a bad setup.

Path Search (83%, 9)

HUGE assignment, unforgiving autograder, very hard to avoid all edge-case bugs. The cryptic resources really made this one more annoying than it needed to be. However, it’s easy to appreciate the utility of the algorithm.

Bayes’ Nets (100%, 6)

Conceptually easy, difficult to apply with pgmpy .

Decision Trees (100%, 4)

This was my favorite assignment because of the combination of utility and fewer issues than A1 and A2. The assignment was very organized and approachable. Difficulty is dependent on prior NumPy knowledge.

Expectation Maximization (100%, 7)

Organized step-by-step, but plenty of “symbol shock” and a long slog with linear algebra + NumPy.

Hidden Markov Models (100%, 4)

Interesting & short assignment burdened by overcomplicated & broken rounding rules.

(Extra Credit) Hidden Markov Models 2

This assignment may replace the original HMM assignment in future semesters. Dr. Starner offered a massive 6% added to the final grade for completion and a 1% competitive section, but was an unclear, complex dive into data with a HMM speech tool called HTK . I went through the Docker-based setup and couldn’t quickly figure out what the actual work was so I didn’t bother. Condolences to any future semesters if this assignment becomes required.

Extra Credit

The extra credit opportunities were interesting and I attempted all of them, but found them to be mostly high-investment, low-reward for the purpose of ensuring a good grade in the class. Many of these were competitive where only 10 students get the credit out of literally 500+ students. There’s no harm in submitting existing work for the competitions, but I can only recommend investing additional effort into the noncompetitive opportunities. We did have a few “easy” opportunities, including a 15-minute survey for a research study and CIOS participation.

My opinion: this effort is probably better spent getting ahead on the next lectures & chapters so the next assignment can be started earlier.

Midterm Exam

I felt that this exam was notably easier than the example midterm provided from Spring 2020. Our exam weighed in at only 28 pages; I finished a first-pass through all questions in about 8 hours of work. Our search problem was pretty tricky & likely required some coding to get to the answer, but it was only weighted 10%.

The TAs made some grade concessions for our mediocre constraints satisfaction problem. They also awarded plenty of partial-credit for “close” answers. I found that they were generous in answering private clarification questions, even if those clarifications weren’t shared in the public clarification post. If in doubt, definitely ask! I found all of these policies unusually generous compared to other OMSCS classes.

I took a day off from work for this exam but didn’t need the extra time. It may be worthwhile to have extra time in order to triple-check all the answers since there’s plenty of rote calculation involved.

P.S. expected value is a subtle technical term that’s very easy to misinterpret; don’t repeat our mistakes!

This exam was also 28 pages total. I felt this exam was more challenging (on average) than the Midterm mostly due to challenging Bayes’ Net & Logic questions. Logic & inference is a confusing topic that was poorly covered by most of our resources, including the lectures & book ( the problem was a variation of this Stanford problem ). It didn’t help that they scheduled 208 pages of reading from the textbook in the last 2 weeks.

There were more technical issues with the questions than the Midterm which required significant clarification. It was an unfortunate way to end the class, but I suspect many students like myself didn’t need much better than a 50% on the exam to maintain an A grade in the class.

Great course overall and a lot of interesting materials are covered. Also I’m constantly impressed by the coding quality of assignments prepared by the TAs/instructors. I had some background in quantitative field and going through the materials greatly strenghtened my understandings of a lot of ideas.

First, just a background about me so you can understand where I’m coming from. I have my bachelor’s in engineering, no prior CS experience before OMSCS, this was my fourth course in the program, and I am a masochist. If you are a masochist – then this is the class for you.

The reviewer below mine - obviously not a masochist. Not surprised they disliked the course.

You know that feeling of being lost while traveling a new place? I enjoy that fleeting feeling. So with no surprise, I truly enjoyed the feeling of being completely lost during both the midterm and finals week. If your not sure if this is for you, grab a pen and paper and see if you can back-propagate a neural network having never created one before. Both exams were 40+ hours or pure wandering bliss.

To the reviewer below mine again. - Read, the directions when filling out the grid on the final. For crying out loud, each one of those squares in the grid was worth like .25% of your overall grade. You know dang well that the curve is a joke, don’t rely on it. They instructors wrote while laughing. “Haha - what if we make a curve that doesn’t do anything”

For that matter in regards to the exam questions. If it doesn’t make sense, just keep rereading it. Whatever you do don’t try diminish the experience of being lost by asking for clarification. -Piazza is closed and any questions will be immediately removed. Don’t worry, if the instructors feel lost rereading the exam while its out, they will revise it. If you already answered the question before the revision - slow down.

Ok in all seriousness…

The lectures are a mixed bag. They are a mix of Dr. Thad Starner, Dr. Sebastian Thrun, and Dr. Peter Norvig. These are all extremely well respected researchers. However, having so many lecturers it feels somewhat thrown together.

The material can be math heavy. There was a bit of symbol shock at times. Piazza and slack discussions were helpful to break things down.

About half of the assignments are really great. The other half not so much. I think they are made harder than they should be. I was so lost during decision trees. I am now taking M4LT and in there DTs were a cakewalk. It was just explained so much better in the lectures and the assignment reinforced my learning and understanding.

The book is a must. It’s got a ton of information and some of the algorithms are broken down well. There is just so much content its ridiculous.

This class has such potential. I learned a lot. I enjoyed about half of the assignments. Hated the exams. Dr. Ploetz did a great job during the office hours, but I’d rather this effort be put into the lectures. I had mixed positive and negative interactions with the TA’s.

I wrote this review after taking the ML4T midterm it was refreshing reminder of what an exam should be.

I appreciated the bickering going on between reviews and edits so I wanted to chime in. This class can be described as tough and unfair at some points! I don’t think I learned any more than I did in ml4t, I learned different things but I feel like I walked away with the same amount of knowledge. The only difference was AI makes you put in x5 the work. So the learning to effort ratio for this class is smaller than any other classes i have taken in this program.

A few complaints I can give are the midterms and the final. If you don’t have the flexibility to take a week off of work it’s really annoying because some questions require you to fill out a 8x10 grid of values so if you mess up one cell you don’t get credit. That doesn’t really do a good job of assessing your knowledge. more so a good job on data entry

I think it’s worth mentioning the curve is actually not helpful to get an A. The curve was a 90+ so they made it a 90, no rounding!

I didn’t have time to watch the last module lecture videos and they weren’t covered on the assignment. Those questions on the final I did the best on. That to me shows that the test doesn’t really do a good job testing your knowledge.

I missed a lot of probability and Bayes stuff on the midterm and they brought it back on the final so I can miss points again. Not a huge deal to me but everything in the first half of the semester is valued more.

The final and midterm aren’t really a “you learn a lot” experience for me. Also, there are some questions with 10+ revisions so Idk, don’t anticipate a stress-free time. You may have to rework some problems based on revisions. The professor is cool tho and there are office hours by the TAs.

I just wish the lecture assignments and tests had more overlap. I think having tests that take 40 hours isn’t meaningful. What stings the most is they received that feedback during the midterm and said they’d keep it in mind for the final. That didn’t pan out lol.

I don’t think this is an impossible class. I think computer vision had the same difficulty but that class felt more fun and fair. The exams were multiple choice and there wasn’t a midterm. The midterm was still a learning experience and I think i walked away with a lot more knowledge in that class.

I wouldn’t recommend this class for an elective. If you want a survey of classical AI, go for it, but do extra credit!!!

Some of these assignments were awful. There was one where they just linked a YouTube video and told you to follow it. Some of the assignments were fun, but it didn’t set you up for success on the exam.

I guess the takeaway from my word vomit is that this class has a lot of inconsistencies. But I want to give a lot of respect to the professor for being available on Piazza and giving office hours. Time to revamp the test though imo and get rid of assignment five I think

EDIT: TO THE PERSON ABOVE ME ATTACKING ME PLS LEAVE ME ALONE I AM SENSITIVE

*Note Not sure why the reviewer below me felt the need to dissect my experience and tell me Im lying about all of my opinions which, at the end of the day are my experiences and opinions not his or hers.

As stated below, I created this review because going into the class I was unsure of whether I would be able to survive due to my lack of math background and python experience. I had read many reviews that scared me and almost made me withdraw from the class before even starting. My original plan was to take ML4T to learn python and probabilities and then take AI but, I was unable to get into ML4T so I decided to proceed with taking AI despite not having the needed math background and not knowing python.

If I had listen to many of the reviews stating that it was impossibly hard and I wouldn’t make it, then I wouldn’t be in the position I am currently in succeeding in the class. Because of this, I thought it was my duty to help balance out some of the horror posts with my experience because that is what I would have wanted when I was looking at these reviews. At the end of the day, these are just my experiences. I consider myself an average programmer with below average math skills. Lastly, keep in mind that 1,000’s of people have passed this course before you and 1,000’s will pass after you. While this is a hard, graduate class in AI from a top Institute, it is not impossible and you have many tools at your disposal to help you learn and succeed.

Even though im only through 3 projects and haven’t done the mid-term yet I wanted to give my review for those considering the class for Summer or Fall especially after seeing some reviews that I felt were a bit dramatic.

First off, this is my second class with GIOS being my first. I came into the class extremely worried due to me never using python previously and have never taken a probability or statistics course. Ive never considered myself strong at math in general and after looking at the syllabus, I knew I was going to have to work more than others in order to complete assignments. With that said, I do have an undergraduate degree from a small school in computer science so I am not coming from an irrelevant background.

With my background stated, I want to briefly discuss my experience with the first three projects.

Project 1: Project one was pretty straight forward I thought. The algorithm we use is incredibly clear and straight forward. I would say the most challenging part was evaluating the potential moves. There wasn’t much math involved and we were walked step by step through the process on how to build each algorithm and how each algorithm was a progression of the previous. Overall, I was able to complete this with a 100% without having to start early and it only took me about a week. The second week I had free to start reviewing the lectures and readings for the next project.

Project 2: Project two was pretty difficult mainly due to the book keeping and trying to keep track of every element of the algorithm which, by the end consistent of multiple data structures. Again though, for this project, we are walked step by step and are shown how to code the algorithm and how each algorithm progresses from the previous algorithm. I was able to complete this one in less than 2 weeks with 92%. (We were given a week extension due to the snow storm in Texas but i didn’t want to waste my project 3 time trying to get 8%)

Project 3: This one involved much more math and pushed me way out of my comfort zone. As stated above, I have never touched probability or statistics so I came in completely new to the subject and concepts of Bayes Theorem and Bayes Networks. With that being said, I made sure to watch the lectures, take notes, and most importantly, talk to my fellow classmates in order to better understand all the concepts being taught. YOU CAN LEARN EVERYTHING YOU NEED FOR THE PROJECT IN THE GIVEN TIME. Don’t let people tell you that you need to be a master of probability or else you will fail. Again, I came in completely new to everything probabilities related and was able to complete the assignment with a 100% only using 1 week of the given 2 weeks. Additionally, I can assure you that no one who knows me would consider me any where near a genius.

TA’s: I have found the TA’s to be incredibly helpful! They host 2 -3 office hours everyday which is super helpful. Additionally, they will even hold code reviews for you and actually look at your code and give you pointers or ideas. This concept of a code review or individual one-on-one office hours were completely unheard in my previous class. This is all in addition to them being incredibly helpful on piazza as well. The notion that was stated previously that they don’t care is completely false and unfair to them and the effort they put in to our learning experience.

Fellow Classmates: I have found the communication on mediums such as slack and piazza from my classmates to be incredibly helpful to my learning. Whenever I was lost or needed confirmation that I was thinking about a problem the correct way, a classmate was always online and willing to help out.

Closing: While this course has been challenging, it is far from impossible and the TA’s and fellow students really do everything they can in order to help you succeed. Hopefully, if you are reading this and are unsure of your math background as I was, you can know that you can take and succeed in this course!

Right off the bat, if you had any doubts about not being ready for this class, or OMSC, I will tell you this: if you a) aren’t a genius, b)don’t have a CS background, c) already work in CS/software field, you’re not ready. if you aren’t cut from this cloth, you won’t make it. you can’t grow into it in the class; there isn’t enough time. Just save yourself the money. Sounds negative, but it’s true. I had my doubts, and I had an engineering degree, I work in data science field, and thought I could hack it. Nope. Everything online is like “work hard and try your best! You’ll make it! I was a film and social science major who worked the past 10 years saving autistic orcas by knitting them sweaters until i was 45 and then decided I wanted to be a software engineer and I’m doing it with a full time job and 10 kids, so you can too”. F that. this is real talk. If you aren’t one of the three things i mentioned previously, or you don’t have 168 hours to dedicate to this course and still don’t mind barely getting by, your done. As far as assignments go, they’re all hard. If you don’t know the material already, don’t even bother. Seriously. This isn’t about learning. “Oh I’m going to take this class so I can learn AI.” Nope, shut up. If that’s you, GT thanks you for your donation, see you next semester when you withdraw and try again. You’re just helping the curve. I’ve lived in this room for 3 weeks straight, haven’t left, trying to complete this assignment, and best I get is a 75. There was a literal act of God that froze over the state of Texas that extended the deadline a week. didn’t matter. Just another 168 hours of trying things, reading things, so much scratch paper, so much googling. doesn’t matter. I’ve never used up the entire ink capsule of a pen before, but I’ve done it twice now for this class. “Oh but that’s not bad, I’m sure with the curve you’ll do fine.” Nope, majority of the dudes on here are acing it. Piazza is just a circle jerk of who finished faster. They already know the material; if you don’t, gg. Don’t believe me? Verbatim quote: “luckily I get a 100/100 …now I can go out and buy a roasted sushi to celebrate.” Look up the syllabus from last semester, and if you can do everything there already, then you might be ready. there is no help for you. the TAs are a joke. they don’t actually care, or want to help, and why would they? How could they? there are 800 people on here. Text book was useful for the first assignment. After that, worthless. People say its a good addition to your “collection”. who care? you’re never going to look at it again anyway. The worst part? You’ll trick yourself into thinking you can do it. try to be positive and say “im doing this for the learning”. You’ll break yourself on this class, and there isn’t anyone you can reach out to to help you. No TA, no other students, no stackoverflow. There isn’t anything. Just you and your stupid brain, and your empty assignment.

EDIT: So I have a problem with the review directly above mine. The person claims to never have taken a stats/probability course and never used python before… right. In your entire CS undergrad. Was your degree even accredited? Because if it was, then those are just bare-faced lies. And it’s reviews like this that give people a false sense of reality and hope. This isn’t some fairy-tale where you start from nothing, go through some Rocky training montage, and then suddenly get all A’s and get the girl. This is reality. People’s time and money are worth more than the bs sense of having put “positive vibe into the universe” by writing a bs review like this. Positivity is good, but when it doesn’t reflect reality, it’s not helping anyone. If what that review as far as their background goes is true, and they aren’t b)don’t have a CS background, c) already work in CS/software field, then they are a) aren’t a genius, in which case, congrats to you, your review means nothing to the rest of us who aren’t geniuses.

Project 1: Project one was absolutely NOT straight forward. The algorithm was neither clear nor straight forward, and there wasn’t a lot of instruction or guidance to make it straight. Come on guy.

Project 2: I actually laughed out loud when I read “we are walked step by step and are shown how to code the algorithm and how each algorithm progresses from the previous algorithm”. That’s laughable. If by “walked through the algo” you mean provided a single iteration of the the simplest, most basic use case there is, sure I’ll give it to you. It’s the classic joke where the teacher says “1+1=2” in the lecture, and then the assignment is “2+2= calculate the mass of the sun. Your unit of measure is a grapefruit. That’s all the info you need. Use the example from class. Show your work”. Come on guy.

Project 3: YOU CANNOT LEARN EVERYTHING YOU NEED FOR THE PROJECT IN THE GIVEN TIME. Listen to the people who tell you that you need to be a master of probability or else you will fail. No one believe that you’re bright eyed bushy tailed prob-stats no python virgin. Okay bro.

TA’s: This part is convincing me that this review must have been written by TAs. While they host 2 -3 office hours everyday, the quality of individual is highly suspect. These are not one on one session; its more like a mob of people breathing into the mike, rushing you rudely to finish and hurry up while the TA “reviews” your code, says we’re out of time and that he will look at it off hours, and then two weeks after the assignment is done, he messages you back and asks if you got the help you needed, and then doesn’t even wait for your response and marks the post as “resolved”. I don’t know who you were getting your code reviews by, but after going to 6 sessions, all of which I had to join 2 hours in advance to be first/second in line, I’m tired of getting the cookie cutter response equivalent of “did you try turning it off and on again”? The TAs are trash, they don’t want to be there, and it shows.

Closing: Hopefully, if you are reading this and are unsure of your math/programming background as this guy claims to be, you can know that you can NOT take and succeed in this course! If you’re living in the real world with the rest of us, heed my advice:

Google the class, as there are numerous leaked github pages on it. See if you can do any of those assignments. If you can, you might make it. If you can’t, don’t sign up. Figure out those assignments. Once you figure them out, then join.

This course is my 4th in the program, previously took KBAI, AI4R, and GIOS. Definitely is a differently structured course than those mentioned before, but overall I think it was a good class. A bit of a rough start with the first project due to it not being quite prepared, but following some backlash from students on how that was unacceptable, it seems the course really got a lot better and the teaching staff took the advice to heart.

Here’s my quick dissection of the course:

The lectures are decent, but the textbook (Artificial Intelligence: A Modern Approach) is much better, and honestly anybody remotely interested in AI should pick up this book, it’s a fantastic reference.

The projects are pretty good (as in, they cover helpful topics in an applicable way that is interesting), but the experience you have with them will most likely be a little rough at the beginning (mostly the first project) of the semester and get better over time, as the first few projects (at least, in their current order at the time of writing) are re-written each semester.

The exams in this class are long (30ish pages), but very doable. They are 1-week take home with open notes/lectures/piazza. Previous reviews have said that the exams are horrendous with lots of revisions throughout the open period, and that may have been the case at those times, but my experience was just fine. They kept a “Clarifications” piazza post open the whole week, and we never got any “question revisions” throughout the week, and most of the clarifications they made were very helpful. Be sure to check these posts throughout the week just in case.

Overall, I think the concepts of this course are interesting and definitely important if you want to pursue AI. I personally don’t find them too challenging but that is completely subjective.

My advice: If you want to take this course, definitely go for it! It covers really great topics and good foundational knowledge in AI, just be prepared to really dig into the material in the beginning of the semester and start all of your work early so you don’t get caught near the end of the deadline having no work being done.

As for the review above mine, it is extremely overdramatic. I put probably 20-25 hours in per-week and work full-time on top of it. It does give an advantage to know the material beforehand (obviously, but why would you take the course if you already know all of the material?), but the course description outlines prerequisites of things you probably should know (basic stats/probability, comfortable programming in python, working knowledge of calculus and linear algebra, etc.) As somebody who is by no means a math-wiz, but does have the foundational knowledge they suggest, anybody that is comfortable with the prerequisites should be fine. This does not mean you will fly through it in 10 hours a week. It means you will have to spend the proper time to take on the workload, but you won’t get absolutely lost while doing it. The class has multiple hundred students and the teaching staff releases grade distributions on each project, and in those distributions, there are very few people more than 1 standard deviation from the mean, and most of those are people who just didn’t submit at all. I’m sorry you feel lost, but you should not drag down other prospective students because you haven’t utilized the resources available to you (TA office hours, Piazza forums where you can freely interact with students short of violating the cheating policies, the textbook, 1-on-1 messaging with the TAs, etc.). Their point about there not being enough time to learn everything you need to know for project 3, during project 3, says more than enough. Project 3 requires basic probability and statistics knowledge to complete (Bayes Rule, Law of Total Probability), which is a prerequisite of the course, you should not be learning prerequisites of a course, during the course.

Like I said in my advice, if you’re interested in the topic and you feel you have the prerequisites covered, absolutely go for it! I’ve enjoyed the class (aside from the rough start on project 1) and have learned quite a bit.

This is a great course to take early in your OMSCS career. Fantastic assignments. Great class if you want to front-load work. The lectures are lackluster and the exam experience is horrendous. The textbook is good and accessible. I compiled some practical tips here

Personal Background: Undergrad in Mechanical Engineering. No prior CS experience before this program(OMSCS). 4th course. First course in anything AI. Got an A without too much trouble.

Thoughts: I loved this course and learnt a lot about the field. This course taught me enough to feel like i can intelligently talk about AI and have a look under the hood to see what all the hype is about. I think this is a great intro into a large and diverse field.

The course material will at time feel overwhelming. This is because they are going for an overview of a large field so they jump from topic to topic every 2 weeks or so, each worthy of its own course. So if you feel like your brain is breaking, don’t worry I think it’s supposed to and you will be fine. Hang in there and see it through.

Textbook: Firstly and most importantly, get the book. There is a free one online but you can also buy it. I did and I think its a good investment as it is a great book and i definitely see myself coming back to it in the future to brush up on concepts i am trying to implement or discuss. The lectures are not very good and the book helps a LOT!!! The lectures help you read the book, so watch the lectures and then reading will give you a better intuition to get through some of the more mathy parts. The book is a lot more comprehensive than the course and you definitely don’t need to get every sentence (or section for that matter).

Time: So this one really varies, as with most courses. The topics you will touch are so deep and the book is so dense that you could easily spend all the time you have available and still feel like you are only scratching the surface. I think with about 20 hrs per week avg you could get an A. getting a B is a lot easier and i could have probably done that at half effort (10hrs/week). Although if you find the field interesting you will find it hard not to put in more time and will not regret it.

HW: First 2 assignments are like a (good?) relationship. Challenging, frustrating, take a lot of time and the finish is very rewarding if you move your figures on the keyboard just right (if you get your code to work, what were you thinking?). The rest of the assignments are less work. They are all fun and I feel like it is where i learned the most.

Exams: Take home week long ordeals that take all your patience and concentrations. They are longer and more annoying that they are difficult. Some of the questions are fun and they feel like teaching more than testing.

Lectures: Not a fan but helpful to get through the book.

Pre req: Python, and Some math(probabilities and linear algebra intro.) or willingness to spend extra time with it.

End: I am glad i took this course. If you end up taking it, hope you enjoy it too and see you on the other side.

I attempted this course in Summer 2020 and had no idea what I was getting myself into and subsequently dropped before the midterm. If you are like me and hadn’t attempted a core specialization class (not a specialization elective or 15-hour anything elective) there IS a difference.

I am happy to say I was able to obtain an A this time around. Would not recommend taking with another class if you work full time like me.

If you’re skimming these reviews here’s my big takeaway: Do the textbook readings! - and treat the lectures as supplementary. There is almost nothing in the lectures you won’t learn 2-3x better by reading the chapters. This is the biggest factor for me from my previous attempt and this semester. The lectures aren’t bad but I want to stress the reading because I know some courses in the program have reviews saying the textbook doesn’t align well with content, etc. Not the case here.

There are plenty of comments about the projects; they’re all hard, but the first 2 you will fight with a lot more than the others. If you do poorly on more than 1 project you should probably drop since 60% of your grade.

The midterm and final were a time sink, 39 pages (~30 of real work) and 61 pages (~45 of real work).

I took one day off of work for the midterm and worked 12 hours 3 days in a row and was able to get an 89 and felt confident but exhausted. The midterm felt like an extension of the projects with a couple sections with non-project related content that held your hand pretty well.

I took two days off for the final and worked 10 hours 4 days in row and felt like I utterly failed it and received a 77. I definitely would have scored better had I spent another day. The final had sections in the beginning that were extensions of past projects but they were weighted low and ultimately it focused on post-midterm content while having more non-project related content that did not hold your hand as much as the midterm while being weighted heavier. Therefore, in hindsight, definitely look at the past finals and challenge question posted on Piazza specifically for the final (the midterm at least based off of this semester I don’t think you need to do this).

Ultimately the class felt like a strenuous hiking trip: in the moment you might not be having the best time, but looking back it was a great experience. I learned a ton and feel confident in my ability to work on AI related content in the future.

This is my third course in OMSCS and I took it along with ML4T. This course is tough, time-consuming, but very rewarding. You will learn the cool things like minimax, search algorithm, baynes network and sampling, random forest, Expected Maximization and Gaussian Mixture Model(GMM) and Hidden Markov Model.

This is a broad survey course, and the important aspects in AI are introduced in a beginner~intermediate level, and you can definitely do more work on the area that you have interest. With that being said, this course is still hard, and requires a serious time commitment. The first and second assignment are brutal, and once you passed them, you will find the rest way more gentle. Start the projects ASAP, unless you already have previous background, you can’t finish the projects in just one weekend.

The midterm and final exam are take-home exam, and are also time-consuming. Prepare enough time, since one weekend is probably not enough. Some parts in the exam are just like you follow the steps, get the results then answer the questions, while some parts are more challenging. I will say the exam is not extremely difficult, but it is indeed time-consuming.

I will highly recommend this course, since it really makes me learn a lot of things and realize OMSCS is an actual graduate program, don’t expect anything easy. But it’s very doable, if you are willing to spend efforts and time.

The majority of the comments say that this course is hard/very hard. It can be true if you do not have a good understanding of foundational topics in algebra and statistics. I would not say that I was very familiar with the topics covered in this course, but I find it relatively easy to follow and learn them because at the end of the day they were built on top of some statistics/algebra foundations.

So, here is a list of my suggestions/findings for those of you who feel comfortable with algebra/statistics and using numpy library (you do not need to know everything as long as you are comfortable with studying the documentation to develop a better understanding of some functions):

1) You can safely ignore the comments which evaluate this class as hard/very hard. Don’t let these comments intimidate you.

2) Do not expect to learn much from lectures. The reference book is the best resource (you can use lectures as a starting point, but only relying on them is a mistake in my opinion). Also, do not expect the instructor/TAs to provide you with complementary materials in addition to what has already been provided. However, they are very responsive. So, if a topic is interesting to you, and you want to learn more about that topic, it would be a good idea to ask teaching staff for materials in addition to what has been provided already.

3) The exams (midterm and final) are long, but I did not find them as hard as they have been described here. I would say maybe around 20% of the exam problems were interesting (and may be challenging depending on your preparation), but the remaining 80% was plain simple. For instance, in the final exam around 50% of the problems required you to just follow the steps that were clearly specified in the problem, and you just needed to do some basic math to get full credit.

4) The biweekly assignments can be interesting. Some of them (the first two) require more time than others, but they are all doable within a reasonable time.

For those of you who do not feel comfortable with your algebra/statistics and using numpy, I think it is a good idea to pay attention to the comments here describing this course as hard and follow their suggestions.

dont take it if you dont have enough time and if you are not talanted.

i have spent average 10 hours a week and now as the final exam score released i know i have no chance to get a B because there wont be a lot of curve.

this is the most struggling and frustrating course i have ever taken. 6 proj and 5 of them matters and occupy 60% of total score which means bascially all your time are filled. and pls dont trust others saying on this forum that only the first two proj are hard. i spent the Time And I Know Now None Of Them Is Easy!!!

I really should have dropped this course earlier. please drop it whenever you receive any 2 proj bad score. Because there isnt much curve at all. Trust me because the mid term and final will be harder!!! if you are just thinking of not wasting the tuition fee therefore push yourself on catching this course. what you will recive will be: 1 ruined your gpa 2 lost your interest in AI. what i learnt from this course is that maybe AI is not the area for me. i dont have the right AI brain. 3 spent many not sleeping weekends catching the proj deadline but still receive low score => ruin your health 4 continue thinking yourself rubbish and fool => ruin your inner peace.

i took other so called hard courses previously but none of them is just as frustrating as AI to me!

The world is good and there must be many other right things for you elsewhere.

Overall, a challenging but rewarding class! Although each course I’ve taken in OMSCS (I’m about to graduate) has provided a learning experience in different ways, this one was one of the best.

As others have mentioned, the first two homeworks are the most time-consuming in that there are several nuances to the projects that need to be tackled in order to achieve full credit. It’s easy to fall down the rabbit hole of trying hours of optimizations that fail to lead above an 85 or 90% on these assignments. The remaining assignments are not trivial by any means and will require you to develop at least a measure of intuition on how and why the algorithms work. However, with enough effort, it is more straightforward to achieve full marks with these (but don’t start too late!).

In summary, the assignments have you implementing various AI and ML algorithms at a low level, while still achieving a decent rate of performance. Really, there’s more than enough content in this class to fill a semester. The take-home midterm and final exams basically serve to “fill in the gaps” by having you understand certain lecture topics more deeply – some involving concepts related to the homeworks directly, tangentially, or not at all as different topics. You’ll find yourself learning as much during the exams as you did during the homeworks. They are time consuming but I found them rewarding by reinforcing or solidifying concepts I felt weak in.

The lectures are a bit of a mishmash in old vs. new content. In some cases they serve as a high-level summarization of topics and can breeze through them too quickly. The textbook is fantastic and offers a wealth of deep content that will help you understand the material more thoroughly. In some areas it gets a little math-heavy, but with a gentle approach to walking you through it.

I’d definitely recommend this class as well as Reinforcement Learning to those looking for rewarding yet challenging class content!

See this course as a combination of an advanced algorithm course (the first half), and probability/stats/ML (second half).

The first 2 assignments are extremely time consuming, and the midterm and final exams are beasts.

To reduce your stress:

  • make sure you do your best for assignments (1 out of 6 can be dropped)
  • attempt the bonuses and collect as many points as you can from them

If you do the above then you have a much better chance at getting an A.

Midterm/Final are take-homes and extremely time consuming (40 hours easy); our midterm was full of terrible errors too and had a lot of clarifications. But like any exam getting a 60 is much easier than getting an 80 is much easier than scoring 90+: assignments and bonuses will help you edge out with a victory even with an imperfect score.

The course tries to cover most of the AIMA book, which itself is one of the very well-known books in CS. Whatever time you put into this course is time well spent in my opinion. There is reason for this course being rated both difficult AND highly liked by reviewers. In my opinion if you are not sure whether you want to take this course or not then: take it.

Speaking of TAs/Prof/overall experience: This course is very well run. Piazza posts from classmates are awesome, and TAs do their best to help you. They deserve a big thank you for running a great course and creating an awesome experience.

Solid course. A lot is covered which will expand your problem-solving skills. I found the subject matter itself to be very interesting. All you really need is to be comfortable with python, and some experience with numpy/matrices.

The instructor (Dr. Ploetz) is pretty cool. He was actually involved in discussions and answered questions, communicated often as well. TAs were good, overall pretty responsive (never attended office hours). No complaints here really.

Lectures were mediocre. I felt like they were too short and shallow. Useful for general understanding, but overall lacking in substance. Textbook covers way more than the lectures and technically well written, it’s just really dry and kinda boring to read, you don’t even need to read it really. It’d be nice if there was some in-between.

Projects were difficult, but given how short the lectures were there was plenty of time to do them if you were consistent. I would not spend over a few hours at a time working on them since they’re split into sections. I saw some people claim that they worked like 50+ hours on them. That probably means you’re fundamentally misunderstanding something and should take a break. The first two I thought were conceptually the easiest, just very tedious to do, I’d just leave it if you have like a 90 and got busy. Overall they were interesting and helped me consolidate the concepts learned.

Midterm had a lot of corrections, which was kind of a pain, but looking back the questions weren’t that difficult, just not well written. Most of the clarifications weren’t that necessary, other than the ones that changed the question being asked. The final was supposedly going to be easier, but I found it much more time consuming, containing a few topics that you couldn’t really study for. Overall exams were alright but stressful to keep up with the changes. Definitely don’t need to take PTO, unless you’re working like 60+ hour weeks or something.

This class is very difficult and very time consuming. If you work full time and especially if you have a family this course will be a lot to manage. My bed time shifted to between 2 and 3 am nightly because of the projects. I actually enjoyed A1 but A2 was a nightmare. I was physically ill after completing it and had to take a day off work. On the positive side, the T.A’s are really helpful, Dr. Ploetz is a good professor, and you will learn a TON in this class. This is definitely a no pain no gain type of class and I can honestly say that I know far more about the field of AI, including ML, than I did before.

As for the projects, A1 and A2 were by far the most difficult. These projects weed a lot of people out of the class. The other projects were not as bad but that is relative. The exams were brutal. There is no other way to say it. Not only are they challenging but they are also mentally taxing. They are take home and open book/course material etc. but you can easily spend 40 hours on them and have to take PTO from work. Some of the problems required a lot of clarifications which was a serious problem on the mid-term but they did do a little better on the final. While the exams were extremely challenging, I will admit that they do help you learn the material better.

Unless you have a lot of time on your hands I would not recommend taking this course as an elective. The level of effort required is just too great. Also, if you do not know how to code well you will struggle. This is not a class where you can just skate by with limited coding skills.

All in all I’m glad I took the class. The students were great and I really felt like everybody looked out for each other. Piazza and slack were very helpful when it came to understanding how to do things. Bottom line, this class is no joke and unless you have seen the material before or you are some sort of genius it WILL take a lot out of you. That’s just the bottom line but if you make it through it will be worth it.

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.

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.

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.

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.

#How to get an A despite full-time job and kids

You’ll have to do several of the following: 1) Take Berkeley’s CS188 MOOC (or equivalent, which covers same material (https://courses.edx.org/courses/BerkeleyX/CS188.1x-4/1T2015/course/)

2) Start A1 and A2 before class starts (they are the longest; all assignments are posted in Github at the start and don’t change much year to year, so you can either start the class and drop or find the current repo)

3) Finally get comfortable with Pycharm, unit testing and TDD… debugging in this class is super hard and kills your time… the more modular you make your programs and the more you use industrial strength IDE like Pycharm, the fast you’ll be

4) Plan to take week off for each exam (they are week-long… I took a week off for A2 and for the Midterm which earned me enough points to need only 40% on final)

5) Form a Slack study group. Piazza is great but just a BIT too slow and indirect when you have scarce time… so find a group in the intros page of people that seem to care, and ask them to join a slack group

6) Know Python and some linear algebra in numpy… honestly, I can’t imagine taking this class while having to learn Python or numpy or linear algebra… just REFRESHING myself on some of those was hard enough

7) Don’t be tempted by hard extra credit, do the next assignment. At some point I had a choice of a) going for 5 points of extra credit by improving a bot; or b) moving to the next assignment early… after 20 hours, I couldn’t get the extra credit working. If you’re working, there might be a 50% chance you get 5 points of EC (2.5 pts expected value) but assignments are so hard there is like a 10% chance you only get 50 on an assignment (expected loss of 5 points).

8) Optional… do a minicourse on bayes, bayes nets and various bayes related algos… while not as conceptually hard as some parts, the class seems to have decided this is the sweet-spot for forcing you to get creative so the more comfortable you are, the more easy points you can pick up

This class’s reputation precedes it as hard. It is not. I really didn’t want to take the class because there was a fair amount that’s not terribly relevant to me. I was basically forced to take it as it was the least worst class available.

Here’s how you succeed - the lazy way. It’s true, the first 2 HW’s require the most effort. You can game grading this way. Try to get at least a 90 on either assignment 1 or 2. Getting 100’s on the last 4 assignments is a gimme. The throw away grade should be either A1 or A2. stop when you get over a 90 ” on A1 or A2 - pace yourself. If you want to put in the extra effort for 100% - go ahead and burn yourself out. If you get a 90+ on A1, doesn’t mean you shouldn’t do A2 - A2 stuff will be on the exams.

Didn’t do any of the extra credit (except for what’s on exam) or any of the challenge questions.

I took PTO for the exams here - I did spend about 20 hours on the MT and final. You don’t have to take PTO, but I don’t like juggling. Indeed, the exams take quite a bit of time - budget for it. The exams more or less test if you can apply concepts learned to something you haven’t seen before. Don’t let that scare you, but you do learn a few things when you’re done.

Didn’t really read much of the book. I mostly used it as reference to do assignments. Lecture videos were okay. It’s true, the class slows down after the midterm. I did A5 and A6 in two consecutive days total and virtually had the last month free. Gradescope was nice because it was instantaneous and left no doubt where you stand gradewise. Slack and piazza are your friends.

This was my 3rd class at OSMCS, and I’m expecting to receive an A.

Lectures: I really enjoyed the lectures. I thought the material was accessible and they weren’t a complete snooze fest. It varied between the main instructor, Sebastian Thrun, and Peter Norvig depending on the lesson. The ones by Thrun/Norvig were much lower quality and essentially watching somebody write equations on pieces of paper, but they were still fine enough.

Assignments: There were 6 assignments with the grade composed of your 5 highest homework grades. The first two were pretty brutal, and I walked away with a grade in the mid-90s. Those two will probably run you 15-20 hours at least. The last 4 were relatively straightforward and didn’t take too much time. You also get 2 weeks for each assignment. If you can manage to complete it in one week, you’ll get every other week off. I would not recommend dropping any of the assignments without doing them because that info pops back up on the exams. There’s also plenty of extra credit to make up for poor exam grades.

Exams: The exams are something I’m torn about. On the one hand, I did enjoy that the exams often walked you through new problems and sometimes were even meant to teach you things by you working out problems with knowledge you’ve learned. On the other hand, the length is extraordinary. The final had 60+ pages for 10 problems. While not every page was filled with problems, it was a behemoth that demanded your attention and ate into your life. I disagree with others about having to take PTO for it. You normally get a work week + a weekend (sometimes a weekend + a work week + a weekend), and it’s open notes (not open internet). I found that time to be manageable as long as I worked on the problems in my free time and all weekend. If you have less time on the weekend or work week, you might consider taking off from work.

The other horrible, horrible thing that should absolutely get fixed are the clarifications. The exam is not complete when you’ve worked through the pdf they gave you. As the teaching staff and students discover errors, there’s a piazza thread that gets updated with clarifications or corrections to the problems. Sometimes, the problem simply needs more explanation. Other times, the teaching staff absolutely missed marking something, as if they had submitted their first draft of the proposed problems without checking it over. Students shouldn’t have to point out that the teaching staff didn’t label a part of a graph that should be labeled. A 60 page final is enough work. The result is that you have to flip back and forth between the corrections thread updates. Some students finished problems and had to go back and re-do them because of corrections. TEACHING STAFF, THE AMOUNT OF CORRECTIONS IS UNACCEPTABLE. This problem is my biggest with the class because it is incredibly avoidable (barring infrequent, minor corrections) and disrespectful of student’s time.

Advice: This class is a beast, but it’s enjoyable. Start early on the assignments, make sure you’ll have enough time for the final, and check the corrections thread. Be comfortable reading math symbols/equations.

Don’t get too intimated by the threads you see here. It’s a hard class, but it won’t destroy you if you don’t let it.

Overall, this is probably the best course (6 courses in) that I have taken so far. This class is not difficult in the sense that there are concepts that are hard to understand. It is difficult because of the high workload due to assignments, readings, and exams.

Firstly, the book that is required for this class is AI: A Modern Approach, and is by far the densest textbook that I have read. Every read of the text feels like I am working out my math muscles, and I usually end up getting tired of reading it or, on shorter chapters, feeling like I learned something. It can often be used to replace the lectures in this course. In the second half of the course, to be honest, I stopped reading the book. In the first half, I don’t think you could get through the course without it.

The lectures themselves vary from excellent to very poor. The lectures from Dr. Starner are very dry and feel lifeless and scripted. It’s because they are just reading off a teleprompter. They kind of stare at the camera awkwardly the whole time like Godzilla is coming at them. While Dr. Starner is obviously very passionate about AI, I don’t feel the lectures do a good job conveying that enthusiasm. There are also some lectures that skim over the details of complex ideas, such as the section on Neural Networks. On the other hand, the lectures from Sebastian Thrun and Peter Norvig are excellent. They may be old, but the quizzes will test your knowledge and there is mostly enough content to not need a thorough book reading.

The assignments in this class, ESPECIALLY the first two, are very very very time-consuming. They are also the best assignments in the course. My advice is to start early, keep at the problem sets and if you get stuck, try something different. Eventually, the nuances of these algorithms will stick. Thankfully all of the assignments are auto-graded, so you can have confidence in what your grade will be and continue to make improvements. The later assignments are much easier and require only one or two aha moments to pass.

The exams. The exams. The exams. Oh boy. Please take PTO at your work, I’d suggest 3 days if you can spare it. Each test took me about 30 hours to complete. I have a love-hate relationship with these exams. They are take-home exams, you have a week, and you can use materials from the class. On the other hand, they are 30 hour long tests. On the final, they actually had us look at NEW material that had never before been covered, and I personally resented that as it does not test your understanding of the content we covered in the class. They also make a myriad of mistakes they have to go back and correct, which is a pain for someone like me that starts as soon as the exam is released. On the other hand, these are the only tests I have ever learned something on, maybe as much as the assignments. They will solidify your understanding of many concepts that may have been covered haphazardly in the lecture material.

I have to say the TA’s and Dr. Ploetz are some of the most active and helpful community I have had in a class. Response times typically take an hour at most, and the comments are usually helpful. They take feedback, offer tons of extra credit opportunities, and foster a community of students that help one another. On three of the five assignments I completed, comments from other students really helped me to get some concepts to click.

Finally, my big piece of advice is to complete the readings and lectures for Search and Gameplaying BEFORE you start the semester. This will give you a tremendous advantage in the hardest part of the course. This is a heavily front-loaded course IMO, and if you can help it, stay 1 week ahead always in this course. This gives you a nice buffer in case you struggle with something and now you have time. Overall, excellent class and really a must-take.

Generally interesting and well run course. Gives a good perspective on non-ML approaches to AI, which basically means search algorithms.

There was one huge exception to this being a good course, which was the exam. Given 1 week to complete, it was so ambiguous and the questions needed so many corrections. Like 5+ corrections per question on the exam, only noted on Piazza and not in the exam itself, some changing entire answers or answers, and some made on the final day the exam was due. Completely unacceptable and disrespectful to students. Do a single proof read before releasing it for goodness sake. By far the most frustrating and unprofessional experience I have had in OMSCS.

With that said, the entire rest of the course besides the exam was well done.

This course would be a good intro to take before ML since it introduces concepts lightly. If choosing only one between this and ML, take ML because it goes much deeper.

This is my 4th OMSCS course and is so far the worst one. If you want to learn AI, do not take this course - go to YouTube and watch CS 188: Artificial Intelligence from UC Berkeley (or AI courses with good rating from other top tier universities) for free, and I am sure you will gain a lot more than taking this course.

Here are the reasons which you should not take this course:

Video lectures are really bad. It makes materials which supposed to be fun and interesting extremely boring and dry, and makes me fall asleep as soon as I hear the lecturers talking. These are some of the worst online video lectures I’ve watched. If you want to learn AI, search for CS 188 video lectures from UC Berkeley, and see the difference in lecture quality yourself.

Exams are disasters. You will spend 40+ hours on a midterm that didn’t really test your understanding of materials but tricks into calculation traps. Every question in the exam has typo and errors that requires you to go to Piazza and check for Errata post which is constantly being updated (even before the night which the exam was due).

The first project (game tree) and the second project (search) are very time consuming. You will spend a lot of time on them but hopefully you will also learn something. The rest of the assignments are very average. I don’t feel I’ve learnt anything after I spent tens of hours on those projects.

This class is very difficult and will punish you heavily for taking too long to start on the projects. I would recommend starting the projects as soon as they are released, especially for the first two.

That being said, the projects and the 40 page take home exam will both teach you a lot, and I found the material difficult but not difficult enough to be overwhelming.

Would highly recommend this class for anyone who has a remote interest in AI.

Very nice class, one of my favorite ones until now.

But the content is very extensive:

  • some weeks the lectures are a huge amount of hours (they put together several chapters of Sebastian Thrun and Peter Norvig’s Udacity AI class).
  • the projects are very interesting, but, unless you have experience in some related field, they will take a lot of your time. In some projects, I felt pretty lost (the first one, Game Playing, is quite hardcore), and I do recommend starting ASAP working in them (especially the first), or you would run out of time.

Before taking it, you need to have a good level at statistics (I would take a look at the Khan Academy, or the MITx course), and having a good/deep understanding of Python would also help. I recommend you to watch the lectures in advance, before taking the class, if you can.

“AI: A Modern Approach” (3rd edition right now) is the reference book, with weekly lectures will be recommended, so, you will need it (there are digital versions), and they will provide many papers to be read: expect questions about concepts that these papers analyze in the Bonus part of the exam.

Exams are published and you have a weed to finish them. It might seem a lot of time, but it is not, you might pretty easily run out of time, as in the next case… Read the Piazza’s Exam Clarification Threads before starting these exams: they will correct unfortunate exam errors, some questions answer might completely change, and you can lose up to 1 morning if you do not see it before (it happened to me… it is pointed out in the last page of the exam, I think they should put it in the first). I still feel disappointed about this, I didn’t even expect that such thing could happen.

I recommend to do the challenge questions, as they will help you a lot in the exam. If they publish some old exam, do it in advance as well.

If you are working at the same time, I recommend not to take any other topic during the same semester.

Of the 8 courses I’ve taken in the program, this was either my first or second favorite. First time this was offered as a Summer course, and they did an excellent job adapting it to a shorter semester while still maintaining as much course material as possible.

Instruction Team was excellent. The professor was active and involved in the course, recording regular “challenge question” solutions to emphasize important course concepts.

The lectures are a bit dated and could probably be updated and improved.

The projects were challenging and reinforced course concepts. I liked some a lot more than others, but all were great learning experiences.

The final, and only exam, was a large week-long project. Some people will say they took off of work for it. I did not find that necessary, but did spend 30 hours total on it. I think the format of the exam was much better for teaching class concepts than the traditional “2-hour exam block.” Even though some complained, I think the overall sentiment for the exam was very positive and along the lines of: “Even though that was crazy difficult and tedious, I certainly learned way more than a normal test and am glad I made it through that. The novel format works.”

The course also came with a number of extra credit opportunities that were really fun and interesting. I didn’t get to do all of them due to life stuff, but I had a lot of fun with the couple I did work through.

Heavy workload, but no pain no gain. Everything is in python for the projects. This is not a “learn how to code class”, you need to come in with strong fundamentals.

Overall the course is great. I learned lots, the lectures are fun and the assignments are interesting. They’re also available on github (small changes are made each semester) so you can start early if you want.

I also didn’t think most of the course was that difficult. Provided you have decent python foundation, you should finish most assignments within one week and have the second week to do other things. That being said, this was the summer session so we didn’t have a midterm.

The exam was a trainwreck. I’m not saying don’t take this class because of the exam, but it was the last thing we did in class and it left an extremely bad taste. First off it’s take home, open book, open lectures. I think the format is great and I actually learned lots of things during the exam. And yes, it really does take 40 hours. BUT our exam was full of mistakes. I’m talking about actual errors. As in numbers in tables were wrong, multiple choice questions didn’t have a correct answer, equations were incorrect … In the end I think there were around 20 corrections (and even more clarifications) on Piazza plus they published a second version of the exam a few days in to also correct things.

Then when we got the answers there were more mistakes in them and the exam was re-graded for everyone to account for that. As a result I think the exam was mostly frustrating and not really a good evaluation of student performance. Plus I think it could have been designed better to give partial marks. For some questions you had to do lots of tedious calculations that all build on each other, so if you get one wrong, you’re loosing a lot of marks

Overall the course was great, and I highly recommend you take it, despite the shortcomings mentioned below. I enjoyed the lectures and homework assignments a lot. The first two assignments were pretty time consuming but well worth it, and it got easier from there. Even with the problems with the final—worth 30% of your grade—it was not too hard to get an A.

The final exam, however, was a nightmare. There was no quality control, and the question quality varied drastically between the 10 sections. Some were riddled with errors and ambiguity, requiring last-minute clarifications and regrades. While the questions were not particularly difficult, it ended up being extremely time consuming and stressful since I had to sort through many possible interpretations of each question to try to figure out what was being asked. Hopefully the TAs and professor recognize how problematic the final was, given the barrage of complaints from students on Piazza, and will fix the process.

There were also several instances where TAs and the professor did not respond or equivocated over serious issues. For example, when Gradescope went down the night of one assignment’s deadline, no clear answer was given to the many students, including myself, who were trying to submit. Essentially we were told, “just wait and see,” which meant staying up until 2 am trying to submit with no luck, giving up, only to find out the next day that the deadline would be extended. The lack of communication was a recurring theme, culminating in the frustration over the final exam.

The only thing I’d do differently looking back: I wish I’d spent more time reading the textbook (instead of watching lectures) since its very well written and much more comprehensive.

Very interesting course, highly recommend. Has some content overlapping with some other ML course, but in a more generalized and high-level way. Assignments are super interesting and intense I spend almost over 20 hours on each assignment, but they are really helping me understand the materials. I really liked the course!

Not hard, but can be tedious. The lectures tend to be sufficient to learn everything you need. The textbook is a useful resource also.

Only need to complete 4/5 assignments (Summer), or 5/6 (Fall / Spring). But best to do all, so that the Final is easier.

The projects tended to be pretty long, albeit very structured and helpful. There was always a ton of information about how to complete each section. Piazza was filled with useful tips.

The material is very useful and interesting. Worth learning.

Final exam was extremely tedious, and absolutely riddled with ambiguities so that you had to constantly read Piazza to see responses. I spent about 40 hours on the final exam because of this nuisance. Constantly asking questions to clarify the ambiguous wording.

I think the exam should normally take around 15-20 hours if done very carefully, but because of the constant checking of assumptions and poorly worded questions, the time to complete doubled. The problems on the final were extremely tedious, because if you made one small mistake (miscalculated something small), this could snowball and make you lose points on the entire problem. No partial marks for the process or work completed. One mis-calculation and it’s all over.

If you get 100 on 4 of 5 of the assignments, it shouldn’t be too hard to get an A, as you’ll only need about 70% on the final exam to do so. If you’re not so sure, make sure you do a bit of extra credit to help relieve your stress on the Final grade.

This was the first class of the program where for some of the assignments, I didn’t know how to get 100% (Game Playing, Search). I don’t mean like, I didn’t get 100%, I mean like, I didn’t even see the route. But to me, that’s awesome, this is a field where gains have come from some seriously smart people, not being able to see the paths they’ve taken just gives a greater appreciation for the field as a whole.

My only complaint would be the Norvig lectures, they’re pretty dry/bad.

The class is an overview of several major components of AI: Game Playing (Minimax/Alphabeta), Search (A*), Bayes Nets/Probability, Decision Trees/Random Forests, and Hidden Markov Models, with some machine learning and other topics sprinkled in. During the summer there were five assignments, with the lowest score dropped, and only a Final, no midterm.

Personally I found the first two assignments (Alpha-Beta & A*) the “easiest”. They’re the simplest to get the concepts and then you just need to figure out how to code them and work through the details. The latter three I found harder as they were more conceptual/theory based. Everything is all very doable if you put in the time, but expect to spend 20-30 hours per assignment and for the Final.

All assignments were submitted to Gradescope and most you could keep submitting to test you could, though two of them you had limited submissions but better local test cases. The Final was beyond comprehensive, covering subjects from every lecture, the readings, concepts that weren’t in class and you had to learn as part of the test. HOWEVER, the Final had… a number of errors. Like the right answer wasn’t an option on the exam. During Final week you HAVE to be watching Piazza regularly for updates. Start early if you can and don’t hesitate to message the TAs. Get as many points on the projects as you can, the exams are brutal and will pull your grade down.

To be setup for success, I’d say know your python/numpy as well as you can. Also if you’ve taken ML or RL there’s some overlap. Get the AIMA book, it’s better than the lectures most of the time. Also note that according to the honor code you’re not supposed to refer to any content besides the lectures, the book, and what the TAs post…

This course is excellently run and is the highlight of my experience so far (6th course). The projects are difficult (for the most part), and each part of each project builds on the previous part, which enhances understanding of the techniques that you are building. The last project is a bit weaker, but nobody’s perfect. The exams are difficult, but fair. Very time consuming, but in the end, they help you understand the material. The lectures aren’t quite Joyner quality, but they are reasonably good, although some of the older lectures from Dr. Thrun and Dr. Norvig are a bit potatoey.

The course is incredibly broad, but the point is to broadly expose you to a really rich field. After taking it, you could explore a single topic in more depth, possibly evening starting a research program in it.

I timed the work I spent on it. As procrastinator, the max time was 38 hrs, but most weeks (with projects to work on) were in the teens. The other weeks I definitely slacked and put in <10 just watching lectures.

We did 5 out of the 6 possible assignments provided in the Fall/Spring version of the course. There was no midterm, but there was a week long final.

Each homework assignment was a coding project, spanning two weeks. You get to drop your lowest assignment (they take the top N-1) assignments.

The first 2 projects were by far the most time-consuming, easily spending 30+ hours on them. The remainder of the projects were less coding heavy, but involved understanding more theory and math, which keep the workload challenging and rigorous for me.

I loved the class and would recommend it.

This is a hard, but tremendously satisfactory course because of the course work and content. Primarily being a survey of different AI techniques suited for various problem scenarios, this closely follows the book “Artificial Intelligence: A Modern Approach” by Stuart Russel and Peter Norvig. The book is a classic and consider this course an aid to navigate through the book and discover/get exposed to fundamental AI techniques.

The projects are the core and there are 6 projects, out of which 5 are considered for the final grade. There are also two take home open book exams and the final grades are curved. Projects are auto graded through Gradescope and generally have 2 weeks to finish them. First two projects are generally considered difficult and if one has less background with Python/Numpy/Algorithms/etc. starting as early as possible is the key. It could easily take 20+ hrs a week all along this course, especially during the exam weeks it could even go longer. The exams are 50+ pages booklet and to be finished over a week. They are approachable with good preparation. The midterm gets in between a project submission and it could be a bit more tedious to allocate time during that period.

If one has less programming background, consider preparing by learning Python/Numpy, a bit of search algorithms and probability before starting the course. The lectures were a bit underwhelming at places. Referring to AI lectures from other universities like Stanford and MIT that are freely available in YouTube ended up very helpful.

P.S: Don’t even imagine pairing this up with any other class if you’re working full time!

This course is a very good course to go over AI in general. The projects are amazing and the tests are also a learning source. The TAs are super helpful and I learned a lot from the class. My background is BS in Computer Science and I’m an ML enthusiast so I had a good background in ML so I think this wasn’t the toughest course for me. A good math background will help a lot with a combination of good programming skill in python and NumPy. The only problem, reason for only Liked, is that the test clarifications weren’t so good. The TAs create a separate thread for exam clarification with a lot of points and sub-points which makes it difficult to discover and find if there were any changes. Other than this, the course is a very good course. Don’t let other negative reviews hold you back, this is a good course and all good courses are suppose to be challenging.

Great course. Very challenging and very rewarding.

This course is heavily focused on the projects and exams. The mid term is 15%, final is 20%, and projects are most of the other 65%. Your lowest project grade will be dropped. The first 2 projects are by far the hardest, so if you can get a 80+ on at least one of these projects and a decent midterm, you’ll be fine (and you’ll have all that before the drop date.). There’s a lot of important information in the book that you’ll need for the projects and exams, so I suggest getting ahead of the first 4 weeks of videos and reading before the class starts so you can focus on the hard projects without getting behind. Speed-reading the book is fine because you really just need to know where to find the material.

Hard Projects

The first 2 projects (MiniMax and A* search) are pretty cool and very hard. The first 80% of the project is relatively straight forward but the final 20%-ish is much more focused on researching and experimenting with actively researched problems. And the grading is based on how fast your solution works, not a clear right/wrong answer.

“Easy” Projects

First off, the “easy” projects aren’t easy. They are just as hard as much work as the hard projects, but most people are able to get 100% because the right answer is more black & white. Most of these projects are on machine learning or Markov Models.

The exams are a ridiculous week-long, 40+ pages of multi-part problems that essentially test how well you learned the concepts covered by the projects and how well you can figure out new concepts that were touched on in the book and videos. It’s all open note, book, etc. (limited to course material) so there’s nothing to memorize before the exam. I suggest taking time off work for the exam if you’re working FT because it is a lot to cover in one week (probably 40+ hours). Although, the exams are very stressful, I really like the format because I learned as much during the exam as I did in the projects leading up to it.

Another one of those “drinking from a firehose” classes .. Even with taking only one class and having a job, it was tough for me to keep up with this one. Towards the end of the class I started falling behind on the readings. The assignments are relentless implementations of AI algorithms from scratch in python. The “exams” are just a collection of ~10 take-home mini-projects that take many hours to complete and can be prone to clerical error so it can be helpful to use Excel or code it out. This class may be easier for you if you have already taken an ML class or are good at debugging algorithms. That said, this class is great, the instructor and TAs are great, and I feel like I learned quite a bit.

This is my 3rd course in the program. It was tough, but learned a lot. The course teaches fundamentals of different core concepts in AI. There are 6 assignments and 2 exams. first two assignments are harder, but if you start early you would be fine. I really like the way instructor setup the exams. I learned a quite a bit by just doing exams. They are take home for 1 week for mid-term and 10 days for final. Overall, I am glad I took this course early in the program. Definitely the best course I have taken so far.

First class in OMSCS.

The overall course curriculum is very vast , and each one of the topics are eligible for separate courses of their own.

The lecture videos are made to be interactive but is not enough to gain enough knowledge about the topics - I had to read “Rusell-Norvig” in order to gain information.

The Assignments are the best part of this course - they make / force you to read and research - Piazza was very helpful as TAs and fellow classmates were very active. I learnt most about HMMs , Random Forest , Search algorithm only because of the assignments.

The Exams were lengthy , needs atleast 20-25 hours to get through. But you will love them! Because you realize the effort TAs and Prof Tharner take to personalize and make sure that each question will make you read , whiteboard and they are not general “look up the book” questions.

I am still waiting on grades - but assignments are highest weighed (60%) - except for 1-2 , you should be able to get 100 on them (Piazza and TAs help around a lot) , so even if you do fairly okay in the tests a “B” is easy achievable. Getting to an “A” will need to be a little more work on the tests.

Overall - I loved this class and this has prepared me for the long road ahead!

This is my 7th class, and it is my favorite one. We have plenty of reviews here. If you want to be successful in this class, you can start watching lecture videos and working on the first 2 projects on github before the semester start. It will make your life easier.

Midterm and Final exams will be really long but won’t be very hard, with the help of extra score and a nearly prefect midterm(around 99), I only need around 60 in final to get an A.

Take your time to do midterm and final, review once again to avoid silly mistakes.

Took this as my first class alongside AI4R. Overall I thought it was a really well structured class, for the material that it attempts to cover. The assignments were fantastic, they really force you to understand the topic matter that they cover. If feels like the class lightly touches on topics that you will cover more in depth some of the other classes in the program. The breadth of topics that you are supposed to learn in the class is honestly probably too much to realistically retain for 1 semester, but the topics that you do drill into should stick.

The video lectures are well made but sort of sparse, and some additional reading is required to get a strong grasp of the concepts. That being said, I don’t think this class was overly time consuming or difficult. If you have decent Python experience, watch lectures, read a little, interact on Piazza when you get stuck, this class should be relatively straight forward. The midterm and final are a bit lengthy, but not too difficult, basically felt like the workload of another assignment, but with only 1 week instead of 2. I think Dr. Starner said that they had listened to feedback from past students saying the exams were too long, and this semester they cut them down to be more realistic, and I think that they were.

This was my 6th course in the program (ML, SDP, IIS, ML4T, AI4R) and is probably the most organized and well-run course I’ve taken so far. It provides a broad survey of different AI algorithms, which you will implement.

  • The course content is organized and prepared well. The course schedule and weekly announcement clearly outline what is expected of you to do every week.
  • There are no group projects.
  • The class is intensive with coding.
  • The textbook is great and provides clear pseudocode for the algorithms that you’ll implement.
  • Every assignment uses Gradescope for submission and runs a test suite against your code. If you like the grade you get, you keep it. No need to worry about how it may perform later (which is great for randomness involved in algorithms).
  • The midterm and final exam are week-long take-home exams. They aren’t insanely difficult, but they do take a long time to complete. I had to use PTO to ensure I could finish in time.
  • So many students cried about the level of math required for this course. It’s a graduate course in a STEM field. You are expected to know how to work with matrices and calculate basic probabilities. No need to calculate eigenvectors by hand, but be familiar with simple matrix operations (products, transposes, inversions).
  • Know how to read pseudocode. The textbook provides great pseudocode which you are instructed to use for the assignments.That and the supplemental resources the teaching team give you are all you need to complete the assignments.
  • Patience. This class is front-loaded meaning that the first two assignments and midterm will be the most time consuming. If you make it through that then you’ll survive. After the midterm I found myself thinking I could have taken a second course; that wasn’t true for the first half of the course for me, but the second half felt easy.

This is a great class that I think everyone in OMSCS should take! Have fun!

This course will eat up a lot of your time, but it’s really interesting and worth it if you curious about AI.

The assignments are all very time consuming but as long as you start as soon as they are released you should have no problem finishing them. You’ll have 6 assignments in total and you get to drop the lowest score of those 6 so its pretty reasonable. I did well on the first 5 and decided not to do the 6th one. This was not recommended since you miss out on learning but I took this course right during the Covid-19 pandemic and it wasn’t easy managing all my responsibilities.

Some last thoughts:

I didn’t know any python before taking this course but I ended up picking it up along the way. I imagine if you were already familiar with python and numpy you would find this even easier. So I suggest you brush up on your python!

The exams are take home but that doesn’t mean they are easy. It’s a trade off but I felt like they were just extra hard assignments since you have no auto grader to even check how your doing. All in all they are fairly reasonable but they will take up your entire week.

The lectures are fun and easy to follow but you really learn a lot more from the assignments and reading the book.

The instructor and the TA’s were all awesome and very helpful!

Oh and I expect to get an A or a B depending on my final exam performance. I did well enough on the assignments and the midterm to not stress to much over the final exam. And I think that is a good strategy for this course.

I hope this helps.

I found this course to be extraordinarily challenging but also very well run and informative. The course is really math heavy and doing well without too much stress on the assignments requires a lot of numpy and python experience. Having already completed AI4R and CV, I think I was in better shape than others but still had a lot of reviewing to do when it came to efficiently vectorizing complex loops .

The TAs did a fantastic job of organizing assignments, responding to questions, and providing students with good local tests. I love Gradescope and it was well utilized in this course.

All in all, highly recommended if you have any interest in AI. But be prepared to put in a lot of hours to get a good grade.

I read this was one of the hardest classes before taking it. After taking it, I feel it’s actually not that bad. I got an A without very much effort. Overall this is a very interesting class. I disliked Dr. Sterner’s video. He doesn’t explain thing very well and often brush through important concepts quickly. In my opinion, Dr. Thrun and Dr Norvig’s lectures are of much higher quality. The projects are well designed and I learned a lot through them. But the projects only touch a number topics in the class. I feel I learned those topics so much better than the topics that we didn’t do a project on. I kinda wish they had made each project smaller yet have more projects to cover all the topics we studied. Take home exams are hard. Especially the final. The week of the final exam was probably the toughest week I had. But if you do well in the projects like I did, you don’t have to do that well in the exams to get an A.

this is the most ridiculous course I have ever took, it is simply not designed to help you learn but make you miserable. the reason I said so is that since spring 2019 it got changed to using the auto-grade system which is a complete freaking black box, all you got as error messages are “time out”, “you lost” etc. Get the f@#k out of here, of course I know my player failed because I have eyes!!! the way I think one can learn in CS is through breakpoints and stepping through the code to slowly address the issues. not wait 3 hours before you can test again (they limited 3 submit in every 12 hrs, or something similar). I got A in all machine learning related courses which are also heavy, but I feel that I learn a lot at the end of each course. in 6601, I felt I was completely screwed by the instructors simply because they want to make their lives easier

This is a great class that covers a lot of AI related algorithms. I appreciated that the professor and TAs have come up with a set of interesting homework and two exams. That’s value of class, the interesting material. But as review, I would also like to give some suggestions to the teachers and the students of this class.

To teachers:

  • Can you use some addition videos to explain the classic algorithm in demo and problems?
  • Can you go through the history of feedback of the homework and provide students some frequent Q&A?

To students:

  • Get familiar with Probability and some search algorithms beforehand.
  • Start reading the textbook earlier. It cover most of the algorithms, though it is harder to grasp.
  • Go through the challenge questions in Piazza.

Great course and very similar to my undergrad AI course. All assignments are graded via Bonnie (which I really liked) - instant feedback and easy to use. Exams were fair and open book. Overall great survey of the field and recommend!

This is a difficult course, but one that I found very rewarding and interesting.

  • Assignments didn’t change much from the start of the semester, so you could get a head-start on the assignments.
  • Assignments are graded with GradeScope, which provides instant feedback on your score for the assignment.
  • Some extra credit on a few assignments allowed for strong homework scores to offset low exam scores if necessary.
  • Out of 6 assignments, only the top 5 scores are used. This gives some flexibility, but don’t skip an early assignment and rely on this.
  • Exams are open book with about a week to work on them.
  • Grading is curved at the end of the course. Standard grading rules apply (>90 = A, >80 = B, etc), but in addition a curve is established based on the median of the class.
  • On-campus section received additional lecture content. This content showed up later in the course for ALL students, which felt a bit unfair for the online students.
  • The first two assignments were by far the most challenging (and my lowest scores), but after that the class felt much smoother.
  • Exams were long and challenging. There was a fair bit of interpretation in some question wording, and many clarifications had to be made by the teaching staff. Then the clarifications needed clarification, and so on.
  • The lectures were not very deep or engaging.

This class was great. The TA and way class was run was fantastic. There are 6 assignments out of which best of 5 are counted and one midterm and one final exam. Exams were really tough. The assignment were mostly good but a couple of them were difficult. You need to practice probability a lot to do well in this one. I had a hard time specially with probability .

This was my favorite class in OMSCS (so far).

  • The material is quite interesting and you learn enough to take on your own projects in the future.
  • The projects are engaging and relevant to the course.
  • The projects are in python and use pretty standard libraries like numpy and networkx.
  • The TAs and instructors are reasonably active on Piazza and the slack channel tends to be a pretty good resource.
  • The grading scheme is pretty fair - anything above the median is an A. And with the extra credit, it’s possible to do well in the course if you don’t do well on the exams.
  • The exams are extremely long. Each exam is a take home, week long assignments. They can be very tedious and time consuming. You also need to be careful to read the clarification threads because there are a lot of typos in the exams.
  • The first two projects are extremely difficult. The first two projects and the exams are really what differentiates people (in terms of grades). Most other assignments have a ~100% median.
  • The material is out of date. This is true of most classes to be fair.

Contrary to the popular opinion, I did not find this course difficult (final grade > 100%), much easier than RL and a little harder than AI4R. Every Assignment is manageable, exams could be done in one week, even in one weekend, you don’t have to read the whole 1000 page book, normal amount of hair lost and no PTSD, unit tests are usually not such a big problem, 90% is a guaranteed A as usual. I quite liked the course as well.

Pros: {1} You will learn a lot. {2} Very practical, hands on. Some hand-holding as well. Uses Python for coding. {3} Lectures + readings are enough for 99% of tasks. {4} Clear rubrics for exams, auto-grader for Assignments (its grade is final, unless you cheated), clear regrading policy. {5} Curved (90/80 is still A/B no matter what). Worst Assignment could be dropped. {6} TAs and instructor are present and very active on Piazza. {7} After the course you will gain an opportunity to do research in 8903 Special Problem. {8} Rather balanced workload throughout the semester. Totally possible to do during full weekend only sessions, if taken alone. Could be paired with other balanced or easy course. {9} No hyper-parameters tuning, only some reasonable fiddling with code. {10} Paper calculations were enough to get > 90% on both exams. No code was necessary. {11} Opportunity for extra credit on most Assignments.

Cons: {1} Final Exam is an 11 problems ridiculous monstrosity. It took 30+ hours of work. Despite a dedicated clarifications thread, it still contained questions which could be interpreted differently. It also contained some materials, barely touched in lectures or readings, while googling was forbidden. {2} All of the Assignments (including exams) could be “hacked” (solved by brute force or other techniques with only superficial understanding of algorithms) for ~100%, if you know what to look at. My understanding of AI field did not increase by much after the course, despite my grade. {3} Videos are high level and give only basic understanding of topics, a lot of readings are required to clarify finer details. Book is huge and difficult to read, it goes on forever and at some point you’ll start skimming to save time. {4} Too many clarification threads that contain vital information. Some people could entirely miss them and suffer unnecessarily. {5} Curve was close to regular 90/80/70. Non-existent. {6} Course is trying to be wide and not deep. {7} On some particular parts auto-grader does not provide enough feedback to facilitate further progress. {8} Overlapping material with ML and RL. I’m not even talking about KBAI, which is a humanitarian rip-off from the Book.

Tips: {1} Start Projects early, especially the first 2. You will most likely need those two weekends allotted for each one. {2} Pre-watch video-lectures before the start. Only do readings during the semester. Sometimes they are not even required and Assignments are doable with only basic understanding. Or pre-read them as well and cruise like a boss. {3} Watch a YouTube video on D-separation, when you reach that part, as it is not explained properly. {4} Piazza is a must. Slack helps as well. Office hours are mostly useless, I did not watch any of them. {5} Assignments become easier after the second one. After that, they are approximately of the same difficulty. You will most likely drop Assignment 1, if any. {6} Leverage your Assignments code to double check (or obtain) exams answers. {7} NN or RL knowledge will help with last Assignment and the Final. Do ML or RL before this course. This course would definitely help me with both of them as well, on the other hand.

This is very good class to overview all AI concepts and some of ML with deep enough mathematical details. It requires significant effort to keep and absorb all the learning, but it is very rewarding.

The first two assignments are very time consuming and difficult to get 100%, and after those two, it is quite straightforward and fairly doable to achieve 100% and even extra credit. I could say the difficulty level of this class is “hard” for the first two assignments, but later on it is about “medium” or somewhere less than “hard”. The final was very lengthy, but difficulty wise, except one or two questions, it wasn’t that super hard.

Exams are structured to learn something while solving the problems so they are also good chances to learn. The teaching staff this semester really put lots of effort to make the exams more meaningful by providing solutions and discussions after that. They also provided review sessions on hard assignments and I also don’t want to discount these efforts.

Overall, this is again great class to take. if you want to get some good start, I’d recommend at least to finish up the reading for first few weeks, so you can use those room for assignments. The text book used for this class is one of the best text book in CS - AIMA (Artificial intelligence, Modern Approach) and the book itself is really nice resource to understand the concepts.

Excellent survey course of foundational concepts in AI. The course was taught together with the on-campus course, so the Professor was extremely active, and the TA staff was much better than usual. I absolutely LOVE the joint model and hope more classes are offered this way in the future. There are tons of extra credit opportunities, and the worst project is dropped. The course is graded on a curve, so you just need to be better than the median for an A.

More details:

  • Bayes networks
  • Decision trees
  • Expectation Maximization with Gaussian Mixture Models
  • Hidden Markov Models
  • Exams: Best exams I think I’ve ever had. They are absolute BEASTS - the final clocked in at 62 pages. But, they are open-book, open-note, open-PC, and you have a week to do them. The problems are entertaining, fun, and focused on helping you really learn the material. Start early and you’ll actually enjoy them. Start late and you’ll despair.
  • Lectures: I wanted more, to be honest. All the lectures from Dr Starner are great, and they start strong. The later lectures are basically stolen from older MOOCs and are really poor production quality, and much less clear. The lectures really don’t cover the material in depth, either… I would prefer more content that does a deeper dive. Especially for those topics without a project.
  • Textbook It’s a classic, but it’s pretty dense, especially in the later modules. We skip around in the book a lot, too, which made it harder to follow .

Pivotal to your degree and understanding of AI, but absolutely BRUTAL. Writing this review before final grades come out, as I’m sitting between an A and B and don’t want that to color my review.

The good: The professor and the TAs in this course were bar none, the most responsive I’ve seen. They care. They want to make the course better. The material is very interesting. Very hard, but very interesting. This course goes through a lot. You would benefit significantly by taking an introduction to AI course from the stanford online courses. It’s so much information it’s hard to absorb in one round. The homework and tests are designed to make you learn through doing (and struggle). I did learn a lot. Be prepared to commit A LOT of time. If possible, try to take it solo. I took this course with DVA and nearly ended up in the psych ward. There’s opportunity for bonus points with every project, and even on the final, and they do not count towards the median.

The bad: The course is graded on a curve based on the MEDIAN, not the mean, so there are no 0s and very bad performers to drag down the average. An A is above median, B at or below. With this level of high caliber students, that is extremely tough. The medians for 4/6 of the homeworks were 100s, so your grade is entirely dependent on how you do on the first two homeworks, the midterm and the final.

The “no online resources allowed” policy. It’s meant as a proxy to trade secrets in industry, but it’s nonsensical, especially given the poor resources of the class lectures. Nobody I know in industry doesn’t google at least 100+ times per day.

The video lectures are extremely high level and glaze over very intricate topics. Online this course is a challenge to teach yourself, because nobody is teaching you. You are taking the same exams as the on campus cohort, however they have the benefit of actually going over things that would be on the exam. You do not. RIP.

There are 6 homeworks, one grade gets dropped. The first two are practically impossible and take over your life. Coming back from a month off after a brutal RL summer into full speed ahead was extremely difficult. The midterm was 30-something pages. It was tough and you got a week to do it. It was a test designed to make you learn what was not covered in homework. I would call it more of a project honestly.

The final….man. The final was 62 pages, 10 sections, in total something close to 90 questions. Most questions required programming. On average it took 1-2 hours for every 1 point question. You got a week. I spent 40+ hours on it alone. It was brutal. The clarifications thread was longer that Rapunzel’s hair.

I’m hovering between an A and a B. I’m just glad to have survived. Will have PTSD about this course and that final for many years to come.

What would I do different? 1. Take intro to AI from Thrun before the course. 2. Start reading the 1000-page book. 3. Brush up on probability. 4. Strongly consider not taking a second class, despite that pushing off my graduation plans.

This course is very hard. I recommend not pairing it up with another course in a semester. Try to start working on the assignments as soon as they are out.

Took this the 1st semester is was offered, so it might have changed. Great overview of AI. Awesome projects

I loved the course. Thought it was a fantastic overview of AI concepts and applications, and the projects felt very practical and real-world rather than contrived for learning purposes. Prof. Sterner does a great job of communicating his own excitement and relating the material back to familiar and understandable scenarios.

I would recommend reviewing linear algebra a bit before jumping in, and a statistics background would be helpful; I did fine (A in the course) without a strong background in either, but I felt that several of the assignments would have been much easier and taken less time if I wasn’t also trying to learn the basic math at the same time.

My favorite so far, very hard but the content is very rich and interesting, you have to be very fluent at python.

This class is worth it if you have the time. I was putting in 30-40 hours a week on homework, readings, and exams. The six projects were all unique and very interesting. The first two were much more time consuming than the last four. Each project has multiple sections with tasks of scaling difficulty Each project starts with easy tasks, then scales to moderate tasks, then ends with experimental/difficult tasks. Each project is worth 100 points, and it’s easy to get the first 30~60 points because of the scaling difficulty of the project tasks, so you have to really work hard to get those last few points to get to 100. The two exams are take home packets with word problems you can solve by hand or by code. 7 days to complete each exam is difficult. The professor said he prefers this method of exam over proctored exams as they are less intrusive to student’s privacy, while also being able to test a student’s knowledge. I wish this class was split into two semester. So much content is covered, it felt a bit rushed.

I think this is a great first course for those doing the ML specialization, even though it’s not technically an ML track elective, because there’s an introduction to machine learning and reinforcement learning in both the lectures and the recommended textbook.

The lecture videos are brief but clear, and do impart the right kind of intuition. There are 6 assignments, one of which is droppable. The first 2 assignments were the hardest, and there was also an assignment later on that is tough if you don’t have prior experience with numpy and vectorization.

The midterm and final are week-long take-home affairs that are tedious, but ultimately not as difficult as I was expecting. There was a question on backpropagation in the final that I found quite instructive.

This is the best class I’ve taken in the program. Prof Starner cares about the experience of online students and it shows, both in his posts and the culture amongst the TAs. The material is challenging but fair and often fun. The TAs are exceedingly responsive, holding office hours virtually every day and responding to Piazza posts promptly and thoroughly. There are also research opportunities you can apply to at the end of the semester. While some courses in this program feel like MOOCs for credit, this course genuinely feelings like a graduate-level class that happens to take place online. Highly recommend.

I was genuinely excited to take this class, put in a lot of time into it. But, I did not like this course.

This course should be just named as ‘Python Programming’.

If you have taken 7641 and 7642, there is nothing in this course except Search and Bayes net, for which you can refer to online/Udacity videos of Norvig and Thrun. Same videos are just added as part of this course.

This course is made difficult because of time and resource constrains for the assignments.

2 weeks per assignment (can NOT front load) but, by the time TAs clarify things, you will be left with much less time. For most of the assignments, there is limited number of submissions and provided local tests are not adequate. 80%-90% of the time is spent on clarifications or writing additional tests. So, that is why it is difficult.

You will spend most of the time on coding assignments and will not have much time left to go over the material deeply.

For example, for assignment-1, bonnie was running every submission for more than 2 hours and failing for everyone and no one paid any attention until last day of submission.

Prof does not answer a single piazza query. Your questions are answered by TAs who may have completed this course 1 or 2 semesters earlier (but they answer quickly). Most of the TA office hours are used to explain assignments.

Exams were heavy on calculations. For many questions, if you make mistake in the first 1 or 2 steps, all subsequent steps will be wrong and you will loose all marks. You need to spend ~25 hours on each exam to check and double check your answers.

This course feels like an undergrad course on python. If you want to analyze and understand algorithms deeper, take 7641 and 7642 instead.

As someone said below, all you’ll come out with is some artificial intelligence and not real intelligence.

The course is divided into 6 Homeworks including Game theory, Search (DFS, BFS, A*), Probability, Bayes Nets, Machine Learning and a Midterm and Final Exams. It is a well planned course, the TAs answer in a few hours. There are 14 of them for a class that starts with ~500 students and ends with ~300. It is possible to notice that some TAs are more specialized in specific topics. In the beginning, Thad makes sure to let everyone know how serious they are about cheating. You got to be careful copying code from the internet from Github, etc. Whenever algorithms are provided, they are pseudo-code. Thad gave office hours preceding Midterm and Final. Watching the lectures in Udacity and repeating them until you understand can prove very valuable. I didn’t have time to read all the assigned chapters from the book and did well.

I really enjoyed this course, it was though, but you could feel and see how much these guys dedicated themselves to provide a high level course an give the student a strong understanding of the algorithms covered. Don’t pair it with other class if you’re employed and/or have wife and kids. It is NOT doable.

You can take it as first class if you know about python 3, numpy and linear algebra.

Very well run class, TA and professor and course content, all three outstanding!. But its very hard with back to back projects that require you to start the work on day 1 to get full credit. Projects involve implementing multiple algorithms like A*, RandomForest/DecisionTrees, HMM, etc. Mid terms and Finals are take home and you are given a week. The exams are tedious and will take 30-40 hrs each. I recommend this course as a first course for anyone with a cs background and serious about ML/AI. This course will give you the best overview of the field.

As others have said, this is a very difficult and time consuming course. I do not recommend taking it with any other courses if you have a full time job and don’t want your life to be a living hell.

This semester, there were six projects, a midterm and a final. The midterm and final are open book, and you have a week for each. The difficult material is front-loaded through the midterm. If you can survive the first eight weeks of the course, you’re going to be ok. I think this was very considerate of the teaching staff to front-load the material so that you can withdraw if it turns out you’re unprepared for the course.

Speaking of being prepared, the math prerequisites listed on the course website are somewhat vague. If you don’t have a strong grasp of probability and a pretty good handle on linear algebra, you’re going to have a bad time. I highly recommend brushing up on both before enrolling in this course.

For some classes in OMSCS, watching the videos is sufficient to do well on the projects and exams. That is not the case for this class. Consider the videos to be a gentle introduction, and look to the textbook and papers for the bulk of your understanding. Tests will bring up obscure material from the readings that was never mentioned in the lectures.

Start the assignments just about as soon as you get them, and don’t be shy to post questions to Piazza. Also, jump on the CS6601 Slack channel. While the TA’s are great, their response time is measured in hours. There’s usually someone helpful on Slack who can point you in the right direction much sooner.

This course is one of the monsters in OMSCS, but it’s doable. And you’ll learn a tremendous amount. Good luck!

Really hard class, first 2-3 projects are tedious and parameter-tuning dependent but afterwards it gets better. The exams are super hard, take-home, but overall it is a really fulfilling class.

I took the course. Initially i thought this would be easy. But it was very difficult and i withdrew after first assignment. I will take this again in near future. Subject itself is good. Requires python programming. More than any other course, one should start working on assignments as soon as they are given else it is difficult to catch up. Go through the lectures/chapters first by the time assignment opens up, if possible else at least within 2 or 3 days of assignment start date.

Not an introductory class if you are unfamiliar with python and AI subjects. The 6 assignments/projects are due biweekly, and you have to spend a lot of time on it. Each assignment takes more than 40 hours.

As full-time employed, it would be hard to join TA session and working on the assignments. It requires a lot of time consumption, self-discipline, and hard work. Be a wise time manager.

AI is a very tough course: intense workload and hard concepts.

The course is coding based. There are 6 very well design assignments. They are all concerned about implementing the learned algorithms / tecniques. It’s noticable that every assignment was carefully crafted to maximize learning.

The exams are take-home and very big (the final featured 47 pages). The exams are not extremelly hard, but they are intense in terms of size and time consumption. Unlike the assignments, the exams are not designed for coding, but to be done by hand.

The instructor and TAs are very good, suportive, responsive and active.

I don’t recommend pairing this course, unless you don’t have a job.

This course is one of the most difficult I have. But I learned a lot in this class. This course includes several AI topics. Each topic comes with homework. Each homework requires intense python programming to implement a certain AI algorithm. No final exam. 50% of the student will get A. The course material is really good. TAs are really helpful. This is one of the best courses I ever had.

Overall, I feel this class was really well done. TAs and the instructor were always very responsive; you could tell they were very passionate about the course.

Assignments take between 10-20 hours (assignments 1,2,5 were around 20 and assignments 3,4,6 were around 10 to 15) and you get about two weeks for each. The exams are open book, but are brutal. I’d say 20-30 hours for each and you get a week to do them.

I don’t really feel like an expert at anything after taking this course, but I do think it is a good general introduction to artificial intelligence topics. Be aware that this course does get into some theory (e.g. the last topic is first order logic). You shouldn’t be intimidated by this (it can be a little dense but a vague understanding of the logic should be enough since the exams are open book), but just an FYI in case you are only interested in practical skills.

There is a bit of nit picky in this course (especially the exams) so make sure to triple check if you have any uncertainty.

This is my second class (first was Computer Networks). It could be a first class if you have some past theory-ish experience (e.g. big o notation, undergrad ai course, etc.) The only reason I might advise taking this course later is some students came in with machine learning class experience and that gave them a small advantage (e.g. neural nets and random forests).

My enthusiasm for the class dipped a bit after the midterm (it is pretty draining, even if you do well), but the projects were interesting enough to keep me motivated.

I enjoyed this class! The attitude of TAs , sense of humor of professor and TAs are very helpful. Really enjoyed, however it was very hard to combine this course with private life, work and family.

I absolutely loved this class and I believe its difficulty has been overstated. I would rate it somewhere between medium and hard, so I “rounded up” to hard. My 20 hrs/week is an average. Some weeks I spent maybe around that (some projects), some weeks I did literally nothing (week after the midterm, the time between submitting the last project and getting the final), and some weeks I spent significantly more than that (the midterm and final).

This was my 6th/7th class. I took it with CS 6340 (SAT, another great class, and is not about unit testing ). I previously completed AI4R, CV, ML4T, IIS, and RL.

I work full time and part time in addition to OMSCS. My FT job is very flexible, which helps, but my PT job is very much the opposite. Despite this, I was able to get a solid A in both classes this semester while also studying for and earning an Oracle OCP Java certification, picking up a ton of extra PT job shifts, and spending an entire weekend cleaning out my garage. I don’t consider myself a stellar student by any means, so if I can do it then I believe you can as well. What seems to set me apart from many others (based on my Piazza experience) is my ability to read and follow directions, and my understanding that sometimes I will need to do more than just watch the lectures to fully understand how to do the projects. Seriously, why does everyone keep thinking a graduate-level CS program should have the same structure as a high school math class? Anyway, with that said, I didn’t have to use the book a whole lot, but it definitely helped when I needed it and I’m glad I bought it.

This class does have a lot of room for additional exploration and deeper diving into the topics, sometimes through extra credit, so there is that benefit if you take it by itself and limit your non-OMSCS activities. But it’s not like we can’t pursue these deeper dives independently later.

I say it all the time, I’ve already hinted at it above, and it will always need to be said. You’ll have a much better time in this class if you just read/understand/follow the directions. The support system from students on Slack and from the instructional staff on Piazza was insanely helpful. Prof’s office hours were interesting and not just for the sake of getting help with assignments.

Grading breakdown:

  • 6 autograded, individual projects worth 60% total, with the lowest project grade dropped
  • 1 plagiarism quiz worth 5% which was basically free points since they opened it up to unlimited attempts after significant whining
  • 1 take-home midterm worth 15% and somewhere around 35ish pages long
  • 1 take-home final worth 20% and somewhere around 45ish pages long
  • There were some extra credit opportunities offered on the projects and a small one on the final

The projects:

  • Minimax with and without alpha-beta pruning. A surprisingly difficult assignment for such a short algorithm.
  • Searching algorithms - BFS, UFS, A*, etc. Also a very difficult assignment
  • Bayesian networks
  • Expectation maximization

The last 4 projects were much easier than the first 2. P4 and P5 both took me under 2 days. I saw people struggling on Piazza with them for almost the whole assignment period (generally 2 weeks). In many cases the questions they were asking were clear indications of — wait for it — not having read the instructions. I think every project but P3 had extra credit opportunities.

The exams were a lot of fun and very challenging but I think the TAs were too ambitious when making them. There were literally dozens of clarifications made on Piazza (under a “clarifications megathread”) for both the midterm and the final. I started the midterm early and immediately learned that was a mistake. I was kind of confused by people who started the final as soon as it was released and then complained about clarifications. Did they not remember the midterm just weeks before? As for topics, midterm topics were straight from the lectures. Most of the final topics were as well. Some really required the textbook to fully get but those were few and far between. Final was cumulative.

Overall this was a great class with a lot of fun topics. I recommend taking it by itself if you suck at following directions and being a good student, or if you have minimal math and CS backgrounds, or if you just want to have time to deep dive into the topics while the class is still in session.

Tips based on this semester’s experience:

  • It’s all Python. Be comfortable with it. Knowing numpy in advance for will help for P5 and P6 but it’s doable to pick it up on the fly.
  • Supposedly the exam problems were “designed to be done by hand,” but seriously, do yourself a favor and do as much of it as you can in code. While the problems are doable by hand, some are very tedious and lengthy. Better yet, do it both ways to check yourself. Start early but not too early. Watch the clarification threads like a hawk.

Tough, but fair. Very comprehensive coverage of traditional AI techniques, so it sort of lacks a coherent thread through the course (just a lot of material to cover). Instructor is very big on anti-plagiarism, just be aware. Learnt a lot implementing code for the projects/assignments.

The biggest downside here was pacing. The first 3 projects/assignments are an order of magnitude for difficult than the last 3. Talking 40-50 hrs each for projects 1/2 to about 5 hrs per project for projects 5/6. Most of project 6 is effectively data entry.

Exams are take home. Prof expects them to take him 5 hrs and a TA about 8-10 hrs. As a student expect to take 10-30 hrs per project (take a day off work). You can use any method you want to do the exam - they only check the answers. A prudent approach is to solve all problems by writing small programs - never try do it by hand because you will probably make a mistake (and there’s no working, so no partial credit). Exams hard enough that at least once the answer key (for one question) was wrong and students had to point out the mistake to instruction staff.

I’m not sure this was a great first course, but it did require me to get right back into school mode. I also might have spent more time than other students as I was relatively new to Python. I’d imagine being able to concentrate on learning the concepts rather than learning Python too would be nice.

You get to learn 6 concepts in depth through the programming assignments. However the lectures and readings cover numerous other subjects, and those are all fair game on the midterm and final. For example, there were a few videos on neural networks (~10 minutes) and no projects covering it. However, there was a 10/100 point question on the final on it. This (the breadth of topics covered and the details you must know on the topics) makes it difficult to know where to ask questions ahead of time as using most outside course material is not allowed.

Overall, there are 10+ hours of lectures per week, ~100 pages from the text book per week, challenge questions every week to review on Piazza (not graded), and projects due every 2 weeks. It’s a lot to keep up with.

The TAs are very helpful/active on Piazza, and there the projects are all doable in 2 weeks- even for a Python novice like myself.

The grading seemed to cause some stress, since it’s based on the median and standard deviation, but rest assured that above a 90% is an A and above an 80% is at least a B.

Overall, I really enjoyed this course. The tests were challenging and very tedious but I think they matched the level of difficulty required for a course to be considered “graduate level”. The projects were also interesting if you’ve never taken an AI course before. However, the projects focus on “reinventing the wheel” topics like Minimax, Alpha-Beta, Decision Trees, etc. I would have liked to see more challenging projects where we used these techniques to implement more complex programs instead of writing our own algorithms from scratch.

The TAs held office hours pretty regularly and each project has a TA office hour session where they would go over the provided code & the project description. I didn’t find these super helpful but if you’ve never seen Python code before, they might be beneficial to you.

Professor Starner also held office hours occasionally and these were pretty interesting. One of his office hours’ double as a mini-lesson on some advanced topics not directly mentioned in the course.

Overall, I think this is a good course if you have a basic knowledge of programming (Python preferred) and are willing to spend a lot of effort on the projects.

I took this class with a full-time job and would not recommend taking this with another class (if you work full-time).

The class covers a good range of algorithms. The book is really good. Recommendations: </br> Brush up on probability before taking the class. </br> Set aside time for exams if you’re working so you can check your work. There are lots of calculations and ramp-up problems where future answers depend on previous answers.

Great course, exams are take homes for a week (open book, close internet) but very very time consuming (the longest exams I have taken). Learned a lot, this course focuses on the foundations of how models like decision tree, Bayes Nets work. It is frustrating at times to implement everything from scratch but satisfying when you finally understood the concepts by working through them.

This course is the real deal for learning AI. You’re reading the quintessential AI textbook “Artificial Intelligence: A Modern Approach” nearly cover to cover, co-authored by the former Google search algorithm director Peter Norvig, who is also a guest lecturer in the Udacity videos. Another guest lecturer is Sabastian Thrun, the creator of Udacity and founder of Google X and their self-driving car team. The professor himself, Dr. Starner, is an entrance examiner for the AI PhD progam and draws from industry experience at Google when structuring the assignments.

Perhaps this is intended to justify the often overwhelming course workload, which is comprised of the work of two courses in a sense. At the time of this writing (Fall 2018), one of those courses would involve completing the six assignments that are each 2-3 weeks long, of which only five count towards your grade. The other course would involve keeping up with the extensive learning material, such as lecture videos, textbook readings, and supplemental journal articles in order to prepare for a midterm and comprehensive final exam (taking me 17 and 24 hours to complete, respectively) that are structured like puzzles and brain teasers loosely based on concepts from the material. My weekly effort spent on this course ranged from 20-60+ hours. There was always something that I should be working on throughout the semester and that was exhausting at times, to the point that I regrettably skipped the final assignment to catch up on learning materials to prepare for the final.

For those of you who are limited on time to devote to the class as I was, my recommendation is to watch all of the lecture videos prior to the start of the semester, and then read and appropriately skim the textbook based on the provided list of topics for the midterm and final, which would provide a much more manageable workload. Also be sure to start the assignments as soon as possible. I’m definitely not knocking the challenging aspect of the assignments or of the unique format for the exams, both of which contributed greatly to my learning experience, but I would have preferred a more narrow approach to the ambitious syllabi than is currently offered. This will be my first B in a technical college-level course, but don’t let that intimidate you - learn from my mistakes!

A note about time management: I consider myself to be someone with a lot of time management experience who always keeps a lot on his plate. Having said that, this course nearly broke me. With a full-time job, married life, and the everyday stresses of maintaining health and sanity, this one course made me lose more hours of sleep than I was comfortable with and it was my only course this semester. If you plan to take this course, bare in mind that it will require you to keep a rigorous schedule for studying, which must also be flexible enough to postpone other priorities to allow for more study time.

Fantastic course. I took the course without much preparation and even though I did well in my mid-term and final (above median), I struggled with Numpy which costed me dearly in two of the assignments. This was my first course in AI and ML and did not know what to expect. As others mentioned the pace of the course is very fast and it covers alot of material (To excel at AI, one requires at least two or three semester to learn the topics that are covered in the text book and the lectures.). Prof Starner and the TAs are outstanding. If you are looking for an A, assuming you have not had any AI courses in the past and/or relevant experience, you should get higher than median for 5 out of 6 assignments and both exams (Not easy). median for the assignments is in the 90s so you should go for extra credit and bonus opportunities if you can. Definitely attend the TA office hours as needed. They are very knowledgeable and will help you immensely (I should have done more in this area). You need good planning skills to go through this fast paced course. No room to relax. If you miss a week, forget A, if you miss three weeks, consider dropping the course. The assignments are challenging and there are a number of extra credit opportunities that allow you to improve your grade. However, I feel that for most parts the students who have had prior AI/ML training will be better equipped to do the bonus and extra credit parts and raise the assignment median. In effect making it harder for those who are new to AI to compete and receive a higher grade. I liked the take home tests because due to the nature of this course and difficulty of the topic, it is impossible to do it any other way. You should view all the lectures and read all the relevant chapters in the text book to do well. It is hard to get partial credit as the final answer is what counts.

I was a big fan of this class. It wasn’t perfect, but the material covered was broad and interesting. I didn’t find it to be quite as difficult as the reviews indicate here, but it does require solid Python and Numpy skills. As such, I’d recommend taking some other courses first (KBAI, AI4R, CV are all great pre-reqs for this class). The projects were somewhat time-consuming but certainly doable in the allotted two weeks. The exams were harder - and much longer - than the projects, but I felt we were given ample time to complete them (open-note, take-home tests). Although, I could see the time commitment being difficult with a busy work schedule or another course being worked in parallel.

My only complaint with the class was that the Bonnie test results for some of the projects did not provide helpful feedback after submitting assignments. Even after passing all of the local unit tests for a given assignment, there were times at which Bonnie tests would fail, and no information was returned about the reason for the failures. This led to some brute-force/blind debugging in some cases, which was a little frustrating.

Overall, it’s a good course if you have any interest in AI. Like many other courses, it covers a multitude of topics at a shallower depth, rather than covering fewer topics at a more advanced level. I would not pair this class with another unless you have plenty of time to spare. And I would not take this as a first course unless you are prepared for the workload required.

Exceptionally valid course and a wonderful textbook. But amount of topics covered is enormous and everything must be understood to the last detail, otherwise it’s impossible to do the assignments and the exams. Both Midterm and Final are a 30-50 pages PDF with open questions/exercises to do at home in a week. Only the final results go on the PDF so calculation errors will cost you the points.

In conclusion is really a great course, but you must devote an immense amount of time and energy to it.

This was a great course with a broad overview of traditional AI topics. It doesn’t go very deep in any particular topic, but gives you an excellent survey of different techniques. The projects were all fun and you’ll learn a lot.

This was an awesome class! It provides an overview of the vast field of artificial intelligence and teaches some popular algorithms from different areas of AI. Since there is so much material and only 16 weeks to learn them, the course does not go into depth on any of the topics. The class is curved with the a final score above the median being an A and on std below the median a B. The grade consists of assignments, midterm exam and a final exam. The class takes plagiarism very seriously and you are not allowed to look at pseudo code from anywhere other than class resources.

Assignments: These were the best part of the class. There are 6 assignments and the best 5 are counted towards the grade. You have to implement some popular AI algorithms from scratch. Working on these was a lot of fun and I learned a lot from them.

Lectures: The udacity lectures were not that great. I watched the lectures from MIT on youtube and learned more from those. This was very much a self taught class for me. I learned a decent amount from the book as well but some of the material was quite dense.

Exams: Oh boy! This is where things get interesting. The midterm was 34 pages long and you are given a week to complete it. You are only allowed to refer to the book and lectures. I love this format of exam taking as you get to learn as you go and I found I learned a lot more this way than the traditional format. The problem was that these questions take a massive amount of work to complete and you have to perform some tedious calculations to get your answers where some small mistake can cause a cascade of errors. I felt a little burned out after the midterm but I performed well on it so I was confident and expected to do well on the final. Well I was wrong. The final was like the midterm on steroids. It covered every thing you learned in the whole class along with some questions that were only lightly covered and appeared to come out of nowhere. I did not do that well on the final but still had my overall score above 90 so I am expecting an A.

Overall I felt that this was a hard class but not as hard as some of the earlier reviews made it seems. The hardest part was the final and midterm. The the rest of the semester was not that bad.

Prereqs: Make sure you understand bayesian probability well. Knowledge of numpy and some basic knowledge of ML via a course such as ML4T would also be beneficial.

Overall I recommend this course to anyone interested in AI/ML.

I just finished this course and found the reviews on here to be pretty accurate. It’s really hard and a lot of work, but it’s a very well done class. I went into it with very little knowledge/background in AI or ML, and came out of it with a really strong understanding of the key concepts and algorithms and am excited to keep going with it.

For me, the workload hrs/wk was probably higher than most due to my being new to the subject. I would guess if you took some other AI or ML courses in the program before this one (maybe ML4T?), it would help you get through the assignments more quickly.

I probably spent 30 hrs/wk most most weeks, around 40 hrs for the week of the midterm, and honestly probably 50 hrs on the final. I actually decided to take 2 days off from work (Thurs and Fri) the week of the final just to make sure I had enough time to work on it, and I’m really glad I did.

The weeklong open book/open notes nature of the exams means that they really make you dig deep and earn every point. I actually found that I learned the most during the exams themselves because I’d look everything up in the textbook or lecture notes.

All in all, it’s a very good course. Professor Starner and the TA’s are great. Just make sure you’re able to dedicate a lot of time to it.

The class covered a ton of material in a very short amount of time. This was my first class, but was really unimpressed by the depth of content covered in lectures. The midterm and final were week-long take home tests, and they took basically all week. The questions did not really cover knowledge, but rather just ability to do complex math and run algorithms by hand. The assignments were presented well, and the requirements were clear, but the testing strategy was poor - the local tests did not evaluate the assignment appropriately, and submissions were limited to actually test it. most of the time i made a small mistake that would pass local tests but fail the submission and had no observability. Overall, the material was really interesting and I felt i learned a lot, but put in way more work than i expected.

Unnecessarily tedious take home exams, but other than that class is interesting and not too hard. Homeworks are autograded so once you’re done you’re done.

Fun class, not too difficult.

Survival tips:

  • Take KBAI (Python track) and ML4T before this course.
  • Take a few days off work for the midterm and final
  • Take your time deeply understanding the book and supplemental readings - all of them
  • Watch all lectures and do the Udacity quizzes solely for gentle introductions to concepts.
  • Stay active on Slack or Piazza because you’ll get through this together.
  • Expect lots of “clarifications” on exam questions to roll in throughout the week.
  • Do all the projects, don’t let that “best 5 of 6” thing get to your head.

Commentary:

This gave me a wonderful view of the world through Bayesian probability, a lot of confidence choosing/implementing AI/ML methods, and my first gray hairs. I turned in the midterm and final not knowing if I scored a 10 or an 80. Both fell way closer to the 80. You will see whole cloth new material on the tests, but if you stuck it out in the projects, you’ll have the right intuition to do well. Trust it.

Good news is midterm and final are only 80 pages of problems, so aka you’ll have time to get in at least a shower or two during the course of the semester (and even better, with all the hair you lost, you won’t even need to shampoo so you can save time). If you’re a smarty pants, maybe you’ll see the sun and if you’re extra lucky, maybe you won’t get PTSD, high blood pressure, and arthritis.

Bad news is since this course trivially skims through topics, all you’ll come out with is some artificial intelligence and not real intelligence

This class took some grit to get through. It was a great first class for someone who was still relatively new to core computer science concepts, but was fairly fluent in math and statistics.

The first two assignments focused more on search algorithms. It was an excellent (and sometimes harrowing) review of some foundational concepts in data structures and algorithms.

The last few assignments were more related to statistics and probability theory. The coding wasn’t as fun but the concepts were still very interesting.

Midterms and finals were both take-home but expect to spend up to 20 hours on each one to do a good job. Expect a lot of hand calculations. This was a nice change in pace from coding endlessly.

Overall, this was a lot of great, foundational content packaged in one semester. Prepare to roll up your sleeves and put your learning hat on.

A fun but challenging course. Challenging in the good way, meaning the material is intellectual and the algorithms complex. (as opposed to poorly written assignments, ambiguous questions, defensive TAs).

The midterm was one of the most challenging tests I’ve taken in my life (high-stakes arithmetic - literally pages after pages of number crunching, with no clue if you are doing it right), yet I loved every minute of it. It probably taught me more than any homework.

Homeworks are a typical 2-week project and are HARD. You are given an algorithm, a research paper or two, and told basically ‘ have at it’. Some algorithms are fun (game-playing), others are boring (mixed gaussian expectation maximization). Fortunately there is skeleton code which makes it a ‘fill in the blanks’ deal, but they are some very big blanks. A few assignments I put in 80+ hours, handed in right at the deadline, and immediately had to start the next assignment. I was pretty burnt out.

However, provided you put in the time in the readings and research, it’s almost impossible to fail in this course. Anything above the average grade is an A. Anything over 90% is an A. The lowest homework grade is dropped. There are a TON of TAs, there are office hours every day (Don’t expect quick answers on piazza, the threads run into thousands of posts), they seem to actually care to answer your questions (as opposed to the usual - ‘implement the algorithm’ answers), the lecture videos are nice (pretty girls help), you learn about shark bites - all in all a good time.

Highly recommended, much better than KBAI, just be prepared to work.

It was one of the best classes – and one of the hardest classes, that I have ever taken. It was my first class in the program, and what an introduction! The first assignment was easily the hardest in the class- it involved designing an AI to defeat a 2 queen board game. It really tested my Python skills to the limit and I learnt a lot. 2nd assignment was about tri-directional search, and I spent hours debugging my code to solve the problem. Really loved and learnt a lot from both these projects!

I learnt lot of practical skills such as alpha beta pruning, min-max trees, search, information retrieval, HMMs, bayesian inference, reinforcement learning, probability etc. from this class. Prof Thrun was excellent in his classes on bayesian inference. Really enjoyed them. The book was also excellent, though it is very big and hard to read at times.

Overall, the class is really excellent, and really one of the best in OMSCS. Its a great survey class as well for machine learning and AI in general. The highlight of this course is the 2 exams which are open book for a week. I feel that’s the a better way to run an exam because if there is a topic I am weak at, I can just read up and attempt to solve it. This really expanded my skills and learnt a lot!

Highly recommended class, but perhaps not as the first one!

AI was a very interesting and challenging course. The first project nearly killed me, but it was worth it in the end. The exams were all open-book but still one of the hardest I’ve ever taken. The format and structure of the course was very good and I learned a lot in the process. I took ML after and I thought going from AI->ML was a natural progression.

A very good and a challenging course. The regular class videos were OK. I felt that they could have explained the concepts better. I did like Sebastian Thrun’s and Peter Norvig’s videos. There were two challenging take home tests. The assignments were good.

This was my first class at GT OMSCS and I would recomend it as such. The algorithms covered were used in several classes I took later; also after 6 semesters in this program, I feel like this course did the best job of meeting my expectations of what an on-line course should be.

The lectures are as entertaining as lectures get: full of lame jokes, puns and bad acting; the interaction between Thad and Shelly is engaging. When I took the course Thad was the head teacher and held office hours every week, and Shelly was the head TA, interacting with us on piazza. Having the lecturers involved in the course is rare, and pretty awesome judging from the other courses I’ve taken.

When I took this course, assignments were submitted to an auto-grader, so I always knew what grade I was going to get and could correct my code up to the deadline (once you’ve taken a few courses, you’ll understand the dread of waiting for the TA’s to attempt to run your code and grade it on unforeseeable edge cases, in an environment that may not reflect what you expected).

We were only graded on the top 5 of the 6 assigned homeworks, which would be very convenient should you need to miss a couple weeks due to life issues or something. I did all the assignments, but I really wish other classes would follow this format as I’ve bombed assignments in other clasess due to work deadlines or other life events

There was a slight curve applied when I took the course; everyone above 85% got an A, which was convenient for me as I did not do to well on the two take home exams.

It is hectic if you take the course in summer . They cover lot of content in 3 months span . Lectures are shallow and most of the time I used to follow lectures of UCB . Assignments are challenging and interesting . It is frustrating that code provided to test the assignments is broken and TA iterate the assignment multiple times .

Overall a great class. The first two assigments are the hardest, but they get easier after that. The midterm and final are take home, and you are given a week to do them. Start early!, they will take a lot of time

Definitely belongs where it is among the top 5 hardest OMSCS classes. The material covered is good but 95% of the learning must be done outside the class to complete the assignments. The assignment/projects are long (~15 hours/week for elite programmers, ~40 for average programmers), cover key AI topics that are often hidden behind black box python packages, and are heavily structured. This is both good and bad as the assignments act more like cookie cutter puzzles cut off of a completed project that you must fill in with your own pieces. Nothing is worse than trying to decipher someone else’s code and figure out their intent. This is somewhat solved by an offline testing suite but it is often limited to the most basic things. The class definitely has the feeling of being more interested in making money than teaching students. It’s a better class if you prefer independent learning and showing off your superior knowledge and skills to the professor.

Grade Received: B

This course was fabulously interesting. The assignments are well-designed to force you to implement some important algorithms. The exams were take-home and open-book, which allows you to use the exam as a way to learn additional material you would not have otherwise. (You’ll notice other reviewers think this is a bad thing, but I think it’s actually a positive that we get to learn things during the exam.) The pace of the six projects and two exams allow for no breathing.

I mostly did not read the textbook and instead relied on the lectures. Many students complained the lectures were high-level, but I appreciated this since they focused on conceptual understanding. There are many online links to get more detailed information for completing assignments.

I found the TA answers to questions mostly unhelpful. Everything you need to complete assignments ultimately comes up on Slack or Piazza though.

I would highly recommend taking this class though I am glad I didn’t pair it with another.

One of the hardest, challenging, and time consuming classes I have ever taken and I loved every minute of it. The course is focused more on projects than theory which I prefer. The six projects are fascinating and well worth the effort. The exams are not proctored and you are given a full week to complete them. They are both hard and extremely educational. I learned more from these exams than I have ever learned from an exam in the past. The lectures are excellent and taught by true experts. Some TA’s were difficult to understand when explaining projects, but this was a minor issue to me.

The assignments and exams are really well-designed. The format this semester is exactly the same as previous years. The professor does hold youtube live sessions for two midterm exams, which you don’t often see in OMSCS. The exams are updated every year and you can actually tell it is constantly improving.

It is important to try your best to get the extra credits, some of them are actually easier than you think. I got most assignments full grades, plus 70% of the extra credit, but bombed two exams—both are >10 points lower than the median—yet I still got an A. It can be said that the extra credits saved my ass.

Content-wise, the course is basically a survey of some basic AI and ML algorithms, you may actually have heard of implemented some of them in other classes, but still, it gives you an wholistic view of what’s in your toolbox, and sometimes they framed it in a way that uses different algorithms to solve the same problem. So it’s very useful for anyone who wants to work on AI/ML in the future.

I got my A by pure brute force, but I learned a lot in the process. This class is great because it’s a lot of programming. I appreciated the exposure to Numpy.

This course would be best to take not as a first course, but it’s high-level enough that I wouldn’t push it off until the end either.

Don’t let the first assignment scare you away. I bombed it, but still did fine.

I wish I had a better foundation in probability concepts before taking this course. I had to learn a lot along the way, and I still am uncertain about that area in particular.

The lectures were meh. The exams did a good job of convincing me that I have no idea what the hell I’m doing. The TAs did a great job.

I’ll echo most of the other reviewers in saying that this is an exceedingly challenging course. The first two projects are significantly harder than the others so if you can make it through those you should be good for the remainder. I had taken ML4T and AI4R before this class and those two definitely helped me prepare for the python/numpy needed. At minimum, I would recommend taking ML4T before this.

My only gripe with the course was the exams. They would make excellent homework problems distributed throughout the semester instead of the ~50-page behemoths we were given. The problems were actually really great in terms of fostering learning outside of the projects, but that value greatly is diminished when you’re on a 1-week deadline and are restricted in terms of the materials available to you. I did great on the midterm but by the time the final came around, I was already exhausted by the class and it clearly showed in my grade.

That said, this was easily my favorite course in the entire program.

6 solo projects, highest 5 are 60% of grade (lowest doesn’t count at all). Midterm and final are 20% apiece. Median and above Get an A, median to 1 stdev below B.

Unless you’ve got a 100 on five projects, don’t think that you can skip one. The math won’t work in your favor and more than a few students realized this too late.

Final stats for Spring ‘18 were not released, but looks like B range was 72+ and A range was 87+.

Projects are frontloaded, with Adverserial Search (Minimax/AB Pruning/Iterative Deepening) and Search (A*, UCS, bi/tridirectional) being the hardest and most time consuming. If they use the same style projects and you can make it through the first two you’ll be fine.

Midterm was tough and the final was a whole different beast. Both were long take homes and open “any course materials” (nothing else allowed). However clarifications on questions came throughout the week the assignment was open. My big suggestion here is to take a stab early, then the weekend before the exam is due redo the exam with the clarifications, and figure out why any answers are different.

You don’t need to be a python guru to do well in the class, but you should be comfortable programming in it. I’d brush up on your statistics and matrix math as well (or at least be able to decode matrix math equations).

This was an excellent class, but incredibly hard class. There is a ton of material that’s covered and you’re expected to know a lot by the end. There are two exams and six assignments, but you only use your top five assignment scores. With the pace of the class, you’ll be constantly working on something. By the end of the class I was completely burned out, but I felt like a learned a ton.

Wow! This class is rough. It is written up as a survey class in AI but I’d say some of the work is probably harder than alot of specialized classes in specific subjects similar. I went in knowing little about AI and came out knowing a bunch of algorithms but not to much on how to put it all together.

The videos: well done and think it was smart to use others lectures when appropriate to explain concepts. Sometimes someone else explained it quite good, why reinvent the wheel and like this design in the lectures. However, especially when Thad was teaching, there were somewhat of a very light explanation of really complicated subject matter not well explained. Thad is clearly very intelligent and sometimes takes for granted the intelligence or former knowledge of his audience.

The book: You are expected to read this whole gargantuan book. It is dense and really really hard to follow. The algorithms given in book are in most cases better explained elsewhere, for example in the authors own videos. I learned multiple concepts better by watching videos elsewhere then I ever did this book. My eyes glazed over when I looked at it many times and found watching youtube videos on concepts way more productive.

The projects: Time consuming and difficult. All the projects came with unit test which many times did a horrible job of actually testing your code. This also led you in a false sense of security especially when Bonnie submissions were limited. Bonnie submissions on some projects were unlimited but limited on others. Also, the feedback from Bonnie was usually unhelpful. Many times you were being forced to write a complicated algorithm from scratch even though the algorithm existed elsewhere. You would write it and it would seem to work with the crappy unit test you had. However, Bonnie wouldn’t like it and you would be stuck with WHAT THE HELL IS WRONG HERE? You would spin your wheels for hours and hours trying to find a bug with no idea what was wrong. Again, you are implementing an algorithm you didn’t write and purely in math form that was really complicated. If your are unfamiliar with the math symbols, etc, it could get you. And so you would have 8 lines of code where there was a bug but sometimes you just couldn’t figure it out. Now here is the other problem. For some reason there were a number of people who did really well on the projects. So, he grades based on median being an A and 1 stddev being a B. However, the median would most times end up being a 100%. So, good luck with that. Note, the median is done at the end of class so the test bring down the medians to a nicer range, but it can be quite frustrating to learn that your 95% or 90% on a project is a B. Dropping the last one is also done in the median calculation so it actually makes the standard deviation get smaller.

The test: Ridiculous. You are given a week and are take home. They are so much calculation and so easy to make a simple calculation error. The midterm took me around 40 hours and the final around 60 hours. I took three days off work for the final otherwise I wouldn’t have been able to complete. It is really dumb too, cause it doesn’t test ones ability to understand the concept but rather one’s ability to do the math by hand. I ended up purchasing a scientific calculator as you have to have it to do the math. The other dumb thing is the test is open book but the internet is off limits. This means you can’t use easier to follow explanations of an algorithm on spots like Wikipedia you had to use the confusing books explanations. This is another reason you had to use a calculator alot to do things like log10(x**(y/t)). And you would lose half credit for rounding incorrectly to the 6 decimal point. Test became about doing complicated calculations rather than understanding concepts and I found to be the most useless part of this class. Note, I got B’s on the midterm and final median was 78.65% and 67.8%.

The TAs: Overall pretty helpful but many times refused to help on certain things I believe as ordered by the Prof. Also, no help during test and had a now work on weekend policy which was super annoying since everything was due on Sunday. Never seen that rule before.

Overall, the class is educational but don’t think I could carry it into a good understanding of how to use AI in the world. I wish there was less focus on the math and more on the ideas which is what I thought a survey class would do. Maybe I should have taken ML which is I think more about the ideas and what they mean. I spend way more hours on this class then in any other I have taken previously yet my grade doesn’t reflect that. So, take the class but know what you are in for. Be prepared to make sure your job isn’t going to have any overnight emergencies or anything. There were many who didn’t struggle as much as I did so ymmv but and I did go in very green. However, I have gone into other classes green and didn’t struggle like I did in this one.

This is a great course for learning many of the concepts related to AI. However, I won’t recommend taking this as a first course.

Similar to what a number of other posts have covered. But I would like to comment particularly on the use of Bonnie grading vs. unit tests. In numerous cases, the unit tests provided in the assignment passed only then to find that the same code failed on Bonnie.

So if you assumed you were good because supplied unit tests passed that would be a dangerous assumption, especially as you get toward the assignment submit date. What then makes matters worse is that when Bonnie fails a test the feedback is virtually useless in terms of knowing what is wrong. This is not to say that students should write additional unit tests - what I’m saying is that the unit tests provided in the assignment were dangerous in that they generated a false sense of confidence.

So overall a course that covers a lot of interesting content but as others have said there was too many topics covered in the course and it could be split into smaller courses. This would provide the ability for students to learn the material more thoroughly.

The TA support was mediocre. I realize that TA’s have their own projects which take their time but when a student takes time to ask a well thought out question, replies from TA’s like ‘yes’ and ‘no’ don’t really cut it. That is if the overriding goal of OMSCS is to spread learning and knowledge about all these new topics.

Amazing course! I wish I could go back and take it again. The assignments take you on a journey through AI. The first assignment was really tough, but it kind of set the tone for the course and compared to that first assignment the rest didn’t seem as bad. The midterm and final are take home and a great learning opportunity, provided you have enough time to do them. Make sure you read through the prereqs on the OMSCS site, most of the “I wish I had learned this before the class started” complaints I heard were almost verbatim from the prereq list on OMSCS. Thanks to the TA’s and Prof Starner for a great course!

Best class I’ve taken so far (out of 4). 10/10 would recommend.

Topics are super interesting and important. The assignments are time-consuming but fun and enjoyable overall. Best thing is you can know your score as you submit as the class uses an auto-grading system.

Exams are hard! They are 40-50 pages long and with a mix of types of questions (MCQ, short answers, fill in blanks, etc). They cover all topics in great details so you’ll know you’ll have to know the materials well to do well in this class. Personally, I love this because it forces me to think deeper and learn more from the materials.

Like many others, I have mixed feelings about this class. This is a dense course that covers almost the entire AI book. It moves very fast with every two weeks. The first 2-3 projects being the hardest of the bunch.

Every week you are expected to read chapters out of the book. If you don’t, boy are you in for a fun time with the midterm and final.

Midterm and Final are take home exams and are given a week to complete them. I spent at least 20 hours on each one. If you work full time, expect your entire night and most of the weekend that week to be spent working on the exam. While I loathed the exams, I learned a lot from them. They cover all of the topics you read through, unfortunately you have to learn as you go. They release challenge questions throughout the semester that were previous exam questions. These somewhat help, but are not really the full cigar in terms of adequately preparing you for the exam. If you kept up on the readings, you’ll at least know where to look to find the relevant topic.

Dr. Starner is not very present in this class outside of the lectures. He hosted office hours before each exam and that was it. He rarely posted on Piazza. Some TAs were better than others, but they were overall okay.

I don’t recommend taking this class as your first course. Come in understanding python and numpy. A good understanding of probability will also help and will make Bayes Nets much easier. I spent a long time figuring it out but am still weak on Probability Theory.

I also recommend not pairing this course with any others. Each week is pretty demanding and you’ll really want to spend time understanding the topics and not feeling rushed with the projects.

All in all I am walking away from this class with a much better, and deeper understanding of AI topics.

I am struggling to write this review. I was genuinely excited to take this class, having heard that a lot of people loved it. Now that it is over I have mixed feelings. Here are some thoughts:

1) This course really should be split into 2 courses. There is just so much material that the semester feels way too rushed. I didn’t get to fully process each assignment because it was due within two weeks, and then another (really big) assignment was assigned right away. The midterm and final were used to ‘teach’ us concepts that the assignments and lectures didn’t go into any depth on. Having more time would allow for interesting programming assignments on topics such as neural nets, constraint satisfaction problems, etc. It would also allow for the midterm and final to focus on topics that have been fully taught. I have no idea the mechanics of splitting a course up, but I hope the idea is considered for the sake of future students.

2) The midterm and final were rough. They were long (each took me 15-20 hours and I could have spent longer) and each one had some topics that were literally just a mention in the lectures. The student had to research and learn on their own how to solve problems and use certain equations. In addition, the questions themselves were not well vetted. Most questions required multiple clarifications during exam week, which required that you go back and redo questions you thought were done (to make sure your interpretation matched the clarification). The exam questions were excellent for homework problems, but on a high-stakes exam it was not a good experience.

3) The curve is generous, so if your grade is low you still have hope of at least a B. Don’t be intimidated by the 100% median on assignments.

4) You get to drop one of the six assignments. This is critical considering how fast the class moves.

5) Do NOT take as a first course. I recommend it be the middle or end of your course progression. I took it halfway through after ML4T, which was great because the Python/numpy came in very handy.

6) Carve out time for this class. I do not recommend pairing it with another course, and find ways to set aside at least 20 hours a week.

7) As far as prep, reviewing Bayes/basic probability and having solid Python skills will help.

Overall I learned SO much from this class. The material was super interesting. I just wish the exams were done differently and the material could be more spread out.

Here’s the thing about this class: the class is curved, so that’s good. Less good is that the median for the homework is often a 100 or close to it. That is because you CAN reach a hundred, but for the first few assignments you have to work for 2 weeks straight and be smart. For the second half of the assignment, it can be done more easily by working 2 weeks straight without the smart part.

Your fellow classmates will reach a 100 in the assignments and drive the median up, so that means you have to as well. Then, since everyone presumably got full credit for the homework, it means the grade is based on the two exams, which are RIDICULOUS. You think you’re good reviewing the lectures and book? NOPE. In both exams, there was new information entirely! There were wikipedia links to start learning mathematical concepts MID EXAM. Even if it was briefly covered in the lecture/book, it will be there on the exam. If the lecturer says “We won’t get into this too much but here is a brief explanation” - don’t worry, the exam will get into it in depth! You will get a chance to learn that material mid exam, which last for a week. Yay.

I took this course during the during my second semester in the program along with CS 6035 IIS. My previous courses were CS 6250 CN and CS 6340 SAT. I had learned the basics of Python in CN but I had not used numpy at all before this course. Additionally, I completed a computer engineering undergraduate degree in 2014 as my only other exposure to computer science before this program. This information is all to compare to your own circumstances.

Overall, this course was by far my favorite while also being the most difficult and most work thus far. Some projects took 10 hours while others took up to 50 hours due to my background. The projects are very diverse so if you’ve never seen some of these topics until this course, then your learning curve will be longer for each project like mine. The majority of the projects had extra credit that rewards those who know their coding and material. I highly recommend scoring as many points as possible on the projects as the midterm and finals are intense.

Both exams are take-home exams that are 35-45 pages each with a full week to complete. I spent 40-50 hours on them to achieve a level above the median to make up for my lackluster performance on a project. These exams will thoroughly test your knowledge of each part of the course, which I prefer as you can’t fake your knowledge. You are only allowed the class resources and book for these exams. No INTERNET, collaboration and so forth is allowed. The book is a must due to the complexity of the concepts and use for projects and exams.

I highly recommend this course if you have never taken an AI course before as you will learn a ton. However, honestly gauge your knowledge and skills beforehand to see how much of your life you will have to give to be able to succeed. After taking two courses as a full-time student, I do not recommend another course at the same time if you work full-time unless you have expertise in python, numpy, and AI concepts.

I enjoyed this class - but it has a number of issues.

Pros: I preferred the lectures taught by the professor (vs the ones taught by the guest lecturers). They kept my interest. I also thought the projects were sorta fun and helped ingrain what we were learning in lecture.

Cons: TAs really slow and/or unhelpful. The projects could be a breeze if your mental model matched that of the TA that wrote the grader. But if your implementation runs afoul of the grader (even if it works locally and passes tests), get ready for many hours of hair-pulling trying to figure-out the inner workings of the black box that is the grader. The tests also bugged me. They were “fun” in the sense that there was some humor to them, but they’re basically word problems that include a small amount of AI concepts and a lot of high-stakes arithmetic. You’re literally building spreadsheets and/or writing code to solve problems and if your answer isn’t accurate to within the sixth decimal, you get zero points. Quite tedious if you ask me.

This class drove me absolutely insane.

First: a huge chunk of the material on the exams were never taught through the lectures or the textbook. I took so much time to understand the lectures and readings. I look forward to seeing how much I know by taking exams in classes, but the exams made me feel like I was wasting my time. Almost every question requires the instructor to post a clarification on Piazza. Some of them even required a Wikipedia link in order to solve since it wasn’t in the lectures or textbook. There is so much material to cover in this class, there should be no reason for adding material never taught.

Second: The assignments take a LONG time to complete. There are 6 of them every 2 weeks. You cannot catch your breath. As soon as you submit the previous assignment, the next one is released and back to work you go for hours upon hours. I do want to add that the assignments helped me learn the material the most.

Third: The TAs take an extremely long time to respond to questions. This is horrible when you have less than two weeks to work on the assignments and you need a clarification.

Fourth: The lecture videos by professor Starner are awful and uninformative. The professor has two guest lecturers, Peter N and Sebastian T, and their lectures are way more informative and really good at explaining concepts. Professor Starner just reads from a script and is hard to listen to.

I definitely would not take this class as my first AI class. I would take ML or other AI concepts first so that you know the material going in because when it comes to exams, you will not have been taught the material.

Took this course as my 2nd in OMS after DVA. Looking back at the entire semester I feel this course really covers a lot of topics in the fields. Even though some of them are shallow, you do get deeper knowledge on the topics used for assignments, e.g. shortest path, A* search, decision trees/random forests, unsupervised learning (clustering), hidden markov model, etc. Some of them are must-knows for tech interviews. Also some very interesting topics like constraint satisfaction and logic planning, which could help you solve a lot of brain teasers:)

I would say AI is about 2-3 times harder than DVA in terms of time spent, depending on your background. If you were like me, a professional developer in the industry for years, you will find it’s easy to pick up python/numpy as part of your 1st assignment. But bayes networks, linear algebra and some other math really gave me hard time, so be prepared.

There’re 6 programming assignments about each every 2 weeks, plus two exams each takes one week to finish. This made the schedule really tight and I didn’t have too much down time during the semester even just taking this 1 course. So be prepared for a few busy weekends and stay-up-late nights if you work fulltime or/and have kids to take care of.

Overal I loved this course and I think it was a great first course to AI before taking more ML related courses, as long as you’re ready for the challenge.

Overall, this is a quick tour of AI topics. You’ll cover game playing, search, machine learning, pattern recognition, and a few other topics. The assignments are intense but overall manageable if you start early and use the resources available (I found the slack community the most helpful followed by piazza). The exams are rough. This semester we were given a week to complete a take home exam for the midterm and final. The exams are more open-ended than the assignments and require a lot of time. I think a few things could help students prior to taking the class:

  • Be comfortable with python and numpy
  • Take a course or two covering related topics prior to this course (ML4T, AI4R, DVA, ML, etc)
  • Start everything early and ask questions.
  • Complete any extra credit you can

I felt like this class was definitely worth it for those interested in ML/AI and is probably better earlier in the program. If you have the time and interest, I would recommend giving it a try!

I managed to stay sane at the end of this course. Although the concepts are really interesting. The course is extremely hard. This course requires some pretty strong statistics , conditional probability theory , advanced math and python skills using vectorization with Numpy package. If you plan to take this , please ensure you are really confident about these per-requisites, else dont bother. I do NOT recommend this as a first course and also , take this alone in a semester, do not pair it with anything else in your life during the semester

This is a pretty hardcore course with 6 projects (one project can be dropped, only 5 projects count towards grading). Projects are coding based, in python. One of the things I liked the most is Bonnie (autograder) for projects which will make life easier. There are two exams which are week long, open book and takes almost the entire week. The cutoff for grade is curved and for A it was nearly 90%.

I think I disliked ALMOST everything about this course. The lectures were very understandable (too understandable) but kind of long (for the content), the book is just ok - often a savior though, the quizzes sometimes are unexplainably difficult considering the lectures they are attached to, and the assignments are just something else.

In very short, my main complaint is the amount of material crammed into this course. This course could have easily been broken into at least 2 parts, one probabilistic (Bayes nets, decision trees, others) and one deterministic (A*, constraint programming, adversarial search etc). Unfortunately, with everything thrown in, some stuff will suffer (and is unfortunate, most of the stuff is worth studying more carefully).

A second complaint would be about the lectures. I had a hard time taking them seriously, most of the time prof. Starner and assistants try to paint a relaxed and jokey/fun atmosphere, in some sort of popularity contest style. Laudable try, but unfortunately it made the lectures lack the rigor they needed, which proved a problem for assignments. It was impossible (IMO) to approach any assignment with the lectures only, which presented a problem in itself - if one puts 3-4h/week in lectures, just to have to read another 3h from the AI book, that makes the lectures kind of useless. And one needs all the time possible for assignments.

Don’t want to insist too much, but various other things added to frustration: fighting Bonnie (with its arcane errors) for assignments, fighting with TAs about solutions for mid/end term exams, the grading on the curve (“is it enough a 90% to get an A, when most assignments have 100% as median???”), opening the course with “adversarial search” instead of with actual “search algos”, and many other small issues.

Maybe I’m too biased already, I would recommend people buy the AI book and study it at their own pace. A lot cheaper and a lot less frustrating.

Great class overall. I got behind and had to focus just on the HW instead of the readings/learning

TAs were fair and quick a responding. NOTE the projects change somewhat frequently :/

Wow, what a first class to begin the program with! There was so much work to be done, and with a full-time job, it was pretty crazy getting the time to do everything. However, even without an undergraduate degree in programming, I was able to power through the course and get a B. It isn’t impossible, but it isn’t easy. The ideas make sense, it’s just putting them together that takes a while. Also, having had no prior exposure to Bayesian statistics really hurt me. If at all possible, I’d recommend you study that topic up pretty good before taking since it represents a major cornerstone of the course (and it isn’t immediately intuitive). Just for those who don’t know the difference between AI and Machine Learning (that was me!), Artificial Intelligence is not making computers that think for themselves. It is much more focused on finding clever hacks to make a computer work faster and more efficiently to arrive at a difficult (to compute, but obvious to humans) answer. I later realized what I wanted was more under the umbrella of machine learning or reinforcement learning, but alas! It was still a good class even though it wasn’t exactly what I wanted.

As much as I learned in this course, I didn’t enjoy it because it was just far too stressful and time consuming. Considering I took it in the summer, I highly recommend students save this course for the fall or spring, and take it as their only class. The main challenge in the assignments is that you can get stuck on one part for hours on end not getting anywhere, and that can continue to happen throughout the rest of the assignment!

One of the best courses out there. Loads of learning and very helpful connect. Having good idea about python and ml basics will help a lot.

I liked this very challenging class a lot, although there difficulties as well. I am a programmer, but have no statistics nor linear algebra experience. I wasn’t sure I was ready, given the complexity, but I jumped in. I felt like the assignments were incredibly fun and challenging, however, I didn’t feel like the instructional videos offered more than a cursory understanding at times, and the book was cryptic if you didn’t already understand the material. I’d recommend it for anyone who wants a real challenge and is looking to understand a broad overview of many different aspects of AI. The best instruction came from the guest lecturer Sebastian Thrun.

The beginning of the class was much harder (or at least more time consuming) than the second half. There are 6 assignments, and you could easily put as much time into each of Assignments 1 and 2 as the other four combined. The class is very interesting, challenging but not impossible, and very well organized. There were some minor issues with miscommunications and disorganization, but the professor and TAs are very responsive and very reasonable about finding solutions. Overall you will learn a lot in this class, but be prepared to put some work into it.

I took this is one of my first classes in this program. While I wasn’t prepared for how difficult it was, I managed to do well. The tests and programming assignments are very difficult and will require a lot of time. You will need to know and use a good amount of math as well. The material was very interesting, and overall worth the difficulty.

This class is no joke. I had to rearrange my life to have enough time for assignments. You actually program the AI projects that you learn about in lectures. Note that my Python (and especially numpy) skills are at best average, although my statistics skills are good. Fellow students were very helpful on Piazza. Don’t forget about Slack, too.

Assignments: Some of the assignments require really strong math skills, most require a decent understanding of probability theory, and all require good Python scripting skills, including numpy. There were 6 assignments in the Fall 2017 class; you get to drop the lowest grade. The assignments are auto-graded and you get multiple (from 5 to unlimited) attempts to submit the assignment and you know your grade for that assignment immediately. I really liked that. Exams: take-home exams that take 10-20 hours to work through. Exams actually promote learning the material that wasn’t part of the homework, so I liked that about them. Make sure to ask instructors any and all questions you might have. Don’t try to get what the question is getting at, or you’ll lose all the points for the question. Grading: The class is graded on a curve (median and above is A, one stdev below median is a B) but note that the median for most assignments was 100% (midterm and final were much lower, around 75%). For the online section, A ended up being about 87%, and a B was about 74% . Don’t bypass extra credit questions if you have the time to complete them (some are very time consuming and others aren’t). As the class progresses, you might not be able to complete an assignment, so extra credit on an assignment might be the difference between A and B, or even passing and failing.

Overall, this was a great class, one of my favorites in the program, along with KBAI. If you actually have the prerequisites outlined, you’ll spend much less time on it than I have and probably enjoy it.

One of the most difficult courses in the degree but also one of the most useful. It teaches you the advanced concepts of AI ,and be able to apply them. To be able to succeed in this course ,you need to have a good foundation on probability theory and advanced programming skills in python,otherwise,you may struggle alot to keep up with the class. I personally was weak with probability concepts ,so had to struggle a lot. Also keep in mind that some the course structure may change every semester as the professor considers each semester of AI as a research opportunity by trying out different things to see what works and what doesn’t.

This was my first class in OMSCS and I thought it was fantastic. It provided an overview of AI concepts and techniques that I found challenging and rewarding. The TAs and professors were very engaged, responsive, and helpful. I initially put in way more than 20 hours/week during the first assignment until I figured out how to get help from the TAs using Piazza. Using Piazza and the student Slack channel made my life much easier. The material was still very challenging but getting to the resources I needed to solve the problems was much more efficient.

One of the best classes I’ve taken so far! The projects were interesting and helped me understand a certain topic very well. The exams were hard but thorough and covered a lot of topics. I really liked the pace of the class and the lectures and textbook were both very good.

Interesting subject and nice review of content in-terms of video lectures. Assignments are interesting and exams are ideal.

Good survey of several types of algorithms and concepts used in AI such as game playing, graph search, Bayesian networks, Markov models, and some machine learning. I don’t have a CS undergrad so I was probably slower than the average student in terms of figuring out the assignments. The class needs to get a little better organized in terms of the quizzes (provided to on campus students in class, online students via Piazza). The quizzes were very helpful as study aids for the exams, but when combined with the lectures, readings, and assignments I sometimes felt overwhelmed by the amount of material. I learned a lot though, so it was worth the effort. They use an autograder system called Bonnie. I like Bonnie because it gives students feedback on their progress, so when you send in your final submission you should know what score you’re going to get. All code is written in Python.

Background: No prior experience with AI/ML but had a little idea about what things are

I found the course very useful. The textbook used was “Artificial Intelligence: A modern approach, 3rd edition”. The course covers almost the entire textbook. This is a great course that gives an overview of all AI/ML techniques. Even though it covers such a wide breadth of topics, the course does fair amount of justice to them. All the topics are covered in a depth that you can get a fairly good idea about the topics. The knowledge you will gain in this course will not be shallow as is usually feared from courses that have a very wide course.

In terms of difficulty, I found the course to be fairly difficult. That is also given the fact that I did not have prior AI/ML experience. The assignments make us code various AI/ML algos from scratch with helps in a deeper understanding. Assignments will take time if your situation is like I had. Assignments are in python and good understanding of numpy can help.

Exams are open book and pretty tough but fun nonetheless.

TA interactions are great. In my time we had at least 2 great TAs who were always active on slack. You might find lectures a bit too shallow but textbook and additional readings make up for that.

IMO this course is a must if you dont have a prior AI/ML experience and want to pursue ML specialization.

This was my last course in the program having taken: CCA, ML, RL, CV, AI4R, DVA. Maybe this will be helpful for someone with a similar program track. I thought this course was not hard even though it was offered in the summer for the first time.

The lectures and reading material are not difficult to comprehend. I found the readings easy to understand due to how the amazing job the writers did. I made an effort to read all suggested chapters after watching the lectures. This will definitely help you to succeed in both the assignments and the exam.

Assignments: Start early studying the requirements for these. Identify which part of the material you will need to solve them. However, don’t start coding right away, the instructors were still making some modifications after the release date. Always prioritize coding efficiently. All assignments can be completed with runtimes less than 30 seconds. This will help you perform tests and modify your code faster. If your code is taking longer than that go back and try to find where it can be improved.

Exams: There were a midterm and a final both take home exams. Make sure you are caught up with the material (or at least most of it) before taking them. The questions are not hard and instructors were always there to clarify any possible ambiguity. They were also lenient with some questions when several students had a different interpretation of the problem statements. NOTE: Submit your pdf with what you did to get to the answer. They will give you partial credit if you got the answer wrong but your thought process was correct.

Staff: In my opinion, the TAs did great. In spite of being the first summer offer, they handled the challenge well and were able to solve most issues. There were some problems with the final grading but my impression is that they eventually got resolved.

I managed to get a 96% before the curve. They use the median to determine your letter grade: A = if you are above min(90%, median(final grades)).

I’ll give a different point of view from most reviews - this could be useful if your background is similar to mine: when I took the class I had already taken: CCA, CV, ML4T, ML, RL - so I had a solid knowledge of python, probability and statistics, and ML.

We had two weeks to complete most of the assignments. I managed to complete each of them in 3-5 days max (8-12 hours). Notice however I always started working around 5 days after each assignment was posted. In that way, I avoided wasting time with bugs or asking for clarifications on the instructions. It’s a good idea to find that sweet spot: not too early, not too late.

Some topics were review for me (Bayes Nets, Decision Trees, SA and EM from ML; HMMs, VI, PI, min-max from RL; Kalman filters from CV). But I got out a lot from the class regardless - for example I got to implement some algorithms which I “stole” when I took ML. The projects I enjoyed the most were the Game Playing Agent, and Tri-directional search.

I liked the exams and their “open book” format, I think they successfully covered important material, and conducted me to learn and reinforce the theory.

As others have mentioned, there were some (sometimes many) kinks and bugs in assignments and exams, but instructors were fair with respect to that (we got an extension due to some unclear instruction for some assignment, and we also got free bonus points for a couple of ambiguous exam questions).

I only wish I had taken this class before other classes like ML, RL, but I guess then it would have taken me like 1. 5x the time. However, a nice survey course and I enjoyed it a lot.

This was definitely a challenging course, especially to be done during the summer semester. I had taken KBAI the summer before which had given me some good experience in Python and some Numpy. Given that KBAI was my first experience with Python and Numpy, I still did not have a ton of experience going into this class. AI really improved my knowledge of Numpy and pushed me to learn how to write faster code (vectorized) using Numpy. This was something I had never done until this class and was required to meet some of assignment run-time requirements.

All the projects were fun and interesting. This really helped me learn the topics thoroughly and dive deeper into each of the topics. What wound up working best for me was to just watch the videos, get good enough understanding of the current topic, then start the projects and read the book as needed. If I had more time I would have liked to read all the material but given that the summer class is shorter with the same amount of content covered in the class, and that I was travelling during some of the class I didn’t have time to do everything.

One thing I really appreciated about this class is that it also had a Machine Learning section and project that has now piqued my interest in ML! Before taking this class I had no real exposure to ML and now I’ll probably wind up taking the official ML class.

Grading feedback could have been a lot better / faster. There was a grading fiasco at the end of the class where a lot of students, myself included, had the wrong grade submitted to the transcript. The TAs were helpful in sorting out issues like this but it seemed like this problem should have just been avoided to begin with.

This first summer AI section was rough. Cramming a dense 16 week course into 12 weeks without omitting anything was ambitious. But then Dr. Starner was on sabbatical at Google all summer (working on Google Glass). So, our head instructor was one of Dr. Starner’s Ph. D. students, and he hadn’t been involved with an OMSCS course before. That led to some issues that I’d never experienced or heard of in other OMSCS courses.

The good news is that I learned a lot. The R&N textbook is good. There were 6 fun and instructive programming projects. Each had an autograder with a submission cap (e. g., 1/hr or 20 total). I averaged 20 hr/project and got to 100 on 5 of the 6 projects. On project 3 (Bayes Networks), I only got to 85 after 37 hours and 20 submissions. Thankfully, we got to drop our lowest project grade.

The videos were from three different people and had dramatically different quality. Thad Starner’s videos were great - professional and easy to follow. Peter Norvig’s videos were ok - made with home video but with good explanations. Sebastian Thrun’s videos were terrible - made with home video and with awful explanations. Thrun’s videos covered some of the hardest topics (e. g., Bayes Networks), so they were a big disappointment.

The midterm and final exams were take-home, and they were good learning tools. They made me dig into several areas deeper. Each exam required a lot of TA clarifications on Piazza, but the TAs graded the tests fairly trying to take all the clarifications into account. The TAs were cool about regrade requests too if you could justify why you needed one.

I averaged 22 hours per week and had an A before the curve. My only prior Python use was in the CN course (CS 6250), so I didn’t know Numpy. This course takes hard work, but I strongly recommend that you only take it during a full semester when Dr. Starner is available to manage the course. I finished less interested in AI & ML than when I started.

I really like this class but it was super difficult and I don’t think it’s suited well for a summer semester.

Thing that will make this class easier:

  • Experience with python
  • Extensive experience with numpy
  • Previous experience with machine learning
  • Recent experience with college level mathematics

If you have none of these this class will be extremely difficult. Personally I only had the python experience, and I haven’t taken higher level math classes in nearly a decade. This class was a giant source of anxiety and a massive timesync for my entire summer, and somehow I scraped by with an A.

Very interesting material, but don’t take it in the short summer semester.

I had all the prerequisites (not ML) and what should have been enough time but TBH couldn’t hack it, and dropped at last moment. So I recommend watching all the lectures or reading all the material (chapters 1 - 21 except 16, 19, >20. 3) ahead of course. You’ll definitely need to do both to get through, the first time that’s been true for me in 9 OMSCS courses. Other problems: When I pointed out that the TAs cancel office hours without notice I got a promise that it won’t happen again – and 0. 00 TA behavioral modification, which still strikes me as bizarre. Ran into a nasty bug that prevented assignment completion and dropping the course. We reported it, but TAs never followed up, so the bug hasn’t been corrected in the source library. I’m trying to find time to create a minimal, non-HW example and report it myself. Without a test for every aspect of an assignment that the server tests for, there is a real risk that you won’t find every nonconformity from (sometimes nebulous) desiderata in your code. Students should get different tests that nevertheless cover every test /type/, but evidently the professor has a, IMHO, misplaced fear that we’re already so good at AI we can evolve a general solution from the tests.

Decent course and I learned a considerable amount. I really did not like that some of the assignments’ starter code was difficult to understand and sometimes TAs would have to go back and fix bugs after the assignment was released. I spent more time than I should have trying to figure out how the starter code was set up (bad documentation). This got better as the course progressed so I think the TAs were taking our feedback into account and pushing more polished assignments. The assignment medians are also very high. 98 or 99 in many cases. You have to get perfect score on almost everything and hope that some others do not, in order to get an A in this class.

It was not as hard as before. It seems that some assignments and videos were remade for this summer session. As a previous message said, if you have background in machine learning, you will already know a quarter of this course. The grading was friendly. In total, I like this course, because of interesting assignments and enthusiastic instructor. At least, it saves my GPA.

Great course with interesting projects. The material is relevant and it covers a lot. I think that if I were to take this course I wouldn’t do so unless I had studied a decent amount of the material ahead of time as you will be pressed with both knowing the material and demonstrating that knowledge in python. It could be overwhelming for some as you will be pressed for time. The only real negative in the course is Bonnie the autograder. Recommended

First of all, I don’t think this AI course is a prerequisite to KBAI. I’m fairly certain you’ll survive KBAI w/o taking CS6601.

Many people on this site rated the difficulty as at least “Hard”. Quite frankly for people like me who have ML background, this is probably an easy one. There was nothing I couldn’t understand in the lectures. The cutoff of “A” grade is >=78% (Summer 2017). This means so long as you got a full mark (not quite hard to achieve) in every assignment (accounts for 60% in Summer 2017) and don’t bomb the midterm or final (accounts for 20% each), you’re good. The lectures will get you intrigued about major AI topics, but certainly won’t make you some AI juggernaut. What on earth is AI anyway? Occasionally, you need to write your own unit test for the assignments. The XYZ_test. py files they provide weren’t perfect - let’s put it this way. TAs are trying their best to be helpful with their delightful sense of humor. In most cases I waited for 24-48 hours before a TA addresses a question I posted on Piazza. There were complaints about absence of TAs, so I’d suggest them hold daily mentoring sessions instead of just 3 times a week for summer terms (perhaps less frequent for spring/fall since it’s less intense). People got frustrated by unclear expressions in the assignments and exams. Unlike other courses I’ve taken, the instructor was almost absent on Slack or Piazza. I have no idea why - probably he was on summer vacation and handed everything to TAs…

The instructors are ignorant and super unhelpful. You can wait up to a week and still won’t get your question answered. You do all work by yourself, not worth the money at all, better to take open courses elsewhere if - will get the same level of knowledge and help but for free.

I took this with SDP as my first two courses during my first semester. Thad and the TAs were excellent in every way. They created challenging but rewarding projects and were very responsive to questions on Piazza. I would recommend taking this with a less difficult class as the projects and material are very time consuming and complex. Also, I had never used Python before, but the class would have been much easier if I had.

Very good course. Worth to take. Thanks for the lectures and TAs!

Awesome class. Some highlights:

  • Both very hard and and very time consuming
  • the lessons introduce the concepts, the reading fills in the gaps, and the projects and exams are where the reinforcement learning really takes place
  • Do ALL the reading. Try your best to do the readings and lessons before beginning the projects
  • Python experience – if you don’t have it, get some in advance. Anyone familiar with Java or C/C++ should be able to work comfortably in Python. If you have time, get familiar with numpy
  • Brush up on linear algebra, logarithmic math, and Big O notation

TA’s were very engaged. Professor Thad had a busy travel schedule this semester, but his passion for the topics came through in the office hours and times he participated on Piazza.

the projects come out as a “work in progress/beta” – if you start early, prepare to be frustrated with moving targets, bugs, and changes along the way. If you wait until the “official release” expect many sleepless nights to finish the work on time

it was announced at the beginning that grading would be based on class median – anyone above the median would get an A. This led to a significant amount of churn over grades in Piazza and Slack and a funny “if I help you I might hurt myself” dynamic which prevented collaborative learning. In the end, an overall grade of 69 and above was a B, 85+ an A. Grading was fair, students need to chill.

One of, if not the hardest class in the program. Assignments are a lot of fun, but require fairly advanced python skills to go the extra mile. Exams are take home, but are extremely hard and time consuming. You are only given a week to complete and they are given concurrently with assignments.

TLDR: very fun class, but come prepared and don’t take it lightly.

This course is not for the faint of heart. But it is a very interesting and fun course. Focuses in general on breadth, you will get exposed to the entire AI space. And focuses on depth in the topics of the assignments. The assignments are very hard and take lots of time, and require very good knowledge of Python. But very rewarding. 2 take home exams that are also very hard. The lectures are shallow though as they try to cover so much, you’ll need to do the recommended readings otherwise you will struggle with the assignments and the exams.

This course was fun but I really didn’t learn much other than how to try enough solutions to get an answer. The exams for this class are a complete joke because it’s basically just the TAs getting together to figure out gotcha questions. Each exam question is an extreme deep dive into one of the many subjects this course covers then modifying one small feature of the subject and asking vague questions about it that you must infer a lot of what the TA was thinking when they wrote it. They also give you a week to complete the exam so there’s no real studying for it and you should expect to spend 10-15 hours on it. The assignments are fun but don’t relate to each other so you will learn a lot about the subject then completely erase your memory for the next subject. I enjoyed this class but the exams didn’t really test anything other than how good you are at guessing. The professors doing the lectures are really smart though so the videos are pretty entertaining.

This was a great course in which you could learn a lot. Of course, it is a little bit difficult, but you would have so much fun in the class and solving the assignment and you would learn so much that it is totally worth it. Professor Starner was fairly involved in the class and answering students questions which made the class more lovely and desirable. The assignments were well designed and TAs are really responsive and wanting to help My first class in the program and I love it.

  • The content is very interesting and we implement ourselves a lot of algorithms
  • Lots of problems with Bonnie and the automatic notation was not always fair. This is probably because the course was quite new at the time
  • The TA and teachers are there to answer your questions and were active
  • Some projects are a LOT of work… I spent weekends on it
  • The material is very well done but not very funny to watch even if they tried their best… Overall I learned a lot and even if it was hard and got frustrated often, I liked this class

This course is very rewarding, given that you put in the time and effort. I made the mistake of taking this along with one other class, but even then it only got a little overwhelming toward the end of the semester. Before this course I would recommend knowing a little bit of Python, and review your statistics – probabilities, basic distributions, and Bayes’ Rule are all very important throughout the course.

The one problem I had was with Bonnie, the homework grading system. It seemed like the system wasn’t set up and tested well enough before the assignments began coming in, but this seems like more of a “growing pain” than an inherent problem.

I am a professional software developer who had never taken a course like AI so almost all of the concepts were new. I had never coded in Python before this class that by the first two weeks, you better be ready to learn as you will already be coding and completing and application in that period of time. Aside the challenge, which I knew it would be, the course lectures were incredibly engaging and the assignments were incredibly tough and engaging. You will know in the first two-three weeks whether you will enjoy the challenge or be defeated by it; however, I will say that if you stick the course, it will be very rewarding.

My lessons learned and advice is to complete the lectures right away to let the concepts sink in and start the assignments early. You will not be able to do the assignment the night before (trust me, I tried and got burned once). Also, give a good amount of attention and time to the midterm and final. I failed to think the midterm would be as long as the assignments as I was wrong. Many of the polls stated people spent well over 20 hours on the midterm. Also, be sure to understand the grading structure as I completely missed the ball on that. For my semester, it was a curve where everyone above the mean got an A and the professor separated the class on two curves for on campus vs online (which was a point of contention for most but was explained with good reason as on campus had additional time & resources and the means were statistically different to show for it. )

Best of luck in the class and hope you stick through the pain and relish in the accomplishment when you are done.

I liked the class for intended content. I thought most of the projects were made intentionally time consuming without much support in the concepts themselves. Lectures were a little lacking in detail with a few exceptions. Many lecture quiz solutions were not explained at all. The course took more time than necessary to learn content because it was very much self taught regarding details. I was a little disappointed in the presentation and instruction in this course. Big high fives to the TAs for getting grading done quickly.

The course content was excellent. Most of the video lectures were great. The highlight of the course was the homework assignments, which gave a practical exercise in implementing AI concepts yourself; I wished there were at least 10 of them (there’s only 6 in the class). On the down side - the course pacing wasn’t the best. The first half was great at going into depth at each subject, but the second half was definitely rushed, as if we were running out of time faster than the instructors had planned. I’d wished the pace had been quicker towards the beginning, so we’d have more time to look at interesting topics like logic, logic-based planning, and machine learning (though, I understand the last one’s covered in another course) - perhaps ML could’ve been shorter or non-existent, and be deferred entirely to the actual ML course, so we’d have more time for other concepts?

This class was one of the most difficult classes I have taken in the program but found it to be one of the most rewarding. It covers a wide variety of topics in great depth so be prepared to put in the time. As others have mentioned, there are 6 assignments (highest 5 count towards your final grade) and 2 take-home exams. Do not underestimate the exams because they are take home - they are no joke. If you fall behind on the readings, the exams will take you some time. I think I spent around 60 hours on the midterm. I felt the exams were a great mechanism for learning the material however. Overall, this class was amazing and one of my favorites. I highly recommend this course!

  • Excellent introduction to AI.
  • 6 assignments in total, I recommend to start each assignment as soon as you can, as they can be very time consuming. If you leave them for the weekend before its due, they will most likely suck up your entire weekend and you will be hitting your head against the wall for not starting early.
  • 2 Take home exams, as with the assignments they require a lot of time. Difficulty is ok if you have a good understanding of the assignments and you are up to date with your readings. Take lots of notes as no internet usage is allowed except the notes you have an any links they have in them

Videos and syllabus were the highest quality of any class in OMSCS. Assignment workload was double what I think it should have been and at some point you run out of time to truly understand the underlying material and just grind it out on the assignments. I’d suggest testing on the reading more and less on outright coding.

As other reviewers commented, there are lots of bugs and erratas in Fall 2016’s assignments and exams. I think with the feedback they got, this will be improved for the next iteration.

The lectures don’t really go into details some of the times, you need to read AI a modern approach 3rd edition. The book is a bit dry to read. Also there are extra readings for the challenge / extra credit part of the assignments which are not covered in the lectures.

For the logistic/execution this class falls short, 3 stars.

AI covers a lot of interesting topics. They are all very useful techniques to learn.

  • Game Playing
  • Simulated Annealing
  • Constraint Satisfaction
  • Probability
  • Machine Learning
  • Pattern Recognition through Time
  • Logic and Planning
  • Planning under Uncertainty

So for the subject matters, this course gets a 5 from me.

I wish they would tune the assignments so you don’t have to do the superficial boring stuffs (each assignment has 50-60% easy points that you can get by doing the minimal) and add more (shorter) assignments to cover the topics omitted. The assignment and feedback are big part of the learning for me.

Overall I’d give this course a 3. 5 - 4 stars

I enjoyed the class a lot. It covers a lot of topics, backed by the ultimate Russell/Norvig AI book. The lectures are a combination of old videos by Norvig/Thrun and new content by Thad Starner and head TA Shelly Baghi. The quality of the new content is amazing, with subtle jokes and animations; the old ones are poorer. Along with the book and lectures there is additional material usually linked to from the week’s overview or some assignments, or by other students on Piazza. You might also find more content online; I personally liked lectures from the AI class at UC Berkeley (http://ai. berkeley. edu/course_schedule. html). With practically everyone drawing from the same book, you’ll keep running into the same examples over and over again but sometimes having it explained by another person just makes the idea click.

There were 6 assignments, with best 5 counting towards your grade (worst score is dropped). They require you to understand the algorithms in theory and be comfortable with Python. They usually consist of several parts, starting with basics and progressively diving deeper, offering bonus points for implementing advanced algorithms described in attached papers. The assignments were the best part of the course in terms of learning but at the same time could be very annoying when you’re trying to find a bug in a complicated algorithm. It’s just not the type of problem you can solve quickly on StackOverflow.

Midterm and final exams starting with our semester were open book. They each took about 10 hours to complete and motivated you to consult the book/lectures to fully understand the topics before committing to an answer.

On average I spent about 10 hours per week on the class (counted by Toggl) but by no means it’s an easy class. Unless you’re a skilled programmer and used to watching lectures at 2x speed, you could easily end up needing twice as much.

There is some good content in this class and I felt like I learned a decent amount about various areas of A. I., however the class in general feels unpolished in its current form and almost feels like a “beta” release. Most assignments and exams had multiple corrections made to them AFTER they were assigned, causing frustration as you are trying to work on something that is constantly being altered. Lectures are inconsistent in quality/polish as well as how much material they cover and how well. Some lectures seem to be re-used Peter Norvig and Sebastian Thrun videos that are nearly unwatchable and not remotely on par with other OMSCS classes.

There are definitely some bright spots in the course and I could see this being a strong offering later on if they refine/replace a lot of the older and poorly quality controlled content. Assignments were relevant to the course material and did a good job pushing you to learn the material thoroughly. Some assignments even had auto-graders which I appreciated because you could roughly know your grade on the assignment before the submission deadline. To their credit, the TAs were also fairly responsive and willing to admit and correct unclear areas of assignments and exams almost to a fault.

Overall I would still recommend this course as a good first A. I. course, however keep it mind it still has some growing pains and isn’t a great representative of the OMSCS program as a whole.

There is a good class hiding somewhere in the course materials, but it wasn’t on display in Fall 16. Overall structure was 6 projects and two exams. The grading is a little wonky, because only your best 5 assignments count, and your final grade is based only on your overall standing at the end of the class. Anything over the overall course mean was an A, and the B cutoff was generously below the mean.

The lectures are a patchwork of old content from Thrun and Norvig and some new modules with Starner; production value is good, but the new content is often superficial, and it seems to be read from a script. (I’m not saying I could do better, but there are better lectures in the OMS program at this point).

Contrary to other posters, I found this class to be a constant frustration. The projects were error-laden, and the staff participation on Piazza was below-average; however, office hours and instructor participation in the class were much better than other classes. The projects were not particularly difficult (similar to RL or CV), but there was not a single graded exercise this semester (assignment or exam) that didn’t contain obvious mistakes/errors. Sometimes the staff would acknowledge the issue and make a correction, and other times… not.

It was not beneficial to start the project early (because of the errors), but it also didn’t always pay to start them too late because they would often make changes to the assignments after they were officially released. The autograder (i. e., “Bonnie”) used to grade assignments would get overloaded the weekend that assignments were due and cause all kinds of reliability problems. I think the Bonnie servers are Udacity infrastructure shared by all GT classes that use the system, so large classes (6601 started with 400+ this term) and overlapping deadlines cause issues.

Give it another couple semesters to work out the bugs before taking this one.

An excellent introductary course to the field of AI. Prof. Starner and all the TAs are a bunch of extremely passionate & dedicated group of people not only about the subject matter but to teach it. It’s not like they demonstrated this passion once in a while but I’ve noticed the trend consistently through out the term; they’ve gone out of the way to explain things be-it assignments that each TA handled or holding office hours, answering questions on piazza etc. Not once did I feel a disconnect from the class. One thing that impressed me the most was Thad spending 2. 5 hrs giving a walk through of midterm; something that we don’t see too often by any Prof of that class & calibre (such things are generally dealt by the TAs). Almost all the TA’s were highly motivated, fun to work with on assignments & were highly responsive on piazza (sometimes even on holidays) & the best part was they are all humble enough to learn from any occasional mistakes that happened in setting up assignments or questions in the exams. The course is pretty loaded (especially if you are working fulltime). There are 6 assignments, 1 midterm & 1 final exam. The assigments were all challenging covering various areas of AI. This is my 4th course & clearly I’ve spent the most number of sleepless nights(almost) during this term :) Both the midterm & the finals are open book format & we had a full week to submit. This meant the questions were pretty open ended & challenging. Found this format of exam very benefitial. Gives you an opportunity to review the material well before answering. For once, it felt like it was testing what you know and not the 2-3 closed book formats which was testing more of what we don’t know/remember.

Overall, I’ll recommend the class highly if you wish to explore & know more of what AI, ML etc is all about…

This course was very difficult, took a ton of time and was very stressful at times. That being said, I’d take another class like it in a heart-beat! Thad’s level of interaction with the class on piazza and in the office hours really made you feel like he cared about your understanding.

Great course: lots of fun and you learn a LOT (broad survey course). The projects can be a bit tough, so start on they as soon as possible! All of the material (lectures, book) is straightforward and practical, which makes the course very accessible.

It is good survey course. I did not found assignment very time consuming but mainly because I have taken ML course before and I am proficient in python (pydata stack). I would recommend taking ML and getting a bit of python exposure in advance (you can do one of ML assignment in Python for that). I liked Thad’s approach to designing assignment and exams, particularly the aspect that assignment start with topics covered in lectures but then gradually goes beyond so that you have to research more advanced topic. However, I found videos to be little less engaging compared to ML and can be improved.

This is a survey course in AI and a great one! It covers a lots of AI materials that can be used in other computing disciplines as well. The assignments are hard but lots of fun, just completing those is an accomplishments I think. Exams are open book and I have found it easier than assignments in comparison. Grading is curved and fair. Teacher and TA’s are one of the best in the programs. The lectures could be improved to cover more materials required to complete the assignments as well as super important in any AI course (for example, Markov Chain); I have spent considerable amount of time learning concepts from outside source (online academic source, somewhat ironically) to complete assignments. This truly feels like a GT graduate level course where the expectation from students is a bit high. After completing this course I think I can better understand the AI zeitgeist and actually comprehend the technical discussion around AI.

This is a great overview of AI. The lectures do a great job of presenting the material with quizzes to reenforce your understanding. A few of the sections use videos from the older intro to AI course but I think those will be updated. This was the first course I’ve taken that actually felt like a graduate level course. There is a lot of reading (almost the entire book) however the exams are open book/notes.

This course had 6 assignments in total. 1 midterm and 1 take home exam (for 1 week). I can tell every assignment was challenging and required a significant amount of effort to complete. In many of the assignment you will need to deal with some python subtleties like vectorizing your operations on images using numpy (this can take some time to grasp). This class also requires probabilities but some lectures are completed dedicated to introduce you to what you need. This class had very high quality and great professors like Thad Starner, Peter Norvig and Sebastian Thrun. The textbook is a great book. I learned a lot in this class. I hadn’t taken any AI class before and still managed to get good grades but I had to put many hours.

The TAs and professor were very responsive.

I withdrew from this class after the first 5 weeks. The topic was interesting and the lectures were great. But no matter how many hours I spent on the assignments, I couldn’t get everything to work correctly. Programming assignments like the ones in this class need to provide clear, timely feedback. I spent way too much time figuring out minor python bugs and not nearly enough time actually learning artificial intelligence.

Quote: this course is a survey of algorithmic hacks to NP-hard problems. In reality, it was interesting to learn about present-state AI research from prof. Starner and his work in Sign Language recognition, wearable computing, and Dolphin communication. This course was the initial offering of 6601 for the OMSCS program. The professor and the TAs input an enormous amount of effort to pull off this course - my thanks to them. As a note of context, this course was advertised to be offered in Spring ‘16 and then cancelled late Fall ‘15 and then surprisingly re-released at the 11th hour.

As the course advertises in its description, it is intended for those who have some background in AI or are ready to jump into the deep end (true statement) The description asks for 9 hrs per week and it should be modified to reflect the true effort required in this class. Most students, including myself, input 20+ hours per week to stay afloat. Most of the time you spend will be on solving an assignment and researching. It’s very easy to forget that you have to watch the lectures as well!

The professor’s assignment methodology was to introduce a concept through lecture, then complete some ‘warm-up’ problems in the beginning of each assignment to develop intuition. At the end of the warm-up, you solve more difficult problems by implementing solutions that had not been explicitly covered in class. This was certainly the most rewarding and difficult part of the class!

There were several first-time hiccups in assignments and exams, however the TAs and the professor had open ears and minds and ultimately made it right and I’m sure that the next offering of this course will be even better.

I learned an incredible amount about the material even though I felt overwhelmed during the majority of the course. This is certainly an opportunity to become familiar with the AI field with an intensive, hands-on experience from which you will benefit greatly.

This was a great class touching on many topics in AI. The videos were fun (corny jokes - ‘poor #4’), informative, and did a great job of introducing and reinforcing the concepts being taught. The assignments generally transitioned well from the lectures, but sometimes there was a gap. Usually, you could get most of the points [awarded] for an assignment from the lectures and class materials. To go all the way, you needed to do a bit more work [i. e. research]. All in all, very fair and quite straight forward.

No group projects required.

This course requires a lot of commitment, the assignments require additional investigation and strong knowledge of Python plus Numpy and Scipy.

Personally I did not know a lot of Numpy starting the course and was forced to learned as the course progressed, had I known it beforehand the assignments would have been less complicated.

This is my first course on the program so I cannot compare with other courses in the program, but I had to dedicate a lot of time to this one.

Definitely get the recommended book… either buy it (you will not regret it as it is a great book) or get the online version. There is a lot of reading based on the book.

There had been a few bugs in videos and assignments, which I expect to be fixed in the next iterations of the course.

Even with this small issues I have really enjoyed this course.

I’ve taken KBAI, AI for Robotics and ML (among others). I think these three combined will give you some solid understanding in AI/ML algorithms. A great difference from ML is that ML focuses more on bench-marking/ comparing different algorithms, but AI is the opposite, asks you to create algorithm from scratch. A lot of mysteries in ML for me are answered in this class. I tend to disagree with other people about the assignments though… I don’t think they are that difficult if you some background in statistics, I finished many of the assignments in 2~3 days, I wouldn’t say that’s ideal though.

Overall a really great course to survey many of the AI topics, sometimes it felt to me they are rushing through the topics. I do wish them to separate these into two-semester long course so we could go deeper in some of the topics or maybe open a follow-up advanced level course though.

The piazza is really active, almost too active that I could barely follow, but I guess that’s always good.

TL;DR: You must be a very good with Python before taking. Assignments are vague and seem hastily prepared. Instructors and TAs good. Most problems probably due to first time offering

It’s best to think of these class as seminar where the lectures are really only a cursory review of the material but you are then expected to do independent research to implement the assignments. (One assignment involving MCMC is covered in the lecture for only 90 seconds). Unlike many classes where the starter code provides a lot of the minutia functionality, this class you pretty much build from the ground up. The starter code when provided is sparsely documented and seems hastily prepared. Got the impression that each TA was assigned the task of creating one homework for the class, but then those assignments weren’t tested or validated by the other TAs/Instructor prior to launch. In many of the other classes, (like Intro to CV or KBAI) the assignments, while hard, show polish from having been refined over the years rather than being rushed to meet production deadline.

The biggest problem though is that after an assignment, there’s no follow up by staff as to what the right approach or solution might have been. Didn’t get it solved? Too bad. Students aren’t allowed to share solutions or general approaches after the fact either. Makes it hard to learn if you struggle with an assignment but then get no feedback other than a grade. There was discussion of this being due to Piazza. Hopefully on future iterations the TAs/Staff will figure out how to lock it down so that they don’t have to worry about future students finding the previous class forums.

Apparently the curve is generous, so supposedly everybody will be getting Bs or As. I was getting a high A when I dropped. I dropped because of the lack of feedback.

I’m optimistic that future iterations will work a lot of the ‘first-time-offered’ bugs out.

Go into this class with good probability and python skills. It also helps to take an undergrad level AI class, but is not strictly required. I went in with poor probability skills and no AI undergrad class, so I’ve been spending a lot of time on each project. It is a very hard class, but the grading is generous this semester (perhaps because it’s the first offering). It’s super gratifying, though, if you have the time. The professor is taking David Joyner as a model for how to run an OMSCS class. He has been very active on Piazza, and the TAs are all excellent. The head TA is above and beyond awesome, and appears in the lectures as well. I’m glad I took it this semester, as I might have been scared away by the time commitment. It’s worth it.

Along with ML this has been one of my favourite classes. The TAs and Professor are extremely helpful, the material is difficult, but not overwhelmingly so (there is some expectation that you will seek external resources or spend a lot of time reading the textbook, as lectures videos by themselves are probably too shallow to complete assignments). I felt the midsem was fair assessment of your knowledge.

As for the assignment, there is a level of satisfaction with “getting to the end”. This doesn’t mean that I’ll score 100%, but merely finishing is an achievement in itself. Others in Piazza have noted that the marks gained in each segment of the assignments are not weighed with the amount of time used solving them - I believe this is correct and to be honest I’m totally fine with that.

I think anyone taking this course will learn alot and is well worthwhile.

  • Review AI topics beforehand (use google to find the syllabus)
  • Knowledge of Numpy/Python would help
  • Taking ML first would naturally make the ML portions easier…

I don’t think there’s really any course that I would say should be done as a prerequisite for the AI course, and would work fine as a first course.

Very interesting but challenging class. Lots of work. The instructions for the assignments can be a bit vague at times… but you end up learning quite a bit of material from them.

The Professor and TAs are truly excellent.

This was the only course I was taking for the semester as I was expecting a newborn. Bad choice. I withdrew mid assignment 2. I was thinking this course would be on par with KBAI in terms of difficulty and workload. I have completed 5 other courses in the program (KBAI, AI for Robotics, Intro to Health Informatics, Computer Networks and Educational Technology) and this one was by far the most time consuming. The material itself is fascinating and I look forward to taking this course again when I don’t have a newborn. If you are strapped for time, or think you might be, avoid this course until you are certain you will have time to devote to it.

Most of the difficulty is probably related to the fact that this is the first run of the course but the projects are VERY time consuming. The videos and text book are excellent.

tl;dr : 6 VERY difficult projects, one every 2 weeks. Advanced Python recommended.

This class requires a really good knowledge of Python to do just well in the class. Very little of guideline on the projects, you need to do a lot ( I mean a lot ) external research to be able to figure out what going on. There are 6 projects in total ( will drop the lowest one ). A project is normally divided into smaller parts : Warm-ups and Exercises. ( Warm-ups is a misleading term since it will take you more than 50% of the time and around 50% of the grade too)

(This review was written half-way through the very first semester , however a lot of people already get exhausted after Assignment 2 )

IMAGES

  1. Anna University CS 6601

    cs 6601 assignment 1 github

  2. GitHub

    cs 6601 assignment 1 github

  3. SOLUTION: Cs 6601 class information

    cs 6601 assignment 1 github

  4. GitHub

    cs 6601 assignment 1 github

  5. GitHub

    cs 6601 assignment 1 github

  6. CS601 ASSIGNMENT 1 SOLUTION 2021

    cs 6601 assignment 1 github

VIDEO

  1. 2024.11.15.抽せん【第6601回 ナンバーズ3】抽せん結果と当たり籤の確認です!!さらなる成長、抽籤だ!!(ちゅうせんだ!!)

  2. CS-302 GDB SOLUTION FALL 2024/2025

  3. How I animate 3Blue1Brown

  4. How to submit an assignment on GitHub (PLP Program)

  5. CS6601: Artificial Intelligence Course Overview/Thoughts

  6. CS 1.6

COMMENTS

  1. CS 6601: Artificial Intelligence

    CS6601 编程辅导, Code Help, Wechat: powcoder, CS tutor, [email protected] - powcoder/CS6601-Assignment-1-Search

  2. CS6601 Assignment 1_ Game Playing.html

    AI to play a game of isolation using minimax and alpha-beta pruning concepts - isolation_AI/CS6601 Assignment 1_ Game Playing.html at master · ayazhemani/isolation_AI

  3. GitHub

    Contribute to repogit44/CS6601-2 development by creating an account on GitHub. Skip to content. Navigation Menu Toggle navigation. Sign in Product GitHub Copilot. Write better code with AI Security. Find and fix vulnerabilities Actions. Automate any workflow ... assignment_1. assignment_1 ...

  4. Question about CS 6601 (AI)? : r/OMSCS

    Question about CS 6601 (AI)? Courses On the GitHub repo for the search project (project 1), there are so so so many resources that it tells you to look at for help. It is overwhelming. Which resources out of all of those are necessary to be able to actually complete the assignment? It basically gives you 3 months worth of material to read ...

  5. Assignment1

    github/JeffreyWeirenWang Warm Up Assignment 3: Describe a state space in which iterative deepening search performs much worse than depth-­‐first search (for example, O(n2) vs O(n)) Suppose that there is a tree to search, the tree has only one branch.

  6. CS 6601

    The game tree quickly expands after a few moves, and we get 1 second to make a decision, so to receive full marks, you need to be clever with your implementation. 📖 Assignment 2 - Search. A quick recap on search. Uniform cost search (UCS) expands nodes based on the lowest cost path. We are guaranteed to find the optimal path from start to goal.

  7. Preparing for 6601 for next semester. Is 6601 all programming ...

    You can also look at the GitHub for the 6601 class, it's open to anyone. ... I was thinking to start from November with the AI 6601 lectures in Udacity and starting with the assignment 1 (if I recall correctly the repository for this course is publicly available). ... CS 6601: Artificial Intelligence.

  8. Review of 6601 AI : r/OMSCS

    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. ... Non-CS bachelors trying to make career change. ... But the labs are public and you can try and work on one over the break to get an idea. Just Google github ...

  9. GitHub

    Contribute to allenworthley/CS6601 development by creating an account on GitHub. Skip to content. Navigation Menu Toggle navigation. Sign in Product GitHub Copilot. Write better code with AI Security. Find and fix vulnerabilities Actions. Automate any workflow ... CS6601-Assignment-1.

  10. CS-6601

    CS-6601 is a great introduction class to AI. Best part: ... assignment 1 - search Many cite this as one of the more difficult assignments, although if you have programmed UCS/Dijkstra before, it's not so bad, just a lot of code to write. The last few points are far more difficult to achieve compared to the first 80-90 points, which is ...