About the Course

Last updated 2005 October 27

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 data 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.


The required text for Section A and B is
R. Mueller and R. Page, Symbolic Computing with Lisp and Prolog
which is available as a "course kit" reprint from the York Bookstore. A copy is also available on two hour reserve in Steacie Library, QA 76.73 L23 M84 1988.

The following books are also available as additional reading and reference, on reserve in Steacie Library. Additional notes and lecture slides are available from the resources page and the notes page for the course. 


The work load in this course, as in most computer science 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 lecture 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 lectures will not cover all the topics in detail. Instead, the lectures will cover the most important points and give you pointers as to how the rest of the material can be studied. 


The course consists of three lecture hours per week. In preparation for lectures you are expected to read the assigned material - the lecture schedule gives an approximate idea of when various topics and readings will be dealt with. In addition, exercises will be given which you should do in preparation for future lectures. 

Reports and Exercises

Part of your final grade will be based on one or more exercise sets which will be graded on the basis of submitted reports. The report page gives more information about the style and content of these reports. In addition, the instructor may suggest ungraded exercises and the textbook also contains additional exercises. You should try to do as many exercises as possible.

The grading page describes the grading scheme used and the algorithm for computing your final grade. The timetable section give the due dates and times for the reports. The specifications are given as bulletins on the home page. 

Tests and Examinations

There will be an in-class mid-term exam (25%) and a final examination (55%) held during the examination period at the end of the term. The remaining 20% of your grade will be based on 4 assignments (5% each).

The test questions will be based on all the course material: texts, readings, lectures, reports, exercises, and on-line notes and slides. 

Lecture schedules


Follows the Faculty of Science & Engineering dates.

Lecture times for Section A:

Lecture times for Section B:

Exercise Reports due Exams
  Midterm exam, Section A        Wednesday, October 19, 1 pm - 2:20 PM
  Midterm exam, Section B        Thursday, October 20, 5:30 pm - 6:50 PM

  Final Examination:  TBA
Miscellaneous important dates
  First day of classes: Wednesday, September 7
  Last day to enroll in the course without permission: September 22
  Last day to drop the course: November 11
  Course evaluation: Section A -- November 21; Section B -- November 22 
  Last day of classes: Tuesday, December 6
  Examination period: December 8 - December 21