CS410/510 Top: Declarative Programming --- Fall 2020

(Version June 30, 2020)

Instructor

Sergio Antoy
office: FAB 120-02
e-mail: antoy@cs.pdx.edu
homepage: http://www.cs.pdx.edu/~antoy/
office hours: probably on-line by appointment
Description
This course provides an introduction to functional logic programming through its basic ideas, foundations and implementation techniques. 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. Exercises will serve both to illustrate the use of the language and to illuminate the underlying theory and implementation issues. Prior exposure to functional or logic programming will be useful, but is not required.
Prerequisites
CS320 or CS558 Programming Languages or permission of the instructor.
Format
Regular lectures. Weekly assigned readings. Weekly homework exercises in Curry using the PAKCS programming environment. Midterm and comprehensive final exam.
Objectives
Students will be given considerable latitude in focusing either on the theory or the practice and/or in exploring research or projects 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.
Grading
The final grade is based on homework, midterm and final exam. Their relative weights are 30%, 30% and 40%, respectively. Homework will involve active participation in class.
Textbook
S. Antoy and M. Hanus, Curry: A Tutorial Introduction, 2019 (accessible in the course material).
Disabilities
This course embraces the following policy.
Resources
Course materials



Contacts: antoy@cs.pdx.edu
Last update Tue 30 Jun 2020 02:05:13 PM PDT