Computer Science
and Engineering

CSE 3401

Functional and Logic Programming

Course director: Zbigniew Stachniak

Course Description: The course introduces and explores two programming paradigms: logic and functional programming. ``Together with the students' background on procedural and object-oriented programming, the course allows them to compare the development of programs in these different types of languages.'' [from 2009/2010 Undergraduate Calendar]

The Standard PROLOG will be considered in detail. This language (and its dialects) is widely used in Artificial Intelligence applications and other areas of computer science. LISP programming language played an important role in the development of Artificial Intelligence. In this course, Common Lisp will be discussed as a representative of the family of functional programming languages.

Reading List and resources:

There is no single textbook for this course. Making good quality lecture notes is the best approach to collecting course material. Most subjects covered in this course are discussed in:

The reading material on advanced topics, such as constraint logic programming or object oriented Lisp, will be provided at a later date.

The SWI-PROLOG and CLISP Common Lisp programming environments will be used. Please consult the SWI-Prolog site and the CLISP site for more information. Both environments are supported on Prism (see /cs/local/share/doc/clisp and manual pages for pl.

Course Directory:

All course related information (e.g. some lecture notes, assignments, sample tests, etc.) can be found in

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