Last updated 2010 August 19

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.

Upon successful completion the course you should be able to do the following.

Textbooks

The course text books are the following. They may be purchased at bookstore. The following are on two hour reserve in Steacie Library. 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.

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.

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 class schedule gives 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.