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.
Campione, Mary, Kathy Walrath, and Alison Huml, The Java Tutorial, Third Edition, Addison Wesley, Boston, 2001.
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.
| 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, contd |
|
|
| 10/10 | Inference (soundness, completeness, modus ponens, Horn knowledge bases) | Handout section 2 | exercise 2 due; exercise 3 assigned |
| 10/12 | Inference, contd (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 rules 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 |
|
|
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 4550 hours/person working on the project.
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 78 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 35 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:
Last modified: October 2, 2006