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.