Last modified: 2016-10-06
This is a course page of
David Casperson
Associate Professor
Computer Science
University of Northern British Columbia

CPSC 370: Functional and Logic Programming

Click the rest of the course outline for an overview of the course structure.

Click the book list for a list of references.


Course Content:

The following list is quite approximate and will be refined shortly:

  • An introduction to functional programming. Static versus dynamic typing. Strict versus non-strict evaluation. Some common functional programning languages. Pure versus impure functional programming.
  • Functions and partial functions. Cartesian products. Disjoint unions. Currying.
  • Standard ML. Builtin types and literals. Tuples. Lists. Declarations. Function declarations and function values. Product types and function types.
  • Recursion, tail recursion, and accumulator arguments. Higher order functions for lists.
  • Scheme
  • Space and time complexity for functional programs and data structures.
  • An introduction to logic programming. Prolog.
  • Facts. Rules. Goals. Variables. Conjunctions. Horn Clauses. The Unification algorithm. Accumulator arguments. Difference lists. Cuts. Negation. Arithmetic. Debugging.
Home page Semesters Site Map
go back Fall 2005 go forward
2017-09 other links

Semester Map
CPSC 141
CPSC 200
CPSC 370
Course Outline
David’s Schedule