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).

Recommended: Algorithms

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.