CSE 731: Capstone design course on Knowledge-Based Systems

Students interested in Artificial Intelligence (AI) choose this course as their capstone design course. The purpose of CSE 731 is to learn the underlying concepts of knowledge-based systems and then to apply these principles by designing a knowledge-based system for a particular client using the CLIPS expert-system architecture. Thus, students gain experience both in designing to the specifications of a client as well as learning about a standard architecture for knowledge-based system design. The students learn to incorporate real-world knowledge into the systems they design. Through the lectures the students learn about real-world constraints on reasoning, including different representations of space, time, and uncertainty in the reasoning process, although they are not necessarily required to integrate these into the design project.

The course provides an appropriate culminating experience for students studying artificial intelligence: it integrates the coursework in CSE 560, CSE 630, and CSE 601, the prerequisites to the course. In CSE 560, students are provided with a first serious experience in software design and implementation, teamwork, and appropriate documentation; CSE 630 introduces students to some of the basic concepts of artificial intelligence, such as problem formation, learning, and intelligent-agent design principles. CSE 601 introduces students to the ethical issues in computing and provides practice in developing communication skills. All of this knowledge is called upon in 731; in the first weeks of the course, the concepts from 560 and 630 are reviewed, showing their relationship to expert system design. New material in 731 includes participatory design and communication among the stake holders (domain expert, knowledge engineer, programmers, users). One of the main topics is protocols for understanding and extracting knowledge used by a domain expert. The course focuses on a design project: the selection criteria for this project may include a) whether the problem is currently solved by a limited number of experts, and b) whether the problem is not easily solved using mathematical techniques. The instructor works with the student teams to ensure that scope of the problem is such that it can be completed in 5-6 weeks. Project selection is student-driven through collective decision making -- the group lists a number of possible problems for their project, evaluate the candidates and possibly design solutions, and then select one for further development. Examples of recent projects include an academic councilor for Engineering students to help users decide the engineering department for their study based on aptitude and interest, a mortgage adviser that helps advise on mortgages based on the financial background of users, and a medical diagnostic tool that identifies the probable diseases for a given set of symptoms.

Students are divided into teams of 4 people for each project, with one external domain expert assigned to each team. The four students each represent one of the four stakeholders in the project: user community, programmer, knowledge engineer, and documentation expert. Presentation of the project is made by the entire group, with time divided between group members to ensure that all participants develop presentation skills; a live demo of the resulting system is expected as part of the presentation. A project report is also required, in which team members document the development process of the project (including time/resource/personnel allocation), the assumptions made, the analysis techniques for acquiring domain knowledge, and evaluation of the results of the system.