The course introduces logic-based programming and its use in artificial intelligence.
It is intended to give the student a background that will be useful for
further work in logic programming, artificial intelligence, and expert systems.
The programming language Prolog will be used. Prolog is a declarative
programming language based on the concept of a logical assertion. It is widely
used artifical intelligencrs applications and in constructing knowledge-based
expert systems and work with probability models using Bayesian logic.
Upon successful completion the course you should be able to do the following.
Be fluent in decomposing algorithms into recursive sub-problems.
Write logic programs in Prolog.
Describe the first-order predicate logic structure basis of Prolog.
Desribe how goals are found through backtracking (backward chaining)
and through forward chaining.
Understand and use heuristic state-space search algorithms such as
A*, RTA*, and IDA*.
Build logical databases for knowledge-based expert systems.
Use grammar rules to process natural language statements.
Build simple Bayesian Networks, and work with Bayesian logic.
Textbooks
The course textbook is the following. It may be purchased at bookstore.
Prolog Programming for Artificial Intelligence, Ivan Bratko,
Fourth Edition, Pearson, 2012. ISBN 978-0-321-41746-6
The work load in this course, as in most computer science and engineering courses, is
high. The course has a large unscheduled laboratory component to it which involves
writing and testing Prolog programs. You should be prepared
to devote 10 hours a week on average to the course; this includes class
time. With proper planning and discipline, you can spread most of the work
load fairly evenly throughout the course.
It is up to the you to read and study relevant material without explicit
instructions. You are expected to find the required readings in the references
and any other sources you can find. Part of the university experience is
to acquire a measure of self reliance. The instructor for the course can
only guide you as to what is useful to learn; the effort must come from
you. The course classes will not cover all the topics in detail. Instead,
the classes will cover the most important points and give you pointers
as to how the rest of the material can be studied.
Classes
The course consists of three class hours per week. In preparation
for classes you are expected to read the appropriate material - the class
schedule gives an approximate idea of when various topics and readings
will be deal with. In addition, exercises will be given which you should
do in preparation for future classes.
Class participation
You are encouraged to participate in class. Interviewers say that communications
skills are a problem area for some of our students. I encourage you to work on
your communication skills in this class. Ask questions. Answer questions. But
no one knows everything, including myself, so we will all sometimes answer
questions incorrectly, and we will all sometimes say something that is wrong.
We may even ask a silly question; we may even all laugh about it. That will
be a growing experience in itself.
Reports
You will hand in for grading a set of reports. The specifications are given
as announcements in the course forum. The
report page gives more information
about the style and content of reports.
The class schedule gives the due dates and times for the
reports.
The grading page describes the grading scheme used and the
algorithm for computing your final grade.
Exams
There will be two in-class exams and a formal three hour examination
held during the examination period at the end of the term.
The class schedule gives the dates and times for the
in-class exams and final exam.
The grading page describes the grading scheme used and the
algorithm for computing your final grade.
The exam questions will be based on all the course material: texts, readings,
classes, reports, exercises, and on-line notes and slides. Example exam
questions from previous exams, and variations on them can be found
here.