DCS 440 -- Undergraduate Introduction to AI

Fall 2000


Main Page Contents
Schedule
Overview
Requirements
Updates
Syllabus
Links

Course People
Matthew Stone

Course Materials
Project Suggestions
Prolog Starter
Recitation 2 Notes
Homework Two answers
Last year's midterm
Same with answers
Directions example
Project Update
HW 3 Solution
Explainer Example
Last year's second midterm
Same with answers

Assignments
HW1: Deliberation
HW2: Prolog Warmup
PR1: Project Domain
HW3: Search and Data Structures
PR2: Project Knowledge Base

PR3: Final Project Handin

Projects
Magat Aguirre and Peter Talley: FAKE
Richard Arter and Pedro Rodriguez: WANG
Nikita Bernstein and Tatyana Yankova: DE LA
Carl Caamano and Joey Wu: CHAOS
J. Patrick Cabanilla: MILO
Keven Cecelski: DOPE
Alex Elliott and Michael Schofield: Nibbzilla
James Ewen: SPAM
Jesse Fischer and Paul Tepper: ARCHI
John Fulton: AMI
Dan Gavin: BMX
David Huang: BOAcon
Robert Kohr: ITCD
Kiro Ivanovski: BAR
Shepherd McIlroy: CHAI
Karen Mulder: ASK ME
Gurmukh Sahota: COP
Abhishek Sanghavi: REM
Michael Shoykhet: SAM
Celeste Soya: CaPs
Stephen Superville: KAC
Kim Wang: LIST

Schedule

Class MW8 (7:40-9) ARC 204
Recitation M (9-10) ARC 204


Overview

Artificial Intelligence is the branch of Computer Science dealing with the construction of computational artifacts to carry out tasks in the real world, beyond the hermetic universe of numbers, instructions and machine data that flourishes inside computers. Nowadays, the real world involves not just ourselves and our physical surroundings, but the resources of text, pictures and other media that we create for one another and store and access electronically.

The real-world artifacts of Artificial Intelligence researchers sometimes tackle extravagant tasks, like flying spacecraft, beating the world chess champion, or performing some key human-like interactions with the world (as a specially-built full-scale humanoid robot).

It's easy to see why such spectacular behavior might qualify something as intelligent. But plenty of real-world tasks seem mundane, even mindless. Think of getting a wheeled platform to roll across a room without hitting anything, looking at a book and telling who the author is, or printing somebody's latest research paper from the web. What elevates all real-world tasks, including these, to the attention of the loftily-named discipline of Artificial Intelligence? This, more than anything else, is the question I hope you understand the answer to by the end of this class.

The real world is fantastically complicated and unpredictable. It is fantastically difficult to carve small and interesting tasks out of the world and solve them in a constrained way, the way you would carve up the problems induced in most computer programs and write separate modules to handle them. A huge range of knowledge plays a role in every real-world task. (Some AI researchers have suggested that real-world problems are so complex and interdependent that any sufficiently interesting problem will effectively involve a solution to all of them. This leads to the gag concept of an AI-complete problem.)

There's no way around it: to act in the real world, you have to be pretty smart. This is something you already know intuitively, from living here and muddling through (or better). The lectures, assignments and project in this course are designed to bring this knowledge to the surface. If nothing else, this should give you a renewed appreciation for yourselves and your environment.

Technically, much of this course will be focused around logic. Logic is an ideal mathematical tool for thinking about computational artifacts in the real world, because logic relates semantics and inference. Semantics formalizes the relationship between sentences, including computer representations, and the real world (or non-real worlds like the real world), where those sentences are true or false. Semantics is a tool you can use for designing and understanding the representations an AI program uses. Inference (or proof theory) formalizes the logical relationships between sentences (including computer representations) and one another. The starting result about inference is that you can construct syntactic transformations that allow you to derive true sentences from other true sentences.


Requirements

This course will offer you practice in three kinds of skills:

  • Design of intelligent programs: taking potentially open-ended real-world problems and restricting them and abstracting them until you get a problem that can be solved automatically and usefully.
  • Technical writing and presentation: describing problems, solutions to them, and algorithms for deriving the solutions, in written and spoken English.
  • Implementing intelligent programs using logic programming.
This practice takes the form of assignments!

We will have a couple written homework assignments, consisting of exercises where you think through tasks in the real world and describe your conclusions about them.

We will have a couple short programming assignments, consisting of exercises that offer simple experience with some of the important ideas of Prolog programming.

The major work for the class will be a semester-long project in which you explore representation and reasoning in a real-world domain that you are familiar with (or are willing to become familiar with). You are welcome to work in small groups on the project (up to three people); you will probably have more fun if you can brainstorm and check one another's work. It takes a systematic experience with a project to allow you to sink your teeth into the meaty problems of AI, and to appreciate the wealth of knowledge, the flexible and varied use of information, and the sophisticated search that underlie successful AI systems. In other words, you have to work on an AI program for a while before it starts to be able to do anything fun!

The project will be completed in four installments over the semester, with feedback along the way. The installments are designed to keep you on track, so you make steady progress on the project throughout the semester; they are weighted accordingly towards your final grade. Don't expect to do the project over the last week of the semester - you won't have time and you'll already be marked low for the project as a whole from having slacked off on the first steps.

For the purposes of grading, the homework will count 15%, the two tests will count 20% each, and the project will count 45%.


Updates

Here is a list of announcements and developments.

  • Dec 4 There will be no class or recitation meeting on Monday Dec 11. All project presentations will take place on Wednesday Dec 13.
  • Nov 13 I have posted a sample midterm for discussion on Wednesday Nov 15. (Note nothing else is due Nov 15, either.) The planning question on the midterm (about filling pitchers and glasses) involves material we haven't done this year, so don't worry about it.
  • Oct 19 There is now a list of announcements and developments on the web site :)
  • Oct 19 Somebody left an umbrella in class on Wednesday, Oct 18. I will bring this umbrella to class on Monday, Oct 23. Speak up if it's yours.
  • Oct 19 On homework 3. For homeworks handed in until class time Oct 23, I will only deduct a grade step (from A to A-, for example). In addition, for those who think they have already handed in something very close - or for those who think they won't be able to get much more working even with the extra time - you are welcome to hand in both on time and late and I will count the better try. I'll try to get comments back on what you've handed in already so you can get personalized feedback about where you're stuck and how much more you have to do.
  • Oct 19 Project Part 2 is hereby delayed in due date until Nov 1. Don't wait to start it! Start early so that if you get stuck a couple of times you get a chance to stop, ask a question, understand the answer, and get back to work.

Syllabus

Part One: Prolog and AI
6 September AI problems and architectures.
(CI 1)
11, 13 September Representation and logic.
Recitation: Prolog intro.
Homework: Describing deliberation.
(CI 2)
18, 20 September Knowledge bases.
Recitation: Delimiting domains.
Homework: Prolog warmup.
(CI 3.1-3.6)
25, 27 September Software engineering in AI.
Recitation: Prolog warmup.
Homework: Project domain (round one).
(CI 5.1-5.4)
2 October Extensions of logic programming.
Recitation: Project domains.
(CI 7)
4 October Midterm 1.
Through 27 September.
I have provided last year's first midterm without and with the correct answers on line.
Note that this year's midterm will not be open book and will not cover formal search!

Part Two: Kinds of Reasoning
9, 11 October Search, part 1.
Recitation: Midterm review.
Homework: Project domain again.
(CI 4.1-4.5)
16, 18 October Time, action and prediction.
Recitation: Project clinic 1.
Homework: Search and data structures in Prolog
(CI 8.1-8.2)
23, 25 October Planning.
Recitation: Search and data structures in prolog
Homework: Search and data structures in Prolog (late)
(CI 8.3)
30 October, 1 November Explanation.
Homework: Project knowledge base.
Recitation: Project clinic 2.
(CI 9)
6, 8 November Search 2
Recitation: Nothing
(CI 4.6-4.7)
12, 15 November Agents and AI modules; midterm review
Recitation: Project clinic
20 November Midterm 2.
Through 15 November.
No recitation.

Part Three: A Whirlwind Tour
27, 29 November Vision and language processing as AI problems.
Recitation: Midterm Review.
4, 6 December Learning and interaction as AI problems.
Recitation: Project panic.
13 December Project Presentations.
Project Reports Due 13 December.
No meeting 11 December.


Links