Course Syllabus

This course will introduce the basic ideas and techniques underlying the design of intelligent computer systems. A specific emphasis will be on the statistical and decision-theoretic modeling paradigm, with applications ranging from diagnosis to game-playing to language processing to vision to medicine. We'll be (largely) following the Berkeley AI materials; you can also refer there for more info!

Discussion board on Piazza!

Schedule (subject to minor revisions):

Date Topic Reading
30 Aug Introduction to AI opt: 1.1,2
Agents and Search
1 Sep Agents: Depth and breadth first search 3.1,3.3,3.4 (opt: 3.2)
6 Sep Agents II: A* Search and Heuristics 3.5-3.6
8 Sep Constraint Satisfaction: Search & iterative algorithms 6-6.3 (opt: 4.1)
13 Sep Constraint Satisfaction II: Tree-structured CSPs & more search 6.4-6.5
15 Sep Game Playing: Minimax search 5-5.3 (opt: 5.5-5.6)
20 Sep Utility: Consistency and risk 16-16.3 (opt: 16.4)
Reinforcement Learning
22 Sep Markov Decision Processes: Value iteration SB 3-4
27 Sep Markov Decision Processes II: Policy iteration & TD-learning 17.1-17.3, SB 6.1-6.2
29 Sep Reinforcement learning: Exploration/exploitation, Q-learning SB 6.5
4 Oct Catch-up
6 Oct Reinforcement learning II: Policy gradient TBD
11 Oct Reinforcement learning III: Deep neural networks TBD
13 Oct Inverse Reinforcement Learning: IRL and planning TBD
18 Oct Midterm review
Reasoning Under Uncertainty
20 Oct MIDTERM (In class)
25 Oct Probability Review 13-13.5 (opt: 13.6)
27 Oct Bayesian Networks: Graphical models & conditional independence 14-14.3
1 Nov Bayesian Networks II: Causality TBD
3 Nov Bayesian Networks III: Inference by enumeration, variable elimination 14.4
8 Nov Class canceled
10 Nov Bayesian Networks IV: Markov chain sampling 14.5
15 Nov Decision Diagrams: Value of information, Markov chains 16.5-16.6
17 Nov HMMs: Monitoring and robot localization 15-15.3
22 Nov HMMs II: Particle filtering and resampling 15.5
Special Topics
29 Nov TBD
1 Dec TBD
6 Dec TBD
8 Dec TBD

Unless otherwise specified, readings refer to "RN" Artificial Intelligence: A Modern Approach (Third Edition) by Stuart Russell and Peter Norvig. Prentice Hall, 2009. Be sure you have the Third Edition. It is BLUE, (not GREEN or BURGUNDY): the other editions are not sufficient (sorry!). We will also occasionally have readings from: Reinforcement Learning: An Introduction by Richard S. Sutton and Andrew G. Barto. MIT Press, 1998. This book is available online.

Content: This course is built around several multi-part programming projects, based on the games of Pacman and Battleship. Coursework will consist of two kinds of assignments. Programming projects will be in Python (FAQ). If you're not familiar with Python, don't worry and check out Project 0, which is optional. Programming projects may be done in teams of two or three; only one hand-in is requested per team. Written homeworks will be in the form of mini-assignments given most weeks. These mini-assignments will be very short (one or two exam-style questions) and will be graded in on a good / mediocre / incomplete basis. You should be prepared to do regular work each week to keep up with the material and the assignments.

Prerequisites: Prior programming experience is expected; although we don't expect that you know Python, we do expect you to be able to pick it up rapidly; facility with basic concepts of propositional logic and probability are expected. NOTE: This course has substantial elements of both programming and mathematics, because these elements are central to modern AI. You should be prepared to review basic probability on your own if it is not fresh in your head.

Expectations: I expect you to work hard, but will help you as much as possible to understand the material. However, I do expect you to read the book. I've tried to keep the readings as short as is reasonable. I expect you to do this ahead of time and come to class prepared: homeworks due on before class on day X will include topics we will discuss in class on day X. We will talk about solution in class if people have questions.

Lateness and handin: Homework assignments may not be turned in late. Projects may be turned up up to two days late, but once they're one minute late, you lose 20% of your points (i.e., if you would have gotten 90%, you will instead get 70%). Homeworks are NOT accepted by email. You can view your current grade on the CS grades system.

Grading and solutions: We will post solutions to homeworks and projects quickly after the due dates. We will also email you your scores once grading has been completed. If you handed something in and do not get a score for an assignment, you have a one week moratorium on complaints.

Participation grade: You can contribute to your participation in several ways. You can actively participate in class discussions and asking questions in class. I realize some people do not like asking questions or participating, and while I can empathize with this, it is a skill you should learn. You may also get participation points by using the Q/A system actively, either asking questions or providing answers. Finally, if you have questions that you'd like answered during class, but don't want to post them or ask them yourself, just write the question down on a scrap of paper and hand it to me before class. If you put your name on it, then that's counts too.

Overall grade: Your overall grade is computed as (sum of homework scores - minimum homework score) * 1.5 + (sum of project scores) * 7 + (midterm score) * 18 + (final score) * 25 + (participation score) * 4. This is then mapped to a letter grade as follows: >=90 (A), >=80 (B), >=70 (C), >=60 (D). For your category, if the ones digit is <3, you get a -, and if it's 7 or above you get a +. For instance, a 93 would be an A- and an 86 would be a B. After that, I'll figure in any extra credit and perhaps push some people up over boundaries if it's really close.

Add/drop deadlines: University policy:; If you're going to drop, please please please do it now! I can't do anything about waitlist; if you must, complain to management :).

Undergraduate policies: here.

Policy on ethics in class: The open exchange of ideas, the freedom of thought and expression, and respectful scientific debate are central to the aims and goals of a this course. These require a community and an environment that recognizes the inherent worth of every person and group, that fosters dignity, understanding, and mutual respect, and that embraces diversity. Harassment and hostile behavior are unwelcome in any part of this course. This includes: speech or behavior that intimidates, creates discomfort, or interferes with a person’s participation or opportunity for participation in the class. We aim for this course to be an environment where harassment in any form does not happen, including but not limited to: harassment based on race, gender, religion, age, color, national origin, ancestry, disability, sexual orientation, or gender identity. Harassment includes degrading verbal comments, deliberate intimidation, stalking, harassing photography or recording, inappropriate physical contact, and unwelcome sexual attention. Please contact an instructor or CS staff member if you have questions or if you feel you are the victim of harassment (or otherwise witness harassment of others).

Academic Integrity Policy: Any assignment or exam that is handed in must be your own work (unless otherwise stated). However, talking with one another to understand the material better is strongly encouraged. Recognizing the distinction between cheating and cooperation is very important. If you copy someone else's solution, you are cheating. If you let someone else copy your solution, you are cheating (this includes posting solutions online in a public place). If someone dictates a solution to you, you are cheating. Everything you hand in must be in your own words, and based on your own understanding of the solution. If someone helps you understand the problem during a high-level discussion, you are not cheating. We strongly encourage students to help one another understand the material presented in class, in the book, and general issues relevant to the assignments. When taking an exam, you must work independently. Any collaboration during an exam will be considered cheating. Any student who is caught cheating will be given an F in the course and referred to the University Office of Student Conduct. Please don't take that chance - if you're having trouble understanding the material, please let us know and we will be more than happy to help.

ADA/DSS Policy: Any student eligible for and requesting reasonable academic accommodations due to a disability is requested to provide, to the instructor in office hours, a letter of accommodation from the Office of Disability Support Services (DSS) within the first two weeks of the semester. You may reach them at 301-314-7682 or by visiting Susquehanna Hall on the 4th Floor. The CS department does not consider requests for retroactive accommodation to be reasonable. In the same vein, we do not consider it reasonable to ask an instructor to create an alternate assignment of substance. The spirit of our accommodation is to help DSS-advised students find creative ways to meet the high standards we set for all our students.

Absences: Any student who needs to be excused for an absence from a single lecture, recitation, or lab due to a medically necessitated absence shall: a) Make a reasonable attempt to inform the instructor of their illness prior to the class. b) Upon returning to the class, present their instructor with a self-signed note attesting to the date of their illness. Each note must contain an acknowledgment by the student that the information provided is true and correct. Providing false information to University officials is prohibited under Part 9(i) of the Code of Student Conduct (V-1.00(B) University of Maryland Code of Student Conduct) and may result in disciplinary action. The self-documentation may not be used for the Major Scheduled Grading Events you define in your syllabus (e.g., midterm exams, project presentations, etc.) and it may only be used for only 1 class meeting (or more, if you choose) during the semester. Any student who needs to be excused for a prolonged absence (2 or more consecutive class meetings), or for a Major Scheduled Grading Event, must provide written documentation of the illness from the Health Center or from an outside health care provider. This documentation must verify dates of treatment and indicate the timeframe that the student was unable to meet academic responsibilities. In addition, it must contain the name and phone number of the medical service provider to be used if verification is needed. No diagnostic information will ever be requested.

Religious observances: We accommodate students of all faiths on an individual basis. Please provide a list of all holidays you observe during the semester by the end of the first week of classes.

Course Summary:

Date Details Due