20596 Prolog and Artificial Intelligence 1
Credits: 4 advanced credits in Computer Science
Prerequisites: Students must fulfill all English requirements and take bibliographic instruction in the Library.
Required: One of the following: Logic for Computer Science or Mathematical Logic or Mathematics for Students of Social Sciences,2 and Data Structures and Introduction to Algorithms (or Data Structures).
The course is based on Prolog Programming for Artificial Intelligence (4th ed.), by I. Bratko (Addison Wesley, 2011).
Objectives: Familiarity with a logical programming language; Learning the principles, methods and techniques of artificial intelligence and their implementation in Prolog.
Topics: Part I: The Prolog language – Introduction to Prolog; syntax and meaning of Prolog programs; lists, operators, arithmetic; programming examples; controlling backtracking; built-in predicates; programming style and technique; operations on data structures. Part II: Prolog in artificial intelligence – problem-solving as search; heuristic search and A* algorithm; best-first search; problem decomposition and AND/OR graphs; expert systems and knowledge representation; games – the minimax principle, the alpha-beta algorithm.
Requirements: The course requirements include, among others, running computer programs during the semester and submitting a project at the end of the course. The project is a large-scale computer exercise such as the design of an expert system using Prolog, a game playing program, etc. The project is submitted approximately 6 weeks after the end of the semester.
1There is some overlap in the content of this and other courses. For details, see Overlapping Courses.
2or Discrete Mathematics: Set Theory, Combinatorics and Logic (20283), which is no longer offered.