IST480:  Knowledge Engineering Fundamentals
Course Syllabus
Fall 2000, TR 3:30 – 4:45, PH 200

Instructor

:  Brian M. Morgan

Office

Prichard Hall 212

Phone Number 

:  (304) 696-6469

Fax Number

:  (304) 696-6533

Office Hours

:  M, W - 8-10, 1:30 - 3
   T, R – 8 – 9:30, 11 – 12, 2:30 – 3:30
   Other times by appointment

E-Mail

:  brian.morgan@marshall.edu

Textbooks:
The following textbooks will be referenced for the course but are *NOT* required:

·     An Introduction to Knowledge Engineering, by Peter Smith. International Thomson Computer Press, New York, NY, ISBN: 1-85032-277-5, 1996.

·     Intelligent Systems for Engineering, by Ram D. Sriram, Springer-Verlag Publishing, London, 1997.

·     Decision Support Systems in the 21st Century, by George Marakas.  Prentice Hall, ISBN:  0-13-082636-7, 2001.

Computer Requirements:
Supplemental materials can be found contained within the WebCT environment (http://webct.marshall.edu/).  I will be sending class announcements, updates, etc. using your WebCT account (will discuss during the first lecture).  Access to a WWW browser is required (Netscape 4.0 or higher or Internet Explorer 5.0 or higher) and Adobe Acrobat Reader (available for download through the class WebCT site). 

Course Description:
The course provides introduction to fundamental topics of knowledge engineering and the development of Knowledge-Based Systems (KBS). Covers life cycle activities, knowledge acquisition, representation, and the implementation of KBS and building tools.

Credit:
The course is three (3) credit hours. It includes classroom lectures, exams, and programming projects. Students will participate in programming projects that illustrate the implementation of concepts in general applications. 

Pre/co-requisites:
IST263 – Programming Practicum or permission.

Desired Objectives/Outcomes:
By the end of this course, you should be able to:

-          Identify current practices of Knowledge Engineers

-          Identify problems that are best-suited for Knowledge Based Systems

-          Identify the steps necessary to develop a Knowledge Based System

-          Use proper techniques to gather knowledge

-          Use proper techniques to represent knowledge

-          Be able to develop a working Knowledge Based System with the expert system shell, ESTA.

Instruction method:
There will be 3 contact hours of classroom lecture per week.  Two programming projects covering the major topics are part of the course.  Students may work on their assignments in the computer lab in Prichard Hall 200.
  

Evaluation method:
Evaluation of student's performance will be based on the quality of your performance on programming assignments, exams, and class and web-based participation.  

Grading Policy:
Final grades are based on performance in assignments, exams, and attendance as indicated below.  

Midterm

25%

Final Exam

35%

2 Programming Projects (15% each)

30%

Attendance & Participation 

10%

Assessment of Projects:

The grading of all projects will take into account the following:

1.   Although the most important attribute of a program is correctness, grading will take into consideration such items as time and space efficiency, documentation, etc.

2.   Programs must have proper inline documentation and must be properly indented. 20% will be deducted for poorly documented and/or poorly indented code.

3.   All submitted code must compile correctly. Code that does not compile will receive 0 credit.

4.   When a problem does not specify a required complexity, the grading will differentiate between efficient and nonefficient code.  For example, if you write a program that contains a number of checks that are redundant and/or has one or more loops that iterate zero or one time, up to 10% of the grade will be deducted.

5.   When a method name and/or parameters are specified in an assignment’s description, you must use that name and/or parameters. Failure to do so could result in loss of up to 50% of points as I may write my own driver program to test required methods or functions.

6.   When you write a function, remember that the function should work for all possible inputs. Not on just your test inputs.

7.   Although interactions with other students are encouraged, you must compose your own answers, unless otherwise noted. 

Individuals who utilize other people’s code, thoughts, or ideas must provide appropriate references to said resources.  Failure to provide such documentation will result in a failing grade for the assignment, and may result in a failing grade for the course.

In determining the overall grade for a project, you can expect the following grades based on performance:

A – Excellent work that meets and/or exceeds all of the requirements for a given project, code compiles and works for multiple test samples, all code and associated files are well-documented, and the code is written efficiently.

B – Good work that meets all of the requirements of the assignment, but may have errors in documentation or coding, or contains code that may not work with all possible data samples.

C – Average work that meets all of the requirements of the assignment, but is missing one or more of the items in its entirety that is mentioned in terms of an A grade.

D – Below average work which fails to meet one or more of the requirements of the assignment.

F – Unacceptable work which fails to meet two or more requirements for an assignment, or has code that will not compile and execute.

Final letter grades are determined based on the following grading scale: 

90-100% 

A

80-89%

B

70-79%

C

60-69%

D

Below 60

F

The instructors reserve the right to change these values depending on the overall class performance and/or extenuating circumstances.  

Policy Statement:
Programming assignment:
  The course includes a programming assignment using Esta, an expert system shell that will be taught in class. All assignments are due at the beginning of the class period on the due date. Late assignments will be penalized at the rate of 5% per day (including weekends).  

Exams: There are two exams: Mid-term (during the 7th week) and a Final exam (as scheduled). Exact dates and times of exams will be announced in class.  

Make-up Exams and Late Penalty:  Make‑up exams will not be given except under unusual circumstances and satisfactory written justification.  Any student who misses an exam due to an unexcused absence will receive a grade of zero for that exam with no opportunity for make-up or substitution.  University excused absences or those occurring with a good reason will be excused.  Make up exams must be taken within one week of the original scheduled date.  The decision whether to give a make up exam rests with the instructor.

Passing grade:  Programming assignments and exams are required parts of the course and must be satisfactorily completed to pass this course.  A student must have a passing performance on each part.  A failing grade on a component may result in a failing grade in the course.  

Attendance Statement:
Class attendance is mandatory and is a required part of the course.  Those needing to miss class for a legitimate reason must contact me via telephone/voice mail or e-mail prior to the class meeting for it to be excused.  See grading policy.
 

Withdrawal Policy:
The
University withdrawal policy is followed in this course. The last day to drop an individual course for the Fall of 2000 is October 27, 2000.  

University Holidays:
The class is officially dismissed on the following dates:
            Fall Break:  November 21, 2000
                               November 23, 2000

Topics and Methodology:
The following outline delineates the tentative class schedule with topics to be addressed during the course. 
Please note this is a tentative schedule and it may change upon class progress:

August 22

Course Overview/Objectives (syllabus), Overview of how to access course information through WebCT

August 24

Introduction to Knowledge Engineering

August 29

Knowledge-Based Systems (KBS)

- Introduction

- History

- Applications

August 31

Knowledge Engineering Life Cycle

- Compared to the Software Life Cycle

September 5

Knowledge Engineering Life Cycle

- KBS Development Cycles

September 7

Catch up on previous lectures
Knowledge Engineering Life Cycle

- Prototyping

September 12

Knowledge Engineering Life Cycle

- KBS Development Methodologies (DSS book, chapter 3 as well)

September 14

Knowledge Acquisition

- Acquisition Methods

- Assignment of Project #1

September 19

Class time to work on your knowledge interviews, questionnaires, etc.

September 21

KNOWLEDGE Interviews of “domain expert”– class project

September 26

Knowledge Representation

- Rules-based

- Frames

September 28

Knowledge Representation

- Semantic Networks

- Model-based

October 3

Knowledge Representation

- Blackboard

- Object-based

October 5

MIDTERM EXAM

October 10

Review of Midterm, Q&A period

October 12

Search Methods

- Simple Search Methods

October 17

Search Methods

- Evaluation-based Searches

October 19

Project #1 Due

KBS Implementation and Building Tools

October 24

KBS Building Tools

October 26

Examples in ESTA

October 31

ESTA

Assignment of Project #2

November 2

ESTA

November 7

ESTA

November 9

Problem Solving Strategies

- Introduction

November 14

Problem Solving Strategies

- Forward Chaining

November 16

Problem Solving Strategies

- Backward Chaining

November 28

Management Issues in KE

-          QA and Validation

-          Operation and Maintenance

-          Professionalism

November 30

Project Management Issues in KE

December 5

Project #2 Due

Dead Week – Review for Final Exam

December 7

Final Exam, 3:30 pm – 5:30 pm

For each topic discussed in the textbook, specific experience of other students and the instructor will be discussed to enhance the characteristics involved.  The Expert System shell authoring package, ESTA, will be taught in the course and used to implement the major project in the course.  Additional material may also be covered in the class.

Every student is responsible for all materials presented in class, including lectures, notes, and handouts.  In case you are not present for a class, it is your responsibility to contact the instructor and receive information about the material presented in that class.  Class attendance is very important.  

Effort Required:
As a 400-level course, a considerable amount of research effort is required of the student.  For every one hour in class, the student is expected to put in an effort of at least 3 hours outside the class for studying and programming.  Upon background and preparedness, some students may have to put in additional effort.  

Communication:
The Bulletin Board facility of WebCT and private E-mail will be used to make any general announcements, last minute changes, etc.  It is mandatory that you monitor your WebCT course messages at least once a day.