Correction to PS6: As was brought up in class, capability number 5 is already included in the simple-bot.
Office Hours: Friday from 2-3pm.
Reminder: In-class exam on December 13 starts at 1:30 (not 1:40).
An example exam is here.
Average score: ~79; Median: 85; High: 95; Low of submitted assignments: 60
Most people did pretty well on task 1 and task 2. Points were
typically lost for either not explaining their approach (how does select choose
a 'difficult' goal) or not comparing their results to Bratko's. Task 3 was
more of a mixed bag - people generally tended to get it mostly working, with
a few bugs left. I tried to be generous with the partial credit if I thought
they had the right idea.
(I broke it down as 30 pts for task 1, 40 for task 2, and 30 for task 3)
The quality of the writeups also varied considerably. Some folks
clearly put a lot of time into explaining what they did and clearly presenting
their results. For other people, it was obviously a last-minute afterthought.
A common problem/annoyance was presenting the results of their tests as
many pages of Prolog output, rather than summarizing the data in a table.
Since this assignment is more open-ended than task 4, I put more weight on
their explaining what they did and why, and less on issues like syntax.
Also, there's a few students who have difficulty expressing themselves
in English. I tried to divine their intent where I could, and made notes if
a sentence was just too tough to parse. I didn't typically take off for this
unless it was part of a larger problem, such as a poorly organized explanation
of their heuristics, for example.
REMINDER: For PS4 (and beyond), you must turn in hardcopy of your writeup, code, and testing. You should also email just your code.
Lectures: Mon/Wed, 1:30-3:00, 3427 EECS
Instructor: Edmund H. Durfee
office: 120 ATL
e-mail: email@example.com [asynchronous communication preferred]
fax: (313) 763-1260 [if you must]
office hrs: Right after class, and by appointment.
This course can be used to satisfy the following degree requirements:
· AI kernel requirement for CSE master's students (but it will NOT replace 492 for the purpose of PhD qualification).
Knowledge-based systems (also called just knowledge systems) are sophisticated AI programs that solve complex problems. These programs have found considerable use in industry, and are finding exciting new applications in cyberspace (e.g., as intelligent agents). Knowledge-based systems are particularly suited to these kinds of applications because they help users define and modify knowledge for tasks in a way that users are comfortable with, and then use this knowledge based on complex inference techniques.
The goal of this class is provide students with an understanding of the principles and system-building experience needed to create a knowledge system by introducing the student to programming languages and techniques that promote a knowledge-based, or declarative, approach to software development. Although a rigorous characterization of what this means is elusive (though we will attempt to accomplish this in the course), what it amounts to practically is emphasis on programming constructs that facilitate:
Historically, researchers in the field of Artificial Intelligence have identified these properties as important for development of "intelligent" (whatever that means) programs, and thus have developed languages embodying them. We will explore this "knowledged-based" programming methodology through substantial exercises in three "AI" languages:
Successful students will complete the course with a working knowledge in each of these languages, and more importantly, with a broader perspective on programming itself.
Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp by Norvig (see also here).
2(a). if you don't have a .emacs file, start one now
2(b). put the following in your '.emacs' file:
(setq inferior-lisp-program "cl")
run emacs, (re-run it if you used emacs to make that inclusion)
type ':help' at the prompt for help, in general, allegro responds to things starting with a colon, the listener responds to everything else.