Date: Wed, 20 Nov 1996 23:18:10 GMT Server: NCSA/1.5 Content-type: text/html Fall 1995 Course Announcement

intriguing graphic logo Fall 1995 Course Announcement
22C:193 Logic Programming

Instructor: Arthur C. Fleck
Time/place: 9:30 am MWF / 113 MLH
Text: Sterling & Shapiro, The Art of Prolog, 2nd ed., MIT Press, 1994.

Course overview

The goal of logic programming is to allow us to specify what properties a correct solution to a problem must possess, and then automatically deduce the solution without further "programming". It is a unique paradigm suitable for many non-numeric applications, and has connections with a variety of areas of computer science including automatic theorem proving, deductive database, and various AI applications such as natural language processing, expert systems, and knowledge representation. The principal focus of this course will be on the semantics and pragmatics of Prolog programming, and its aptness for logic programming.

General background from the formal prerequisites 22C:21 and 22C:23 will be assumed. There will be no prior knowledge of logic programming required, necessary background for course topics will be developed. It will be assumed that the student has experience with several programming languages, and especially that recursion is a familiar concept. Please note that undergraduate majors can select this course as one of the two advanced CS courses required for the B.S. degree.

The course will involve both conceptual and project work. The projects will be of modest size and will use Prolog and possibly other logic languages for which implementations can be obtained. A tentative listing below indicates the range of topics. It will not be possible to provide a complete treatment of all these topics, so some will be touched on only briefly.

Tenative topic list

  1. Overview of Prolog and the philosophy of logic programming

  2. Substitutions & unification

  3. Horn clause logic

  4. Prolog semantics

  5. Logic programming vs. Prolog programming

  6. Logic grammars

  7. Unifying functional & logic programming

For further Web information on logic programming see the WWW logic programming page.