CS6601: Artificial Intelligence
Spring 2018 Syllabus
Last Revised: 01/08/17
Head Teaching Assistant
Any missing TA information will be added soon.
CS6601 is a survey of the field of Artificial Intelligence and will often be taken as the first graduate course in the area. It is designed to be challenging and involve significant independent work, readings, and assignments. The course covers most of the required textbook Artificial Intelligence A Modern Approach 3rd edition, which is a keystone of Georgia Tech’s Intelligent Systems PhD qualifier exam.
The course textbook is Artificial Intelligence: A Modern Approach (AIMA, Third edition) by Stuart Russell and Peter Norvig. Note there is a much cheaper CourseSmart edition for “rent.” The textbook will be supplemented by several papers whose links will be provided throughout the course.
To succeed in this course, you should be able to answer 'Yes' to the following questions:
If your answer is “No” to any of these questions, this course may not be appropriate for you.
The goals of this course are
CS6601: Artificial Intelligence is typically run as a 16-week class. All assignments are due at the end of the week, on Sunday at midnight UTC-12 (Anywhere On Earth time). This deadline translates to an early-morning Monday deadline in the Americas, a midday Monday deadline in Europe, etc. For ease of use, you may want to set your T-Square timezone to UTC-12.
The class schedule is available here. This schedule of the lessons is merely provided as a guide. For the midterm you are responsible for everything that has a suggested date before the midterm is given. For the final, everything in the class, including what you learned in your research for the assignments, will be applicable. Each assignment is based on some of the immediately preceding lesson topics and may require additional research on your own.
Most readings will be from the textbook. Additional readings will be made available either publicly online or will be provided to you in the T-Square Resources section for this class.
We will also provide an optional reading list.
Your final grade in this class will be based on two components.
top 5 scores achieved from 6 assignments
Midterm (20%) and final (20%)
It is important to note that this course does not follow the normal grading buckets (90 or above for A, 80 to 90 for B, etc.). Make sure to pay attention to the announcements after each assignment and project is graded to understand where your grade sits in the big picture.
Achieving a grade above the median will result in an “A.” A “B” will be given for final grades equal to the median and above 1 standard deviations below the median. Grades equal to or below 1 standard deviations below the median and above 2 standard deviations below the median will get a C. Grades equal to or below 2 standard deviations below the median and above 3 standard deviations below the median will get a D. Any grade equal to or below 3 standard deviations below the median will get an F. There will be chances to earn extra credit points during the semester. These are factored in at the end after all other curving is done. Although we understand the importance of grades, we encourage you to focus first on doing the best you can; if you do, your grade should take care of itself.
We will strive to return grades within two weeks of submission. Grades will generally be delivered via T-Square.
Note that grades on the last assignment and the final exam will be posted very close to the final grade submission deadline. Make sure to allocate time after finals to check your grades and make sure everything, especially these final two, are as you expected.
Lastly, remember: this class is effectively graded on a curve. A 90% is certainly not the threshold for an A in the class. If you try to interpret your grade according to the traditional categories, you will likely think you are doing worse in the class than you actually are. Make sure to pay attention to the stats posts at the end of each assignment for the context necessary to interpret your grade and evaluate your performance.
There are six assignments in this class. Only the top five grades will be used in determining the final grade; however, we suggest you complete all of the assignments because they will help with your understanding and your performance on the midterm and final. Each year, several students’ letter grades could have been higher if they had completed the last assignment (which is on your instructor’s favorite topic).
Most assignments will involve programming in Python. Why Python when Peter Norvig and Thad Starner both prefer Lisp for teaching AI, and Alan Kay called Lisp “The greatest single programming language ever designed”? In preparing for this course, the AI instructors surveyed believed Python was the best compromise; it has inherited many good features of Lisp, is commonly used in industry (e.g., Google), and best matches the pseudocode in the book (according to Norvig himself). Students taking a course at this level should be able to become functional in a new language quickly. Please become acquainted with Python.
Here is a summary of the assignments. Due dates can be found on the course calendar.
Computer Isolation Player: Using MINIMAX and alpha-beta pruning and experimenting with evaluation functions, create a program that can play a variation of the game Isolation better than a human.
Tri-directional search: Experiment with various search techniques to discover the most efficient way to find the shortest path between three places in a city.
Bayes Nets Sampling: Implement Bayesian networks and sampling algorithms to gain a better understanding of probabilistic systems.
Building Trees & Forests: Build, train, and test several decision tree models to perform
basic classification tasks.
Gaussian Mixtures: Implement k-means clustering and Gaussian mixture models to perform basic image segmentation. Research, implement, and test the Bayesian Information Criterion to guarantee a more robust image segmentation.
HMM Recognition: Implement the Viterbi and Forward-Backward algorithm to recognize signals using HMMs.
More information about the projects and their learning goals will be found on the individual project assignment pages.
There will be a midterm and final in this class. We are still determining the format and best way to administer them, but they will most likely be take-home. In previous iterations we used external software, where students are requested to upload their completed exams in PDF format. It made grading a lot easier and also allowed us to provide feedback that students could view when grades were released. We found that it worked really well, and will most probably do the same this semester. We will soon reveal more details through announcements.
Any new class information that you are responsible for knowing (such as changing due dates or changes to assignment requirements) will usually be sent in two ways:
Thus, any new information you are required to know should arrive in your inbox twice, as well as be visible on the T-Square page and Piazza forum for the class. However, T-Square is the official resource for deadlines and information.
If we have any questions for you, such as if your assignment could not be opened or your project would not run, we will email you. Georgia Tech generally asks that you check your GT email at least once every 24 hours on weekdays. While there should not be anything in this course that requires an answer that fast, we ask that you check your GT email with that level of regularity to make sure you see any important announcements in plenty of time and respond to any TA questions quickly. If we contact you and do not hear back, your grade may be affected (and we don’t want that!).
Note that assignments are due on Sunday nights based on popular request among OMS students. However, remember that for the instructors and TAs of this class, this is a job, and we may not check Piazza on weekends. Please make sure to start the projects and assignments early enough to ask questions in advance.
Generally speaking, questions should be posted first to Piazza. This opens up the question to input from everyone in the class and creates a self-documenting history of the answer to the question. However, there are certain questions that are better-suited for office hours, like more conversational discussions on course material and discussions about individuals’ grades. For these things, we will have weekly synchronous office hours sessions run via Google Hangouts, as well as Instructor Hangouts on Air. A calendar of the available office hours times is available here.
Note that generally, these office hours will not be recorded aside from Instructor Hangouts on Air. Synchronous office hours are intended for conversations, discussions about course material, etc. rather than straightforward question-and-answer; because they are more personal to the individual attendees, they are not as useful when recorded and posted. Additionally, the pressure of knowing over 400 people may watch a private chat tends to dampen natural conversation. If anything comes up in these office hours that is relevant to the rest of the class, it will be recorded or posted on Piazza. In the event that synchronous office hours are not offered during a time that you can make, please let us know and we’ll try to add times to the schedule.
If your question is about a private issue, such as a grade on an examination, you should post a private Piazza message (visible only to instructors). Please remember, however, that the instructor and TAs are together responsible for a class of over 400 students in addition to in-person classes and other responsibilities, so please be patient in awaiting responses and, whenever possible, post your questions publicly on the forum first.
Running such a large class involves a detailed workflow for assigning assignments to graders, grading those assignments, and returning those grades. As such, work that does not enter into that workflow presents a major delay. Thus, we cannot accept any late work in this class. All assignments must be submitted by the posted deadlines. Only the top N-1 of the N assignment grades will be used to calculate the final grade. Our suggestion is to use that policy wisely and always submit something for each assignment, taking advantage of the policy only in an emergency. If you have technical difficulties submitting the assignment to T-Square, post privately to Piazza immediately and attach your submission.
If you have an emergency and absolutely cannot submit an assignment by the posted deadlines, we ask you to go through the Dean of Students' office regarding class absences. The Dean of Students is equipped to address emergencies that we lack the resources to address. Additionally, the Dean of Students office can coordinate with you and alert all your classes together instead of requiring you to contact each professor individually. You may find information on contacting the Dean of Students with regard to personal emergencies here.
The Dean of Students is there to be an advocate and partner for you when you’re in a crisis; we wholeheartedly recommend taking advantage of this resource if you are in need. Justifiable excuses here would involve any major unforeseen disruption to your classwork, such as illnesses, injuries, deaths, and births, all for either you or your family. Note that for foreseen but unavoidable conflicts, like weddings, business trips, and conferences, you should complete your work in advance. If you have such a conflict specifically with the midterm or final, let us know and we’ll try to work with you.
In general, we strongly encourage collaboration in this class. You are encouraged to discuss the course material, the exercises, the written assignments, and the projects with your classmates, both before and after assignments are due.
However, collaboration should be at the “white board interaction” level. We draw the line at the following:
The program has mechanisms in place to prevent plagiarism. Starting this semester, we are also enlisting the help of OMSCS students in detecting such cases and will act upon any evidence that we find. We have successfully caught instances of plagiarism each semester. Please don’t be the next person; we can assure you that the consequences for a poor grade are far, far less than the consequences for plagiarism. It isn’t worth the risk. Any instances of violation of this policy will be referred to the Dean of Students. If you are unsure of whether a certain type of collaboration is acceptable, please ask first, preferably on Piazza. The full Georgia Tech honor code is available here.
Fall 2016 was the first time we were delivering this course simultaneously on-campus and as part of the Georgia Tech Online Masters in Computer Science. It is still a new experience for us, and as such, there are bound to be things we can (and will) improve. First, we ask that you be patient and understanding with anything that might go wrong; we promise that we, too, will be fair and understanding, especially with anything that might impact your grade or performance in the class. Second, we ask you to give us feedback on anything that we could be doing better, as well as feedback on anything you are particularly enjoying. You may take advantage of the suggestion box on Piazza (or email the Professor and the TAs).