Syllabus for CS1573
AI Application and Development

Last edited  2/14/05

Pre-requisites

Pedagogical objectives

Facts

Assessment policies

Your course grade will be based on class participation (25%),  three programming projects (15% each), and 3 written exams (10% each).  

Group work:  The programming projects are designed to be feasible for a single person to accomplish.  However, they can easily be extended, which makes them much more interesting.  If you would like to work in a group of 2 or 3 people, then please email me within 2 days of receiving the assignment a proposal for how you will extend the project to make it suitably challenging and interesting for your group.  I will probably offer you a counterproposal, and we will negotiate a suitable project.

Late policy: Programming projects must be submitted at the beginning of class; late projects will not be graded and will receive a zero.  If you cannot turn attend class that day (e.g., you are sick, visiting graduate schools, attending a funeral), then submit your solution before class electronically.  If you are unable to attend the exam due to medical, familial or other emergencies, please contact the instructor on or before the day of the exam in order to arrange a private exam session.

Oral exams:  In order to determine how well you understand the programming project that you have submitted, the TA and the instructor will conduct oral exams shortly after the projects are submitted.  During the oral exam, we will ask you questions about how the code works, why you chose the design you did, what alternatives you considered, etc.  Your score on the programming project will depend in part on your answers.  Oral exams will be conducted during the question period of class in a room near the classroom.  If you did your project as part of a group, the whole group will be given an oral exam at the same time, and each member will be asked to described what part of the project they did.  If you did your project individually, you will be given an oral exam individually.

Plagarism policy:  You should do your own programming for the programming projects.  Except as noted below, copying code written by others, including code you've found on the web, is considered plagarism.  Hiring others to do your programming is considered plagarism.  If I decide that you have plagarized your programming assignment, I will give you a zero on it.  If you plagarize more than once, then I will consider formal disciplinary action, including failure of the course.  Exceptions:  You definitely should include code from the textbooks' Python code repository.  As you will see, many of the functions you will want to use have been stubbed out--you will have to provide their implementation, but key data structures have been defined for you.  If you wish, you may include code from the Python package index or the Vaults of Parnassus.  As of 1/3/04, there does not appear to be anything useful in either the Python package index or the Vaults of Parnassus.  However, if you find something useful (modules are added daily), you may use it if
Class participation:  During class, I will ask questions about the material you have been reading.  For each question, I will randomly select a student to answer it.  If you are present and make a strong effort to answer the questions, displaying knowledge from your readings, then you will receive a "1" for that question.  If you are absent, do not try to answer the question or seem not to have read the assigned material, then you will get a "0" for that question.   By the end of the semester, you will probably have been asked about 50 questions.  Your class participation score is the proportion of 1s.

Schedule

The "pre-class" column describes tasks you should complete before class.  When numbers appear, they refer to a range of pages in the textbook that you should read and master before class.  TBD means "to be determined."  The first section of the course (5-Jan to 7-Feb) covers knowledge representation and some specialized search algorithms.  The second section (9-Feb to 16-Mar) covers natural language processing.  The third section (21-Mar to 20-Apr) covers planning.  The final exam (also known as Exam 3) will be scheduled later and will cover only the section of the course on planning.

Date Pre-class Class  Slides
5-Jan
Review first order logic S1
10-Jan 272-310 Review theorem proving S2
12-Jan 320-333 Ontologies, situation calculus S3
19-Jan 334-344 Event calculus, beliefs S4
24-Jan 344-354 Semantic nets, description logics S5
26-Jan 110-119 Local search algorithms S6
31-Jan 137-151 Constraint satisfaction problems S7
2-Feb Study
Exam 1 review S8
7-Feb Study Exam 1
9-Feb 790-806
Proj. 1 due
Grammars, parsing S9
14-Feb 806-818 Definite clause grammars S10
16-Feb 818-823 Disambiguation, Discourse S11
21-Feb 834-844
Language modeling, Info retrieval
S12
23-Feb 845-850
Handout
Text classification, Info extraction
S13
28-Feb Handout
Dialogue management
S14
2-Mar Handout
Atlas, a real dialogue system
S15
14-Mar Proj. 2 due Exam 2 review S18
16-Mar Study Exam 2
21-Mar 375-387 Planning operators, state-space search S19
23-Mar 387-395 Partial order planning S20
28-Mar 395-409 Planning graphs, propositional planning S21
30-Mar Cancelled
4-Apr 417-430 Scheduling, Hierarchical planning S22
6-Apr 430-440 Hierarchical planning, Conditional planning S23
11-Apr 441-449 Execution monitoring, Continuous planning S24
13-Apr 449-454 Multi-agent planning, Educational applications S25
18-Apr TBD Intelligent tutoring systems S26
20-Apr Proj. 3 due Exam 3 review
S27

 Projects

The three programming projects are briefly described below.  When all three are completed, you should have build a small fragment of Terry Winograd's famous SHRDLU system.  All three projects use the same blocks world task domain.

  1. Knowledge representation and reasoning  Given a query expressed as a literal or conjunction of literals, return a list of all possible answers, where each answer is expressed as bindings for the variables in the query.   Use a Horn clause representation of knowledge.  Complete assignment is here.
  2. Natural language understanding.  Given a string such as "Is the big red block on top of the green block?", translate it into a first-order logic query and submit it to the question answerer developed during project 1.   Use a definite clause grammar.  Complete assignement is here.
  3. Planning.  Given a command such as "Put the small green block on a white block," plan a sequence of primitive actions for a simulated one-armed robot, execute the actions and display the new state of the blocks world.  Use a partial order planner.  Complete assignment is here.