Introduction to functional programming and symbolic problem representation. Pattern matching and concept of unification. Resolution principle as a foundation of logic programming. Prolog as an example of declarative programming language. Implementation issues. Programming in Scheme and Prolog.