CS 5804: Introduction to Artificial Intelligence



This course will cover the foundations of modern artificial intelligence (AI) and many of the key ideas that have resonated throughout its history. It will focus on concepts that are not only important in the space of AI, but are also practically useful in modern applications. We will practice effective methods of reasoning about AI problems, which will generalize beyond the specific topics we study in class.

Class meets Monday and Wednesday from 2:30 PM to 3:45 PM in 332 McBryde Hall.



The official prerequisites are CS 3114 (Undergraduate Data Structures and Algorithms) and senior standing. You should be comfortable with discrete mathematics, basic probability and statistics, basic logic, computational complexity, data structures, and algorithm analysis. The homework assignments will include programming portions using the Python language.

Please speak with the instructor if you are concerned about your background. Note: If any student needs special accommodations because of any disabilities, please contact the instructor during the first week of classes.

Reading and materials

Grading breakdown

Format and attendance

The class is designed with the aim to keep the in-class experience interactive, engaging, and fun. As much as possible, I will present dense and dry material in online video lectures that you will watch on your own time, and we will spend class time discussing your questions, details you are interested in, and working together on the homework problems.

To make sure this experience works for everyone, class attendance is mandatory. I will take attendance at my discretion, and I will penalize any unexcused absences.

Discussion forum

We will use a piazza page for discussion, online question-answering, and making announcements. You are encouraged to ask and answer questions on the forum, as long as you do not give away solutions to homework problems. Participation in the online forum will count toward class the participation grade. Sign up for the forum at http://piazza.com/vt/spring2015/cs5804.


Course schedule

The course schedule is viewable as a Google spreadsheet at http://bit.ly/5804schedule. The topic schedule is very tentative, but should give you a rough idea of what we're planning on working on.


Exams for this course will be open-book and notes. They will be designed with the intent of testing your ability to understand and apply the concepts we learn about in class, not whether you can memorize them. The only restriction to avoid communication with others is that you won’t be allowed to use electronic tools like laptops and smartphones during the exams.

The midterm exam will be held in class shortly after Spring Break. The final exam will be a take-home exam; due date TBA.

Regrading requests

Requests for regrading due to grading errors must be submitted in writing to the TA within one week of the release of grades.

Late homework policy

Homework submitted late without permission will be penalized according to the following formula: (Penalized score) = (Your raw score) * (1 - 0.1*(# of days past deadline))

This formula will apply for up to three days, after which the homework will not be accepted and you will receive a grade of zero. Avoid invoking these penalties by starting early and seeking extra help.

Academic integrity

The tenets of the Virginia Tech Graduate Honor Code will be strictly enforced in this course, and all assignments shall be subject to the stipulations of the Graduate Honor Code. For more information on the Graduate Honor Code, please refer to the GHS Constitution at http://ghs.graduateschool.vt.edu.

This course will have a zero-tolerance philosophy regarding plagiarism or other forms of cheating. Your homework assignments must be your own work, and any external source of code, ideas, or language must be cited to give credit to the original source. I will not hesitate to report incidents of academic dishonesty to the graduate school.

Disclaimer: This syllabus details the plans for the course, which are subject to change. I will make sure any changes are clearly announced and will always be intended for your benefit.