Course: Logic Programming

» List of faculties » PRF » KMI
Course title Logic Programming
Course code KMI/LGPR
Organizational form of instruction Lecture + Lesson
Level of course Master
Year of study not specified
Semester Winter
Number of ECTS credits 4
Language of instruction Czech, English
Status of course Compulsory-optional
Form of instruction Face-to-face
Work placements This is not an internship
Recommended optional programme components None
Course availability The course is available to visiting students
Lecturer(s)
  • Kolařík Miroslav, doc. RNDr. Ph.D.
  • Balun Jiří, Mgr.
Course content
The course is an introduction to logic programming and its theoretical foundations based on predicate logic. The course includes theoretical topics on the syntax and semantics of logic programs and their relationship to first-order theories. Further attention is paid to the principles of PROLOG compilers. The course is concluded by showing applications in expert and database systems. <ol> Repetition of relevant concepts from predicate logic. Resolution inference rule. <li> Introduction to logic programming. Logic program and its semantics. Logic paradigm as a paradigm of programming. <li> Definite programs and their syntax. Clauses, facts, rules, and queries. <li> Declarative semantics of of definite programs: herbrand structure, herbrand model, least herbrand models and their constructive description. Semantic entailment of definite programs, Substitution, application, ground instances, sound answers. Pure logic programming vs. PROLOG. <li>Operational (procedural) semantics of logic programs. Recursive data structures. Recursive rules. Unification. Nondeterministic inference. Deterministic methods. Most general unifiers, procedural semantics and its relationship to declarative semantics: sound and computed answers. <li> PROLOG as a push-down automaton, backtracking, alternative solutions. <li> Cuts and metalogic annotations. Cuts as nullary predicates. Computation control using cuts. Conditional expressions and loops using cuts. <li>Theoretical models of negation: closed world assumption, negation as finite failure. Cut-based negation. <li> Applications of logic programming in database and expert systems. </ol>

Learning activities and teaching methods
Lecture, Demonstration
Learning outcomes
The students become familiar with basic concepts of logic programming.
Analyze problem and propose a logic program for its solution.
Prerequisites
unspecified

Assessment methods and criteria
Oral exam, Written exam

Active participation in class. Completion of assigned homeworks. Passing the oral (or written) exam.
Recommended literature
  • Bratko I. (2001). PROLOG Programming for Artificial Intelligence. Addison Wesley (third edition).
  • Jirků P. a kol. (1991). Programování v jazyku Prolog. SNTL, Praha.
  • K. Doets. (1994). From Logic to Logic Programming. The MIT Press.
  • Lloyd J.-W. (1987). Foundations of Logic Programming. Springer, New York.
  • M. Kifer, Y. A. Liu. (2018). Declarative Logic Programming: Theory, Systems, and Applications. Morgan & Claypool.
  • P. Boizumault. (2014). The Implementation of Prolog. Princeton University Press.


Study plans that include the course
Faculty Study plan (Version) Category of Branch/Specialization Recommended year of study Recommended semester
Faculty: Faculty of Science Study plan (Version): Applied Computer Science - Specialization in Computer Systems and Technologies (2024) Category: Informatics courses 2 Recommended year of study:2, Recommended semester: Winter
Faculty: Faculty of Science Study plan (Version): Computer Science - Specialization in Artificial Intelligence (2020) Category: Informatics courses 2 Recommended year of study:2, Recommended semester: Winter
Faculty: Faculty of Science Study plan (Version): Applied Computer Science - Specialization in Software Development (2024) Category: Informatics courses 2 Recommended year of study:2, Recommended semester: Winter
Faculty: Faculty of Science Study plan (Version): Computer Science - Specialization in General Computer Science (2020) Category: Informatics courses 2 Recommended year of study:2, Recommended semester: Winter
Faculty: Faculty of Science Study plan (Version): Teaching Training in Computer Science for Secondary Schools (2019) Category: Pedagogy, teacher training and social care 2 Recommended year of study:2, Recommended semester: Winter