CSE 3401A Functional and Logic Programming
Summer 2008

Department of Computer Science and Engineering,
York University

What's new:

Course Description

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.


Shakil M. Khan
Office: CSEB 2017
Email: skhan "at" cse.yorku.ca


Wednesday from 19:00 to 22:00 in CB 115.

Instructor Office Hours


George Spanogiannopoulos


  1. Robert Wilensky, Common LISPcraft, W.W.Norton & Company, 1986. ISBN 0-393-95544-3
  2. W.F. Clocksin, C.S. Melish, Programming in Prolog, Springer-Verlag, 5'th edition, 2004. ISBN 0-387-00678-8
The textbooks are required; they are available at the York University Bookstore.


AK/AS/SC/MATH 1090 3.0.


Assignements (10%+10%)      20%
Midterm tests (2 @ 20% each)      40%
Final exam       40%
Total 100%

Tentative Schedule

Readings and Lecture Transparencies

On Reports

Sample Test Questions

Miscellaneous important dates

First day of classes (summer term) : May 5 - Monday
Last day to enrol in the course : May 9 - Friday
Victoria Day (univ. closed) : May 19 - Monday
Canada Day (univ. closed) : July 1 - Tuesday
Last day to drop the course : July 2 - Wednesday
Last day of classes (summer term) : August 1 - Friday
Civic Holiday (univ. closed) : August 4 - Monday

Additional References

The following are on two hour reserve in Steacie Library.

Clisp Common Lisp

To use Lisp on Prism

About Common Lisp

Getting Common Lisp


Running SWI-Prolog in the Prism Lab

Getting Prolog

About Prolog