It covers programming languages, theoretical foundations, implementations, and applications.
Functional programming is about writing and composing functions.
Students are presented with a brief overview of functional programming in LISP, and use it to solve a number of problems, including writing an interpreter for a subset of Lisp. Logic programming draws the idea of logic deduction as computation and programming as specifying solutions in a logic. Students are presented with a review of predicate logic, and how a subset of this logic could serve as the basis for a logic programming language. Exercises include writing Prolog programs for some artificial intelligence applications. By the end of the course the students are expected to have a good understanding of the main ideas behind functional and logic programming languages, and have mastered the basic skills of programming in Lisp and Prolog.