Computer Science
and Engineering

CSE 4402/5311

Logic Programming

Course director: Zbigniew Stachniak

Course Description: This course explores in detail the theory and implementation of logic programming systems. While its focus is on Standard PROLOG, the course also covers other logic programming paradigms such as disjunctive, concurrent, and constraint logic programming.

The design and implementation of a standard logic programming system project is an essential part of the course. Through the project, a student will have an opportunity not only to apply his or hers knowledge but also explore possible extensions to the standard logic programming system. The course will end with students' presentations of their logic programming systems.

This course will cover the following subjects in details:

1. Clausal and Horn fragments of predicate logic.
2. Resolution and unification theory.
3. SLD-resolution and search trees.
4. Definition of Standard Prolog.
5. Logic programming -- implementational issues.
6. Disjunctive, concurrent, and constraint logic programming systems.
7. Applications of logic programming systems in Artificial Intelligence and other areas of computer science.

Reading List and resources:

There is no single textbook for this course. Most of the material covered in this course is also discussed in:

  • Ulf Nilsson and Jan Maluszynski: Logic, Programming and Prolog (on-line copy)
  • J.W. Llloyed: Foundations of Logic Programming, Springer-Verlag (last edition)
  • I. Bratko, PROLOG Programming for Artificial Intelligence Addison-Wesley
  • Programming with Constraints: An Introduction By Kim Marriott, Peter J. Stuckey, 1998
Resolution and unification theory are discussed, for instance, in:
  • J.W. Llloyed: Foundations of Logic Programming, Springer-Verlag (last edition)
  • C. Chang and C. Lee, Symbolic Logic and Mechanical Theorem Proving, Academic Press.

A (almost) standard Prolog system--SWI-PROLOG--is available from SWI-Prolog site. The system is supported on Prism (see manual pages for pl).

Course Directory:

All course related information (e.g. lecture notes, assignments, sample tests, etc.) can be found in
/cs/dept/course/2008-09/F/4402

Course Work:

For information on assignments, midterm, and their deadlines follow this link.

Questions: If you have any questions, send an email to the course director