The aim of this course is to introduce you to the theory and practice of logic programming.

The course has two components:

**Logic programming - theory****Logic programming - programming**

Lectures are given by Alan Smaill
(`A.Smaill@ed.ac.uk`

, Informatics Forum 2:10a).
There will be 18 lectures, starting Monday 21st September 2015.

** Lectures are in Seminar Room 1, Chrystal Macmillan Building **
(north-east corner of George Square).

Lectures take place 1510-1600 on Mondays and Thursdays in weeks 1-2 and 4-10 of
Semester 1.
(Note that there are **no** lectures in week 3, i.e., no
lectures on 5th and 8th October.)

** Tutorials**

Tutorials are weekly starting in week 3.

Tutorial group membership and times

** Coursework**

There will be two, summatively assessed, coursework exercises; each worth 10% of the final grade.

The course lecturer is available (during Semester 1) for discussion of course material at the following hours:

- Alan Smaill (IF 2:10a): Thursday 11:30-12:30.

Other useful books on prolog programming are

*Programming in Prolog*by Clocksin and Mellish, Springer. (There are many copies of this in the University library.)-
*The Art of Prolog*by Sterling and Shapiro, MIT Press *Prolog Programming for Artificial Intelligence*by Ivan Bratko, Addison Wesley.

For the theory lectures, the following background material on propositional and predicate will be useful for students who have not previously encountered propositional and predicate logic.

- Wikipedia page on
*Propositional calculus* - Wikipedia page on
*First-order logic* - Wikipedia page on
*Structure (mathematical logic)* - Introductory slides (pdf) on
*Predicate logic and quantifiers*from University of Nebraska

SICStus Prolog is recommended for use in the course and will be
used for the final exam. Any DICE machine (i.e. any Linux machine in
an Informatics computer lab) should have SICStus installed; type
`sicstus`

at a command prompt to start.

The School also has a site license for student use, in case you would
prefer to install and run SICStus on your own computer. Contact
Computing Support in person or via this form
to arrange this.
**Please specify which operating system you are
running when requesting Sicstus (so Computing Support can send you the login details and
appropriate OS license info in one response).
**

- Lecture 1 (Getting started), September 21:
slides (PDF);
Reading: LPN chapter 1.
(Accompanying code: simpsons.pl)

- Lecture 2 (Terms, unification and proof search), September 24: slides (PDF); Reading: LPN chapter 2.
- Lecture 3 (Recursion, lists and data structures), September 28: slides PDF Reading: LPN chapter 3 and chapter 4. -->
- Lecture 4 (Nonlogical features), October 1: slides (PDF) Reading: LPN chapter 5 and chapter 10.

- Coursework 1 (programming)
**Due: 3pm October 26.**

- Coursework 2 (theory)
**Due: 3pm November 23.**

The tutorial group times and membership will be posted early in the semester.

- Tutorial for week 3 and the file that you should download for it: simpsons.pl.
- Tutorial for week 4 and the file that you should download for it: deck.pl.

Logic programming offers the following formative feedback:

- Interaction with tutors in tutorials provides general feedback on understanding.
- One tutorial will be a quiz tutorial: solutions will be marked and discussed in tutorial.
- The lecturer is available in office hours (see above) to discuss any aspect of the course. You are very welcome to drop in either individually or in small groups (up to 3 students at a time).

Informatics Forum, 10 Crichton Street, Edinburgh, EH8 9AB, Scotland, UK
Tel: +44 131 651 5661, Fax: +44 131 651 1426, E-mail: school-office@inf.ed.ac.uk Please contact our webadmin with any comments or corrections. Logging and Cookies Unless explicitly stated otherwise, all material is copyright © The University of Edinburgh |