"In-depth treatment of knowledge representation, utilization and acquisition in a programming environment.
Emphasis on the use of domain-specific knowledge to obtain expert performance in programs."
Prerequisites:
CSC 480 (Artificial Intelligence)
Students should be familiar with programming at a level
consistent with CSC 345 and be able to work with
elementary logic in propositional and predicate
calculus environments.
Goals and Objectives
The goal of the course is to understand important problems, challenges,
concepts and techniques from the field of Knowledge-Based Systems.
In order to achieve this, students learn how to analyse, design, and
program programs and systems of varying complexities.
The core aspect of these systems is their ability to deal with
knowledge in various forms. This includes the acquisition of
knowledge from human experts, other knowledge repositories, or
via learning techniques from raw data such as delivered
by sensors. Knowledge also has to be stored in an internal
format that is suitable for computer-based storage and processing,
while still being accessible to human inspection.
Then knowledge needs to be processed, where one important activity
is the generation of new knowledge from existing pieces.
Based on the new and existing knowledge, decisions must be
made for the system, or agents involved with or served by it,
to perform some actions. For many systems, an explanation or
verification of their suggestions in a format accessible to
humans is important.
Textbooks
The following textbooks will be used in this course.
There is a column in the
course schedule which indicates the chapters in the books that
correspond to a topic discussed in class.
Students are expected to read the respective chapters before
the topic is covered in class.
A. Gonzalez and D. Dankel,
``The Engineering of Knowledge-Based Systems''
Second Edition (Preprint), Prentice Hall, 2004.
[Preprints of the new edition are available from the El Corral bookstore.]
For further reading, here are some more textbook suggestions:
Ernest Friedman-Hill,
"Jess in Action"
Manning Publications, 2003.
[This is the reference book for Jess, a CLIPS-compatible,
rule-based programming environment in Java.]
A. Gonzalez and D. Dankel,
``The Engineering of Knowledge-Based Systems''
Prentice Hall, 1994.
[The chapters we will use have not changed that much, and this edition
can still be used.]
C. Nikolopoulos, "Expert Systems"
Marcel Dekker Inc. 1997. ISBN 0 8247 9927 5.
For some assignments, lab exercises, and the term project, we will use
the CLIPS or Jess expert system shells. CLIPS is a shell developed
at NASA, and has been in use for quite a while. Jess was inspired
by CLIPS, and uses the same rule format and inference mechanism,
but it is implemented in and integrated with Java.
Both are available for download via the Web, and are installed
on the counties system.
A printout of the CLIPS documentation is in a binder on the
bookshelf in the lab (14-232).Some textbooks also contain
chapters on CLIPS, e.g. Gonzalez & Dankel,or Giarratano & Riley.
Ernest Friedman-Hill, the developer of Jess, recently published
"Jess in Action," with an introduction to Jess and a number of examples.
CLIPS and related material is available for download from the Web sites below.
The table gives an overview of the calculation
of the grades. I reserve the right, however, to change
the formula used. Please note that the project consists
of several parts which will be evaluated separately. The project
will also be done in teams, and the performance of the team
as a whole will be graded unless there is a clear disparity
in the contribution of the individual team members.
Should this be the case, I might ask for additional
documentation like work sheets, email messages,
or draft copies of documentation to evaluate
individual contributions.