Computing & Software Systems 482:
Expert Systems
Winter 2009
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 one of 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 some 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 |
| 1/5 | Welcome; The what and why of expert systems; A case study; Knowledge representation (introduction: inference, soundness and completeness) | Chapters 1 & 2; Handout section 1 | exercise 1 assigned |
| 1/7 | Knowledge representation, cont’d (proofs and inference, modus ponens, resolution, Horn knowledge bases) | Handout section 2 |
|
| 1/12 | Knowledge representation, cont’d (refutation proofs, control strategies, automating proof) | Handout sections 2 & 3 | exercise 1 due; exercise 2 assigned |
| 1/14 | Declarative programming and JESS | Chapter 3 & 4 |
|
| 1/19 | Holiday |
|
|
| 1/21 | JESS and Java; Just the facts | Chapters 5 & 6 | exercise 2 due; exercise 3 assigned |
| 1/26 | Fact lab | Chapter 6 | expert system 1 assigned; sign up for project conferences |
| 1/28 | Special guest lecture | exercise 3 due |
|
| 2/2 | The rule’s the thing | Chapter 7 | expert system 1 due; project conferences this week |
| 2/4 | Rule lab | Chapter 7 | expert system 2 assigned |
| 2/9 | Knowledge Engineering and ES Design | Chapters 9 & 10 | project reports begin; project proposals due |
| 2/11 | Expert Systems design | Chapter 11 | expert system 2 due; expert system 3 assigned |
| 2/16 | Holiday |
|
|
| 2/18 | Design patterns: Diagnosis and backward chaining | Chapter 12 | expert system 3 due |
| 2/23 | Diagnosis lab | Chapter 12 | expert system 4 assigned |
| 2/25 | Midterm |
|
|
| 3/2 | JESS GUI; JavaBeans | Chapters 13 & 14 (§ 14.3) |
|
| 3/4 | JESS inside Java | Chapter 18 | expert system 4 due |
| 3/9 | Introduction to intelligent agents: The Wumpus World | expert system 5 assigned |
|
| 3/11 | Agent lab |
|
|
| 3/16 | Wumpus World Competition | expert system 5 due |
|
| 3/18 | Project presentations |
|
|
| 3/23 | Project reports due |
|
|
I assume that everyone is past the point where I need to carefully check the details of program execution. In other words, I expect you to turn in a fully documented program, including reasonably commented and formatted source code, design documentation sufficient for me to understand how your program works, and execution logs sufficient to convince me that your program does indeed work (that it satisfies the requirements outlined in the assignment document). Please submit your assignment electronically to the CSS 482 drop box.
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 approximately 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.
On January 26, 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 February 9; 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:
Last modified: December 26, 2008