General Information

Spring 2018 — CRN 12983 — TR 3:30-4:45 in Randolph 220 WLH 320

Instructor: Chris Wyatt
Office: 439 Whittemore Hall
Phone: 231-6658
Email: clwyatt@vt.edu
Office Hours: Fridays 2-4 pm. Other times by appointment.
Class Links: Canvas, where assignments are collected, grades are posted, and quizes taken.
Piazza, where online communication occurs.

Course Objectives

Artificial intelligence is a diverse field that means different things to different people. This particular course might also be called advanced algorithms, as the focus is on algorithms that originated in AI research but have found numerous applications in computer science and engineering more broadly.

The official course description and learning objectives are outdated and we will not be following it that closely. My goal is to introduce you to several big ideas from AI that will make you better engineers and enhance your problem solving skills. The broad areas we will cover are problem solving using state-space search, using knowledge and logic for automated reasoning, dealing with uncertainty, and how to make systems learn.

Schedule (tentative)

This is the schedule for the semester, updated continually. It is important that you keep up with readings and problem sets.

Meeting Topic Notes
1 (Tu 1/16) Introduction Reading: Syllabus and AIAMA Chapter 1 and 2
Problem Set 0 Released (ps0.zip)
2 (Th 1/18) Prerequisites and Python Reading: Python Tutorial
3 (Tu 1/23) Tree and Graph Search Reading: AIAMA 3.1-3.4
Problem Set 1 Released (ps1.zip)(Solutions)
4 (Th 1/25) Heuristic Search Reading: AIAMA 3.5 and 3.6
5 (Tu 1/30) Games and Min-Max Reading: AIAMA 5.1-5.2
6 (Th 2/1) Alpha-Beta Pruning Reading: AIAMA 5.3-5.4
7 (Tu 2/6) Constraint Satisfaction Reading: AIAMA 6.1-6.2
8 (Th 2/8) Search for CSP Reading: AIAMA 6.3-6.4
9 (Tu 2/13) Propositional Logic Reading: AIAMA 7.1-7.4
10 (Th 2/15) Theorem Proving Reading: AIAMA 7.5
Problem Set 2 Released (ps2.zip)(Solutions)
11 (Tu 2/20) Quiz 1
12 (Th 2/22) Predicate Calculus (First-Order Logic) Reading: AIAMA 8.1-8.3
13 (Tu 2/27) Unification Reading: AIAMA 9.1-9.2
14 (Th 3/1) Forward/Backward Chaining Reading: AIAMA 9.3-9.4
15 (Tu 3/13) Planning Reading: AIAMA 10.1-10.3
16 (Th 3/15) Uncertainty and Probability Reading: AIAMA 13.1-13.4
Problem Set 3 Released (Solutions)
17 (Tu 3/20) Bayesian Reasoning Reading: AIAMA 13.5
18 (Th 3/22) Quiz 2
19 (Tu 3/27) Bayesian Networks Reading: AIAMA 14.1-14.4.1
20 (Th 3/29) Approximate Inference Reading: AIAMA 14.5
21 (Tu 4/3) Decisions and Utility Reading:AIAMA 16.1-16.3
22 (Th 4/5) Introduction to Learning and Supervised Learning Reading: AIAMA 18.1-18.3
23 (Tu 4/10) Learning Theory Reading: AIAMA 18.4-18.5
Problem Set 4 Released (Solutions)
24 (Th 4/12) Quiz 3
25 (Tu 4/17) Linear Models Reading: AIAMA 18.6
26 (Th 4/19) Learning and Logic Reading: AIAMA 19.1-19.4
27 (Tu 4/24) Statistical Learning Reading:AIAMA 20.1-20.2
28 (Th 4/26) Applications Reading: Skim AIAMA Chapters 22-25
29 (Tu 5/1) Quiz 4

Important Dates

Prerequisites

ECE 2574 or equivalent is needed to ensure a modest level of programming ability, familiarity with data structures, and understanding of algorithmic complexity. The algorithms in this course can get complex, so you need to have a good programming background so you can focus on core concepts and not struggle with implementation details of code peripheral to the problems. The probability course (STAT 4714) is needed for the material on uncertainty and learning.

The course is four credit hours and is a design technical elective, so expect substantial programming assignments.

Text and Resources

The following is strongly recommended, but not required: (AIAMA) Stuart J. Russell, Peter Norvig, Artificial Intelligence: A Modern Approach, Prentice Hall; 3rd edition

Additional Resources

Software

We will be using Python (specifically CPython version 2.7.x) for program implementations. It can be downloaded for free from python.org or installed via one of the alternate methods below. The book Dive into Python is a good introduction to python for experienced programmers (which you should be). If you need a gentler introduction see Think Python. I recommend starting with the tutorial and reading about the python data model if you have no python experience.

Development Environments

You can use your favorite editor and the python REPL (or upgrade to ipython) or one of the python IDEs, e.g.

If you want a commercial, everything and the kitchen sink, python version you can get a free academic license to Enthought Canopy or use Anaconda from Continuum Analytics. Both are free but are easier to install on Windows and Mac.

Grading

The grades will be weighted as follows:

Warmups: 5% (Extra Credit)
Problem Sets: 68% (15% each + PS0)
Quizzes: 32% (8% each)

The course is divided into four parts with a problem set and quiz for each one. Each problem set is itself divided into two parts. The first part consists of conventional exercises that give you practice with the concepts and algorithms. These have relatively simple, unambiguous answers. They also give you an idea of the kind of problems that are on the quizzes. The second part are engineering-design problems. These are more open-ended problems in which you apply concepts and algorithms to solve a less-specified problem, requiring programming, testing, and exposition to convince someone you have solved the problem. You can think of them as mini-projects. The engineering design problems are weighted more heavily than the exercises.

Assignments include completion of weekly "warm-up" questions prior to class time. The purpose of these assignments is to encourage you to do the reading and make the most efficient use of class time. Your responses to the warm-ups indicate to the me what portion of the material is already clear to you based on the assigned reading and what aspects need further development before we meet. Your participation in the warm-up exercises is important to the course. Warm-ups contribute 5 % of extra credit toward your grade.

Most assignments will require programming. Problem Sets must be turned in via Canvas by the due date and time. No late problem sets will be accepted, with the following exception: you get three free late days (24 hour periods) during the semester to accommodate emergencies. To use one or more of these, just submit the assignment via Canvas as normal.

If you feel that an error has been made in grading any assignment, you must present a written appeal (hardcopy or as an email) to the instructor within two weeks after the assignment is returned to you. Verbal appeals are not considered and grades will not be changed after the two-week period. Your appeal should be specific.

Honor Code Policy

The Undergraduate Honor Code pledge that each member of the university community agrees to abide by states:

“As a Hokie, I will conduct myself with honor and integrity at all times. I will not lie, cheat, or steal, nor will I accept the actions of those who do.”

Students enrolled in this course are responsible for abiding by the Honor Code. A student who has doubts about how the Honor Code applies to any assignment is responsible for obtaining specific guidance from the course instructor before submitting the assignment for evaluation. Ignorance of the rules does not exclude any member of the University community from the requirements and expectations of the Honor Code. For additional information about the Honor Code, please visit: www.honorsystem.vt.edu.

Adherence to Virginia Tech's honor code is expected in all phases of this course. All graded work is expected to be the original work of the individual student. In working on the assignments, discussion and cooperative learning is encouraged. However, solutions are to be the work of the individual student. In all assignments you may discuss general concepts, such as algorithms, language syntax, Internet resources, or class and text topics, with others. However, copying of specific assignment program-code or solutions in the current or from previous semesters is an honor code violation. Any violations of the honor code will automatically be forwarded to the Office of the Honor System with the recommendation of an F* sanction as your final grade in the course. I do use a code comparison system.

Additional Course Policies

Course Website: Students are expected to access class resources via the course website, on Canvas, and Piazza (piazza.com). This is the primary way assignments, examples, notes, and other information will be distributed. You should check the sites daily for updates or configure appropriate notifications.

Class Attendance and Classroom Conduct: Students are expected to attend class and contribute to the discussion. Distractions (e.g. arriving to class late or leaving early) are disrespectful to the entire class and will not be tolerated.

Email Communication: If you want to send email the instructor use clwyatt@vt.edu and use your VT email account as the sender to ensure it does not get filtered.

University Closings: In case of inclement weather you may call 231-6668 to find out if any University closings are scheduled. If the University is closed during the regular course hours any assignment due on that day will be due the next class meeting (including assignments turned in via Canvas). If the closing occurs on a quiz day, the quiz will be given at the next class meeting.

Special Accommodations

Reasonable accommodations are available for students who have documentation of a disability from a qualified professional. Students should work through Services for Students with Disabilities (SSD) in Lavery Hall. Any student with accommodations through the SSD Office should contact me during the first two weeks of the semester.

If participation in some part of this class conflicts with your observation of specific religious holidays during the semester, please contact me during the first two weeks of class to make alternative arrangements.

If you miss class due to illness, especially in the case of an exam or some deadline, see a professional in Schiffert Health Center. If deemed appropriate, documentation of your illness will be sent to the Dean's Office for distribution to me. If you experience a personal or family emergency that necessitates missing class, contact the Dean of Students at 231-3787 or see them in 152 Henderson Hall.