This module introduces basic AI programming techniques and explains
how these can be used to write programs to solve typical AI problems
(e.g., those introduced in G51IAI and G52PAS). The programming
techniques are introduced through the AI programming language Prolog,
however the emphasis is on transferrable AI programming skills rather
than language specific details.
Lectures are on Mondays and Tuesdasys at 14:00 in C60
Labs are on Wednesdays between 10:00-12:00 in B52 (Networking Lab) in CS.
Assessment is by coursework (25%) and exam (75%).
- Bratko (2001),
Prolog Programming for Artificial Intelligence, (3rd
or the 2nd edition, which covers all the material required for the module.
- Sterling & Shapiro (1994), The Art of Prolog, (2nd
Edition), MIT Press.
- Russell & Norvig (2010),
Artificial Intelligence: A Modern Approach, Prentice Hall.
or the first or second editions, which cover all the material needed for the
module (though the treatment of planning is better in the 3rd edition).
- Blackburn, Bos & Striegnitz
Learn Prolog Now! College Publications.
Focuses on Natural Language Processing, but there is a free online
version of the book.
Note that there is also a version of
list with links to the University Library catalogue.
The version of Prolog used in the lectures and labs is SICStus Prolog
version 4. The SICStus documentation is available here in a
variety of formats. If you want to use the Emacs interface to SICStus
prolog (recommended), add the following two lines to the file
(setq prolog-indent-width 4)
SICStus Prolog is a commercial product, and is
only available on the CS Linux servers (e.g., bann). However there are
many free versions of Prolog available for most operating systems that
you can use on your own PC. These are mostly compatible with SICStus
Prolog, except for some of the libraries. A useful list of free Prolog
implementations can be found on the
Learn Prolog Now!
web page (follow the "Prolog Implementations" link).
The AAAI Springboard
page also has lots of references to AI topics.
Note that the following list of suggested reading is provisional,
as it may necessary to change the order in which topics are presented.
- Lecture 1 Introduction: Russell & Norvig (2010), chapter 1;
Bratko (2001), chapter 1.
- Lecture 2 Prolog syntax: Bratko (2001), chapter 1.
- Lecture 3 Prolog execution: Bratko (2001), chapter 2.
- Lecture 4 Recursive programs: Bratko (2001), chapter 3.
- Lecture 5 Lists: Bratko (2001), chapter 3.1, 3.2.
- Lecture 6 Backtracking: Bratko (2001), chapter 1.4; chapter 5.
- Lecture 7 Second order programming: Bratko (2001), chapter
- Lecture 8 Depth first search in Prolog: Bratko (2001), chapter
- Lecture 9 Iterative deepening search: Bratko (2001), chapter 7.
- Lecture 10 Breadth first search: Bratko (2001), chapter 11.3.
- Lecture 12 Informed search: Bratko (2001), chapter 12.
- Lecture 13 Local search: Bratko (2001), chapter 12.
- Lecture 14 (Forward) Planning: Bratko (2001), chapter 17.
- Lecture 15 Regression planning: Bratko (2001), chapter 17.
- Lecture 16 Further regression: Bratko (2001), chapter 17.
Copyright © 2012 Brian Logan
This file is maintained by Brian Logan
Last modified: 2-Oct-2012, 12:07