In our first course we give an overview of the history of logic programming (LP). We introduce the basic notions of this area; and we discuss the widely used LP language; Prolog; emphasizing a kind of pragmatic programming methodology which helps us to develop correct and effective programs. We talk many short examples over; in order to make the students feel the taste of LP in small.
In our second course we focus on writing bigger programs and using advanced Prolog programming techniques like generate and test techniques; exception handling; writing and using second-order predicates; splitting our programs into modules; using partial data structures; d-lists; and logic grammars. We discuss many typical problems to be solved with logic programs.