CS 4710: Artificial Intelligence (Spring 2020)

Basic Information

Class Location: Rice Hall 130
Class Time: Tuesdays and Thursdays, 9:30am to 10:45pm
Instructor: Haifeng Xu
TAs: Course Material: Prerequisites: This course has substantial elements of both programming and mathematics. You should have taken the following classes or their equivalence: Please be prepared to review basic probability and mathematics on your own if it is not fresh in your head. You should also be very comfortable with Python.


Course Description

Artificial Intelligence (AI) is an exciting field that has enabled a wide range of cutting-edge technology, from driverless cars to grandmaster-beating Go programs. The goal of this course is to introduce the basic ideas and techniques underlying the design of intelligent computer systems. Topics covered in this course are broadly be divided into 1) planning and search algorithms, 2) probabilistic reasoning and representations, 3) machine learning, and 4) multi-agent systems (although, as you will see, it is impossible to separate these ideas so neatly). Within each area, the course will also present practical AI algorithms being used in the wild and, in some cases, explore the relationship to state-of-the-art techniques. The class will include lectures connecting the models and algorithms we discuss to applications in robotics, computer vision, online platforms, and related domains.

The course will provide a good foundation for topics covered in advanced AI courses. CS 4710 complements CS 4774. In particular, CS 4774 emphasizes machine learning, which is part (though probably the most hot part currently) of AI, whereas CS 4710 provides a more comprehensive overview of the whole AI landscape. Students who take both CS 4710 and CS 4774 will have a solid background for understanding and contextualizing modern AI research and experience implementing algorithms in several key areas of the field.

Topics and Tentative Schedule


Requirements and Grading

The course has several components:

Final grades take into account each component. You must achieve a passing grade in all components to pass this course. Although we won’t publish hard grade cutoffs, just note that to receive an “A” you must have high performance is all categories.

Readings   Each class meeting is preceded by a reading assignment, which will be assumed during the lecture and discussion in class. You should set aside 2 hours to compete each reading. We do not expect you to fully understand everything before coming to class, but the goal is to prepare for class, familiarize yourself with new terminology and definitions, and to determine which part of the subject you want to hear more about. We encourage you to bring questions to class about material that is confusing. Other students might share your confusion.

Problem Sets   The problem sets will be published on UVA Collab. Most problem sets have two components: programming and written. The programming part can be done in pairs or individually. The written part will focus more on conceptual/analysis questions and must be done individually. Computational assignments will ask you to develop implementations of algorithms discussed in class. We expect that all code will run, be well-written and be commented appropriately. All problem sets will be submitted through Collab.

Collaboration Policy   Each assignment will include a programming component and a written component. HW0 (more of an entrance test) must be done individually. The programming component of HW1–5 can done and submitted in pairs. This implies designing and writing the code together and both submitting the same code and receiving the same grade. You will need to mention the name of your partner on the homework, and you can work with different partners for different HWs. Note that we will treat pairs/non-pairs the same from a grading perspective. We expect you and your partner to design and implement the solutions together. You may also consult with your classmates in other groups as you work on the problem, but you should not talk in terms of pseudocode or real code, and you should not share answers. In addition, you must cite any books, articles, websites, lectures, etc. that have helped you with your work. If you are doing the HW individually, then the same rules apply: talking is ok, sharing code is not.

The written component of all assignments must be done individually, and each person must submit her/his own written assignment. You are encouraged to consult with your classmates as you work on the problems for the written assignments. However, you should not share answers. After discussions with your peers, make sure that you can work through the problem yourself and ensure that any answers you submit for evaluation are the result of your own efforts. Cite any books, articles, websites, lectures, etc. that have helped you with your work and list the names of students with whom you have collaborated. Note that understanding the concepts in the written assignments is important both for the computational components and the exams.

Late days   Each student is allotted a total of five late days for use on problem sets. A late day extends the due date by 24 hours and a maximum of 2 late days can be used towards any individual assignment. Weekends are not counted as late days. If you have used up your 5 late days, you will be penalized 25% per day, up to two days max, with no credit after two days.

In cases of medical or other emergencies which interfere with your work, have your Resident Dean contact the instructor. Any grading disputes on written assignments must be submitted as Piazza private messages within one week of the grades being posted after which the grade is final. Except in extraordinary circumstances, no regrades will be accepted on programming assignments. The work in question will be fully regraded and the grade may go up or down as a result. Programs will be graded based on correctness, performance and documentation. Written components will be graded based on correctness, depth of analysis, and clarity.

Late days cannot be used on any of the components of the course project.

Exams   There are two in-class midterm exams (closed book, no notes), one covering the first half of the course material and the second covering the second half of the course material. See the schedule for dates and topics covered. The exams are in-class because we want to leave sufficient time for you to complete the final project during the examination period, described as follows.

Mini Course Project   Close to the end of the course students will design and carry out a course project in groups of 2 - 4. The goal of the project is for you to use techniques learned from class or outside the class to solve an AI problem of your interest. In the project, you will need to: (1) identify an AI problem of your interest; (2) implement algorithms or techniques, covered in class or learned by your own after class, to solve the problem. You are expected to identify the right approach to solve the problem though innovation in the techniques is not required (i.e., you do not need to design new techniques). This is to give you an opportunity to try something “real”. The project is expected to not take too much of your time and thus is called a “mini” project.

Grading of the project is based on how interesting/difficult is your problem, how solid are your solutions, and how good are your results. Each project group will need to:

Note: All group members will receive the same score for a project. Thus it is your responsibility to find collaborative partners to work together on the project. In the past, we have received complaints about some group members not doing the work. You should try to figure out this as early as possible and, if necessary, re-organize the group. For such situations, we cannot do much from our side unfortunately, especially when it comes close to the end of the semester.

Other Related Statements

Honor code (Adapted from Honor Syllabus Example Statement of UVa)

I trust every student in this course to fully comply with all of the provisions of the University’s Honor Code. By enrolling in this course, you have agreed to abide by and uphold the Honor System of the University of Virginia, as well as the policies specific to this course. All suspected violations will be forwarded to the Honor Committee, and you may, at my discretion, receive an immediate zero on that assignment regardless of any action taken by the Honor Committee.

Please let me know if you have any questions regarding the course honor policy. If you believe you may have committed an Honor Offense, you may wish to file a Conscientious Retraction by calling the Honor Offices at (434) 924-7602. For your retraction to be considered valid, it must, among other things, be filed with the Honor Committee before you are aware that the act in question has come under suspicion by anyone. More information can be found at here.

Students with disabilities or learning needs

We thrive to create a learning experience that is as accessible as possible. If you anticipate any issues related to the format, materials, or requirements of this course, please meet with me outside of class so we can explore potential options. Students with disabilities may also wish to work with the Student Disability Access Center to discuss a range of options to removing barriers in this course, including official accommodations. Please visit their website for information on this process and to apply for services online: sdac.studenthealth.virginia.edu. If you have already been approved for accommodations through SDAC, please send me your accommodation letter and meet with me so we can develop an implementation plan together.

Discrimination and power-based violence

The University of Virginia is dedicated to providing a safe and equitable learning environment for all students. To that end, it is vital that you know two values that I and the University hold as critically important:

If you or someone you know has been affected by power-based personal violence, more information can be found on the UVA Sexual Violence website that describes reporting options and resources available - https://eocr.virginia.edu/

As your professor and as a human, I care about you and your well-being and stand ready to provide support and resources as I can. As a faculty member, I am required by University policy and federal law to report what you tell me to the University’s Title IX Coordinator. The Title IX Coordinator’s job is to ensure that the reporting student receives the resources and support that they need, while also reviewing the information presented to determine whether further action is necessary to ensure survivor safety and the safety of the University community. If you wish to report something that you have seen, you can do so at the Just Report It portal. The worst possible situation would be for you or your friend to remain silent when there are so many here willing and able to help.

Religious accommodations

It is the University’s long-standing policy and practice to reasonably accommodate students so that they do not experience an adverse academic consequence when sincerely held religious beliefs or observances conflict with academic requirements.

Students who wish to request academic accommodation for a religious observance should submit their request in writing directly to me via Email as far in advance as possible. Students who have questions or concerns about academic accommodations for religious observance or religious beliefs may contact the University’s Office for Equal Opportunity and Civil Rights (EOCR) at UVAEOCR@virginia.edu or 434-924-3200.

Section 5.2 - 5.4 are adapted from a SEAS-wide example


I would like to thank Ramakrishnan Durairajan for inspiring the design of this webpage.