Learning Outcomes
Knowledge: Familiarization with Mathematical Logic principles, Familiarization with using Logic as a Programming Languages, Training on Prolog programming language.
Skills: Representing and solving logical expressions. Programming with the Prolog programming language.
Course Content (Syllabus)
Mathematical Logic (Propositional calculus, normal forms, inference mechanisms, resolution principle, predicate calculus, variables and quantifiers, variable substitution and unification). From Logic to Logic Programming (Kowalski form, Horn clauses).
Logic Programming (Basic concepts, history, Prolog language). Syntax of Logic programs (Queries, Rules, Predicates, Complex Terms). Unification. Execution control mechanism. Recursion. Lists. Number representation (arithmetic operations, comparison, mathematical functions). String handling. Input/Output. Variable Goals. Term type testing. Term construction/decomposition. Cut (effect on the computation tree, usage). Negation as failure. Solution management. Clause management. Programming methodology. Logic Programming Applications.
Keywords
mathematical logic, computational logic, logic programming, Prolog
Course Bibliography (Eudoxus)
- PROγραμματίζοντας στη LOGική, Μ. Κατζουράκη, Μ. Γεργατσούλης, Σ. Κόκκοτος, Ελληνική Εταιρία Επιστημόνων Η/Υ και Πληροφορικής, Αθήνα 1991.
- Σημειώσεις-Διαφάνειες διδάσκοντος για το μάθημα.
- Πολυμεσικός οδηγός εκμάθησης Prolog.
Additional bibliography for study
- Programming in Prolog, W. Clocksin, C. Mellish, Springer-Verlag.
- Prolog Programming for Artificial Intelligence, Ivan Bratko, Addison-Wesley, (2nd or 3rd ed.).