Last updated 2009 November 9
About the Course
The course introduces and explores programming
concepts used in functional and knowledge-based
computing. It is intended to give the student a
programming background which will be useful for
further work in logic programming, expert systems, and
artificial intelligence.
The programming languages Lisp and Prolog will be considered in detail.
Lisp is a functional programming language based on the list structure. It is
widely used in artificial intelligence applications. Prolog is a declarative
programming language based on the concept of a logical assertion. It is widely
used for constructing knowledge-based and expert systems.
The course will develop the following concepts.
- Recursive programming techniques
- Functional programming
- Macros
- Terms as representations of facts
- Logical clauses as rules
- Goal search through backtracking
- Building logical databases for knowledge-based
problem-solving
- Representing mathematical knowledge by rewrite
rules
- Natural language processing using grammar rules
Textbooks
The course text books are the following. They may be purchased at bookstore.
- Robert Wilensky, Common LISPcraft, W.W.Norton & Company,
1986. ISBN 0-393-95544-3
- W.F. Clocksin, C.S. Melish, Programming in Prolog, Springer-Verlag,
5'th edition, 2004. ISBN 0-387-00678-8
The following are on two hour reserve in Steacie Library.
- Patrick Harrison, Common Lisp and Artificial Intelligence
QA 76.73 C28 H36 1990
- Robert Wilensky, Common LISPcraft
QA 76.73 C28 W55 1986
- W.F. Clocksin, C.S. Mellish, Programming in Prolog
QA 76.73 P76 C57 1987
- Robert Mueller, Symbolic Computing with Lisp and Prolog
QA 76.73 L23 M84 1988
Addional notes and class slides are available from
the resources page for the course.
Workload
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 Lisp and 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 graduate students. I encourage you to work on your communication skills in this class. Ask questions, Answer questions. Let me tell you from my own experience, once you have looked stupid enough times, it will no longer bother you. Believe me, I know! And, seriously, it is highly unlikely that your classmates will actually think you are stupid. It would be virtually impossible for a stupid person to make it this far through school. No, it is more likely that every person in the class is smart, not stupid. But no one knows everything, 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; and we may even all laugh about it. That will be a growing experience in itself. So, in summary, you are encouraged to participate in class!
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 timetable section give the due dates and times for the
reports.
The grading page describes the grading scheme used and the
algorithm for computing your final grade.
Tests and Examinations
There will be two in-class tests and a formal three hour examination
held during the examination period at the end of the term.
The timetable section give the dates and times for the
tests and examination.
The grading page describes the grading scheme used and the
algorithm for computing your final grade.
The test questions will be based on all the course material: texts, readings,
classes, reports, exercises, and on-line notes and slides.
Timetable
Follows the Faculty of Science & Engineering dates.
Class times:
Section A: Tuesdays & Thursdays, 5:30pm to 7:00pm, location CB 115
Report and test due dates
Report 1 Thursday, September 24, 5:30 pm
Report 2 Thursday, October 8, 5:30 pm
Class Test 1 Thursday, October 22
Report 3 Thursday, October 29, 5:30 pm
Report 4 Thursday, November 12, 5:30 pm
Class Test 2 Thursday, November 19
Report 5 Tuesday, December 8, 5:30 pm
Final exam Friday, December 18, 2pm-5pm, CB 115
Miscellaneous important dates
First day of classes : Wednesday, September 9
Last day to enroll in the course : Thursday, September 24
Fall Reading week : October 10 - October 16
Last day to drop the course : Friday, November 6
Last day of classes : Tuesday, December 8
Examination period : December 10 - December 23 inclusive