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)
- ΣΑΚΕΛΛΑΡΙΟΥ, Η., ΒΑΣΙΛΕΙΑΔΗΣ, Ν., ΚΕΦΑΛΑΣ, Π., ΣΤΑΜΑΤΗΣ, Δ., 2016. Τεχνικές Λογικού Προγραμματισμού. [ηλεκτρ. βιβλ.] Αθήνα:Σύνδεσμος Ελληνικών Ακαδημαϊκών Βιβλιοθηκών. Διαθέσιμο στο: http://hdl.handle.net/11419/777
- Μανόλης Μαρακάκης, “Prolog: Προγραμματισμός σε Λογική για Τεχνητή Νοημοσύνη”, ΕΚΔΟΣΕΙΣ ΝΕΩΝ ΤΕΧΝΟΛΟΓΙΩΝ, ISBN: 978-960-6759-98-7, 2014.
- Σημειώσεις-Διαφάνειες διδάσκοντος για το μάθημα.
- Πολυμεσικός οδηγός εκμάθησης 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.).