Next: Comparative Programming Languages
Up: Lent Term 2003: Part
Previous: Lent Term 2003: Part
  Contents
Artificial Intelligence I
Lecturer: Dr S.B. Holden
(sbh11@cl.cam.ac.uk)
No. of lectures: 12
This course is a prerequisite for Artificial Intelligence II (Part II).
Aims
The aim of this course is to introduce the elements of programming
in the language Prolog. A relatively pure subset of Prolog is
covered, which excludes assert/retract, but includes the cut. The
course consists of tutorials with exercises in graded order of
difficulty, followed by case studies demonstrating a variety of
applications.
Lectures
- Introduction. History, syntax, semantics, getting started,
running programs. Goals. Clauses, procedures, backtracking. Data
structures and unification. Recursion in data and process. Variables
are holes in data structures.
- List processing. Some practical programming examples.
- Mappings. Some principles of structuring problem solving.
- Accumulators. Ways of constructing tail-recursive
procedures from specifications.
- Difference structures. Probably the best programming technique
ever invented.
- Computing with difference structures. Ways of exploiting
the above.
- Modifying backtracking. Ways of specifying control over
the default chronological backtracking execution rule.
- Case studies. The remaining lectures are case studies that
demonstrate larger programs and use the programming techniques
previously introduced.
Objectives
At the end of the course students should
- Be able to write programs in Prolog using techniques such as
accumulators and difference structures.
- Know how to model the backtracking behaviour of program execution.
- Appreciate the unique perspective Prolog gives to problem
solving and algorithm design.
- Understand how larger programs can be prepared using the basic
programming schemata introduced in the course.
Recommended books
Clocksin, W.F. (1997). Clause and Effect: PROLOG Programing for
the Working Programmer. Berlin: Springer-Verlag.
Bratko, I. (2001). PROLOG: Programming for Artificial
Intelligence. Addison-Wesley (3rd ed).
Next: Comparative Programming Languages
Up: Lent Term 2003: Part
Previous: Lent Term 2003: Part
  Contents
Christine Northeast
Wed Sep 4 14:43:05 BST 2002