(2) Prerequisite: CS 203. Programming in a non-procedural logic programming language such as Prolog. Programming in a language that supports unification and backtracking and in which the execution of a program is the search for values that satisfy a declarative specification.