CS510 Theory & Practice of Functional Logic Programming --- Winter 04
CRN 40769
(Version Jan. 5, 2004)

Index Instructors
Sergio Antoy
office: FAB 120-24
e-mail: antoy@cs.pdx.edu
homepage: http://www.cs.pdx.edu/~antoy/
office hours: MW 9-10 & by appointment

class time and location: MW 10-11:15, FAB 150
Description
This course will provide a rapid introduction to the basic ideas and implementation techniques for functional logic programming. FLP combines the distinctive features of functional programming (algebraic data types, lazy evaluation, polymorphic typing, first-class functions, monadic I/O) and logic programming (logic variables, non-determinism, search) seamlessly through narrowing and residuation. The course will address three kinds of questions: Why are these features useful? What is their underlying theory? How can they be implemented? Lectures will be augmented with weekly programming assignments in Curry (a leading functional logic language) and Haskell (a leading functional language). Exercises will serve both to illustrate the use of these languages and to illuminate the underlying theory and implementation issues. Prior exposure to functional or logic programming will be useful, but is not required.
Format
Regular lectures. Weekly assigned readings. Weekly homework exercises in Curry and/or Haskell, using the PAKCS (Curry) and HUGS (Haskell) programming environments. Comprehensive final exam.
Goal
Students will be given considerable latitude in focusing either on the theory or the practice and/or in exploring research opportunities in this area. Students are expected to learn the main concepts of declarative programming, to understand the key principles on which functional logic programming is based, to know one or more functional logic languages, and to be able to translate problems into programs in these languages.
Prerequisites
The expected preparation is a bachelor degree in Computer Science or equivalent background. Willingness to learn a non-traditional computing paradigm and appreciation for clear and rigorous foundations of computing are good assets for this course.
Course materials



Contacts: antoy@cs.pdx.edu>
Last updated: Mon Jan 5 09:27:41 PST 2004