Undergraduate Course: Logic Programming (INFR09031)
|School||School of Informatics
||College||College of Science and Engineering
|Credit level (Normal year taken)||SCQF Level 9 (Year 3 Undergraduate)
||Availability||Available to all students
|Summary||This course describes the connection between Horn clause logic and computation via programming. The reference point for the course is the Prolog programming language - a principal aim being to develop students' programming expertise through experience in typical applications. The course is divided into two interacting sections: a theory section and a programming section.
The following are core elements of the syllabus:
- Programming: Declarative programming: goals, programs, recursion; Nonlogical features; parsing and DCGs; search techniques; reflection and meta-programming; higher-order logic programs
- Theory: Definite clause logic (propositional and predicate); Inference systems, proof search, completeness and incompleteness; Herbrand models; Negation by failure and completion procedures; Higher-order Logic Programming.
Relevant QAA Computing Curriculum Sections: Artificial Intelligence, Programming
Entry Requirements (not applicable to Visiting Students)
||Other requirements|| This course is open to all Informatics students including those on joint degrees. For external students where this course is not listed in your DPT, please seek special permission from the course organiser.
This course has the following mathematics prerequisites:
- Propositional logic (at the level taught in Informatics 1 Computation and Logic).
- First Order Logic (at the level taught in Informatics 2D - Reasoning and Agents).
Information for Visiting Students
|Pre-requisites||Visiting students are required to have comparable background to that
assumed by the course prerequisites listed in the Degree Regulations &
Programmes of Study. If in doubt, consult the course lecturer.
|High Demand Course?
Course Delivery Information
|Not being delivered|
On completion of this course, the student will be able to:
- Understand and explain principles of declarative specification, and its relation to procedural realisations
- Construct well-crafted Prolog programs of moderate size and sophistication
- interpret problems in a style that suits logic programming
- Understand and explain the logical foundations of logic programming
|* Clocksin, W.F. and Mellish, C.S., 2003, "Programming in Prolog: Using the ISO Standard"|
* Sterling, L. & Shapiro, E. 1994, "The Art of Prolog"
|Course organiser||Dr Alan Smaill
Tel: (0131 6)50 2710
|Course secretary||Mrs Victoria Swann
Tel: (0131 6)51 7607