- Introduction to logic programming.
- Understanding logical foundations and computational model.
- Learning practical programming in Prolog.

With each lecture the students will be given exercises involving the concepts of the lecture. At the end of the semester students are supposed to make a programming project or, alternatively, to take a final written exam.

Winter Semester 2007.

**Number:**326.028**Title:**Logic Programming**Lecturer:**Temur Kutsia**Time:**Wed 16:15-18:00**Place:**T 212**First lecture:**October 10**Project presentations:**January 16 (projects 3,5,6), January 23 (projects 1,2,4).**Final exam:**January 30. 16:15-18:00. T 212.

Please register for the course via the KUSSS system.

- Logical foundations. Introduction to Prolog programming.
- Questions, variables, conjunctions, rules, goals.
- Prolog syntax. Characters, operators, equality and matching, arithmetic.
- Using data structures. Programming techniques on Prolog (Mapping, recursion, accumulators, difference structures).
- Backtracking, generating multiple solutions, the cut.
- Selected examples.
- Unification, computational model of logic programs.
- Constraint logic programming.
- Grammar rules (DCG).
- Efficiency issues.

**Book:**W. F. Clocksin and C. S. Mellish. Programming in Prolog. Fourth edition. Springer. 1994.**Slides:**- Introduction - pdf
- Questions, variables, conjunctions, rules, goals- pdf
- Prolog syntax - pdf
- Data structures, mapping, recursion - pdf
- Data structures, comparison, joining, accumulators, difference structures - pdf
- Backtracking, the cut - pdf
- Unification - pdf
- Computational Model - pdf
- Using Grammar Rules - pdf
- Efficiency issues - pdf
- Examples - pdf, manipulating programs - pdf

**Homeworks:**Please write LP07 HW.. in the subject of your mail when you submit homeworks.**Homework Assessments:****Programs:**- Solution to the homework 5.
- Solution 1 and Solution 2 to the homework 7.
- Einstein's puzzle and its solution
**Projects:**- Project 1. (Michael Haslgruebler, Lin Min-Hsien, Thomas Odaker, Michael Pecherstorfer, and Michael Vierhauser.)
- Project 2. (Anton Poechhacker, Sudhir Srivastava, Huajun Wang, and Petr Zverina.)
- Project 3. (Sarya Abu-Bakr, Stefan Riha, and Jakob Zwirchmayr.)
- Project 4. (Adrian Baltat and Yili Liang.)
- Project 5. (Markus Noebauer.)
- Project 6. (Manuela Wiesinger.)

**Additional material:**- M. A. Covington. Some Coding Guidelines for Prolog
- M. A. Covington. Efficient Prolog: A Practical Guide. Research Report AI-1989-08, The University of Georgia, Athens, Georgia, 1989.
- W. F. Clocksin. Prolog Programming (PowerPoint format).
- J. Lloyd. Foundations of Logic Programming, second edition, 1987. Springer.
- Open lists and difference lists. A section from Paul Brna's online Prolog book.
- P. Gloess. Constraint Logic Programming (PowerPoint format).

**System:**SWI-Prolog. For Windows users there is a convenient SWI-Prolog editor.**Some useful on-line resources:**WWW Virtual Library: Logic programming, Prolog newsgroup.

Maintained by Temur Kutsia