![[The University of Leicester]](http://www.le.ac.uk/corporateid/departmentresource/000066/unilogo.gif) | Department of Mathematics & Computer Science |
 |
Next: MC215 Software Engineering Project
Up: Year 2
Previous: MC211 Automata, Languages and Computation
MC214 Logic Programming
Credits: 10 |
Convenor: Dr. S. J. Ambler |
Semester: 2 |
Prerequisites: |
essential: MC111, MC103 |
desirable: MC104 |
Assessment: |
Continual assessment: 40% |
Two hour exam in May/June: 60% |
Lectures: |
18 |
Problem Classes: |
none |
Tutorials: |
none |
Private Study: |
39 |
Labs: |
12 |
Seminars: |
none |
Project: |
none |
Other: |
none |
Surgeries: |
6 |
Total: |
75 |
Explanation of Pre-requisites
The Prolog language is based on the predicate calculus so the
knowledge of logic from MC111 is essential.
Some prior experience in computer programming is also important
so MC103 is essential and MC104 is recommended.
Course Description
Many of the programming tasks which arise in Artificial Intelligence
can be formulated as search problems, e.g. find a series of
moves which will guide the robot out of the maze, find a medical
diagnosis which is consistent with the patient's symptoms, find
a combination of components which fits the customer's requirements
for a computer system, and so on.
The predicate calculus introduced in MC111 provides a convenient
language to describe such problems; logic programming provides a means
of finding the solution by the application of rules. Prolog is the
prime example of a logic programming language and has become a
standard tool in Artificial Intelligence programming.
Aims
The course is intended to give the student an understanding of
the principles of logic programming, the basic skills of programming
in Prolog and an appreciation of how to apply these skills in practice
to standard problems in AI.
Objectives
- To understand how Prolog relates to the predicate calculus
and appreciate the declarative meaning of a program;
- to be able to write programs in Prolog using a mixture of
recursion, arithmetic, lists/trees, negation, IO and other non-logical
features such as assert and retract;
- to understand the execution mechanism of Prolog in terms of
unification, resolution and SLD-trees;
- to be able to improve the efficiency of a Prolog program using
the cut operator.
Transferable Skills
- A secure understanding of the principles and techniques of logic
programming and how these can be applied in practice, for example in AI;
- experience in problem solving, in particular, in search problems;
- a greater appreciation of the role of logic in Computer Science
and its applications.
Syllabus
Fundamentals of Prolog: facts and rules, recursion, backtracking,
simple examples; execution mechanism: unification, resolution, SLD-trees
and search strategies; list processing in Prolog; cut operator and
efficiency issues; worked examples; negation as finite failure;
arithmetic; system predicates for IO; assert and retract; debugging
programs by tracing.
Reading list
Recommended:
I. Bratko,
Prolog, Programming for Artificial Intelligence, 2nd edition,
Addison-Wesley, 1986.
Background:
L. Sterling and E. Shapiro,
The Art of Prolog, 2nd edition.,
MIT Press, 1994.
Details of Assessment
There is a series of five worksheets, which are all assessed.
The written Midsummer examination has three questions and candidates
can obtain full marks for good answers to two questions.
Next: MC215 Software Engineering Project
Up: Year 2
Previous: MC211 Automata, Languages and Computation
Author: S. J. Ambler, tel: +44 (0)116 252 3884
Last updated: 10/4/2000
MCS Web Maintainer
This document has been approved by the Head of Department.
© University of Leicester.