-
Module content/Description:
Introduction to Artificial Intelligence: definitions of AI, history and evolution of AI, philosophical issues, the Turing test, the nature of problems suitable for AI, overview of the aims achieved so far,
Logic Programs: Horn clauses, syntax, declarative semantics, procedural semantics of Horn clauses, resolution, variables, bindings, unification, most-general unifier.
Prolog as a Logic Language: Syntax, clauses, facts and rules, terms, predicates, variables, atoms, queries, matching, SLD and LUSH resolution, execution, backtracking, And/Or-tree.
Prolog Programming Methodology: Recursion, Top-Down, Bottom-Up development of Programs, incremental programming, non-deterministic programming.
List Processing: List representation, list processing, recursion.
Built-In Predicates: Negation as failure, arithmetic, comparison, I/O, file handling, etc.
Meta-programming: Higher Order Predicates/ meta-predicates
Applications: Examples of intelligent systems and their implementation – Expert Systems
Evaluation (-> Assesment):
Written examination for the theoretical part,
Hands on/Oral examination for the Laboratory and/or final exam
Project based and F2F teaching
The course gives a general introduction to Artificial Intelligence and applications, introduces Predicate Calculus, Horn-Clause Logic and Logic Programming. Logic Programs are defined and their Resolution Principle is discussed. The main aim of this course is to introduce Logic Programming through the Prolog language. It is meant to be an in depth study of Prolog, since Prolog will be widely used in Artificial Intelligence. Emphasis will be given to the basic constructs of Prolog, avoiding the non-standard characteristics of any particular version used. The aim of this course is also to introduce problem solving techniques used in Artificial Intelligence, knowledge representation schemes, application areas of Artificial Intelligence, principles, characteristics and limitations of Intelligent Systems.
By the end of the course the students are expected to:
• have acquired good knowledge of the Prolog language, and be able to use it for the development of AI programs.
• be able to comprehend the advantages of declarative programming as well as shortcomings in comparison with imperative languages.
• have a good knowledge of the main concepts and application areas of Artificial Intelligence.
1] Sakelariou H., Vassiliadis N., Kefalas P., Stamatis D., Logic Programming Techniques – Prolog (In Greek), 2016 (https://repository.kallipos.gr/handle/11419/777)
2] Stuart Russell, Artificial Intelligence: A Modern Approach, (2nd Edition), Prentice Hall, 2003.
3] Bratko I., Prolog Programming for Artificial Intelligence, (3d edition), Addison Wesley, 2001.
4] W. F.Clocksin and CS.Mellish, Programming in Prolog, (2nd edition), Springer Verlag, 2003
5] T. Van Le, Techniques of Prolog Programming, Jon Wiley & Sons, 1993
6] P.Flach, Simply Logical: Intelligent Reasoning by Example, Jon Wiley & Sons, 1994
7] U. Nilsson and J.Maluszynski, Logic, Programming and Prolog, (2nd Edition), 1996
8] R.Kowalski, Logic for Problem Solving, North-Holland, 1983
9] W.F.Clocksin and CS.Mellish, Programming in Prolog, Springer Verlag, 1981
10] L.Sterling, E.Shapiro, The Art of Prolog: Advanced Programming Techniques, MIT Press, 1986
11] J.W.Lloyd, Foundations of Logic Programming, Springer-Verlag, 1984