Computing & Software Systems 482:
Expert Systems
Fall 2006

CSS 482 will introduce you to a completely different way of programming, in which you specify rules of behavior, rather than algorithms. This is an especially powerful approach for problems that change often or where solutions involve application of human knowledge, rather than intricate calculations. Since their commercial introduction in the early 1980s, expert systems have undergone tremendous growth, representing the most successful application of artificial intelligence technology. Today, they are used in business, science, engineering, manufacturing, etc. Example applications include: business rules, customer support, computer configuration, fault diagnosis, computer-aided instruction, data interpretation, planning and prediction, and process control.

This course will have an additional focus on building expert systems applications as part of larger systems, including web-based and enterprise systems. Besides rule-based programming, expert systems operation, and knowledge engineering, topics will include aspects of Java that are useful for developing these systems, such as JavaBeans, serialization, applets, servlets, J2EE, JavaServer Pages, Tomcat, web services, and XML.

Prerequisites: CSS 343. No prior Java experience is required, just a desire to learn about it. We will mostly be modifying example Java code; the bulk of the programming will be in JESS.

Lectures
Tuesdays and Thursdays, 5:45–7:50PM, room UW1-030.
Instructor
Michael Stiber stiber@u.washington.edu, room UW1-341, phone 352-5280, office hours Thursdays 11AM–12PM.
Course Web
http://courses.washington.edu/css482/.
Required Textbook
Friedman-Hill, Ernest, JESS in Action, Manning, Greenwich, CT, 2003.
Suggested References
Arnold, Ken, James Gosling, and David Holmes, The Java Programming Language, Third Edition, Addison Wesley, Boston, 2000.

Campione, Mary, Kathy Walrath, and Alison Huml, The Java Tutorial, Third Edition, Addison Wesley, Boston, 2001.

Grading
30% homework + 30% midterm + 30% project + 10% participation (including weekly project reports).
Assignments
Assignments will be due at specific dates and times. I will not accept any lateness in this class — if your assignment is submitted late, it will not be graded, and you will receive a zero for that assignment. Except for special circumstances, such as medical and other emergencies, no exceptions will be made to this policy. You are more than welcome to submit work before the due date.

Your name, student number, and email address should be written on your hard copy submissions. Please strive to either write/draw clearly or use a computer and high-quality printer to prepare your documentation; I cannot give you credit for what I cannot read.

Special needs
If you believe that you have a disability and would like academic accommodations, please contact Disability Support Services at (425) 352-5307 or at rlundborg@uwb.edu. In most cases, you will need to provide documentation of your disability as part of the review process.
Collaboration
You are expected to do your work on your own. If you get stuck, you may discuss the problem with other students, provided that you don’t copy from them. Assignments must be written up independently. You may always discuss any problem with the instructor. You are expected to subscribe to the highest standards of honesty. Failure to do this constitutes plagiarism. Plagiarism includes copying assignments in part or in total, debugging computer programs for others, verbal dissemination of algorithms and results, or using solutions from other students, solution sets, other textbooks, etc. without crediting these sources by name. Any student guilty of plagiarism will be subject to disciplinary action.
Class attendance
I strongly encourage you to come to class (and, in fact, a portion of your grade will depend on attendance and active participation, as well as weekly project reports). You will be held responsible for all material covered in class, regardless of its presence (or lack thereof) in the textbook.
Problems
If you have problems with anything in the course, please come and see me during office hours, or send email. I want you to succeed in this course. If you have trouble with the assignments, see me before they are due.

Tentative Course Schedule





Date

Topics

Reading

Assignment





9/28

Welcome; The what and why of expert systems; A case study

Chapters 1 & 2

exercise 1 assigned





10/3

Knowledge representation (predicate logic, first order logic, models, entailment)

Handout section 1

exercise 1 due; exercise 2 assigned

10/5

Knowledge representation, cont’d





10/10

Inference (soundness, completeness, modus ponens, Horn knowledge bases)

Handout section 2

exercise 2 due; exercise 3 assigned

10/12

Inference, cont’d (resolution, normal form, refutation proofs, etc.)

Handout sections 3 & 4





10/17

Declarative programming and JESS

Chapter 3 & 4

exercise 3 due

10/19

JESS and Java; Just the facts

Chapters 5 & 6

expert system 1 assigned; sign up for project conferences





10/24

Fact lab

Chapter 6

project conferences this week

10/26

The rule’s the thing

Chapter 7





10/31

Rule lab

Chapter 7

expert system 1 due; expert system 2 assigned; weekly project reports begin; project proposals due

11/2

Knowledge Engineering and ES Design

Chapters 9 & 10





11/7

Midterm

11/9

Expert Systems implementation

Chapter 11





11/14

Diagnosis and backward chaining

Chapter 12

expert system 2 due; expert system 3 assigned

11/16

Diagnosis lab

Chapter 12





11/21

JESS GUI; JavaBeans

Chapters 13 & 14 (§ 14.3)

11/23

Happy Thanksgiving





11/28

JESS inside Java

Chapter 18

11/30

Java lab

Chapter 18

expert system 3 due; expert system 4 assigned





12/5

Introduction to intelligent agents: The Wumpus World

12/7

Agent lab





12/12

Wumpus World Competition

expert system 4 due

12/14

Project presentations





Projects and Project Proposals

The purpose of this project is to design and implement an expert system that performs some real and interesting function (small though it may be). For logistical reasons, I desire to limit this class to five projects, therefore, depending on enrollment, you will need to form teams of three or four. Your project should be accompanied by detailed design documentation in the final report.

The project is worth 30% of your grade, and the amount of time you spend should reflect that. I would expect you to spend about 45–50 hours/person working on the project.

Proposals

On October 19, I will make appointments with each team for the following week to hear your project ideas and give you feedback regarding the scope and workload. You will have only 15 minutes, so come prepared to present your ideas and ask specific questions. This time is not meant to fish around for ideas from me: you should already have your own by then.

Project proposals are due on October 31; each team should hand in only one copy. You will receive a grade for your proposal, which will count towards your grade for the course as one-sixth of your project grade (5% of your overall grade). So, a team should have spent on the order of 7–8 hours/person on the project design. All proposals and reports must be typed or typeset. It is acceptable to submit hand-drawn figures, but I encourage you to use a drawing program.

The proposal itself should be 3–5 pages of 10-point text. It is your responsibility to justify in this proposal that your project is worth doing and that you should receive a good grade in this course if you do it well. It should be specific enough about what you will do and how you will do it that it could be used as a contractual agreement with me regarding your project content. Components of your proposal should include (but are not limited to) any of the following that are relevant:

Title
The title should be short and descriptive.
Summary
A brief description of what the project will do, suitable for someone unfamiliar with the application area.
Background
An introduction to the application area, including how your project fits into the existing state of the art.
Techniques
Course concepts and algorithms covered by the project.
Design
A high-level design (at the level of a context diagram and top-level system block diagram).
Fallbacks
Possible alternative approaches (if something goes wrong).
References
By proposal time, you should have at least three quality references. Each reference should be accompanied by an analysis of its source, including who publishes it, for what audience is it published, and the impact that papers published in that venue have on the field. A reference librarian should be able to help you with this (I will try to have someone come to class to talk about this). If you have identified a human expert for your project, then you should summarize their qualifications. If you are working on a research paper, then you should have at least five quality references, along with annotations summarizing the topics that each work covers.

Last modified: October 2, 2006