3-3-0
There is much more than imperative programming. This course introduces two other programming paradigms, functional and logic. Topics normally include: functional programming languages, such as Lisp and Haskell; higher order functions, lazy evaluation, abstract and recursive types, structural induction, symbolic expressions; logic programming languages, such as Prolog; operational interpretation of predicates and terms, proof search, unification, backtracking; typical applications.
Corequisite: Computer Science 204b