Artificial Intelligence Programming in Prolog (AIPP) University Homepage School Homepage School Contacts School Search Artificial Intelligence Programming in Prolog (AIPP) Lecturer | Module Description | Lectures | Assignments | Practicals | Exam | Exemptions | Software | References | Links Update Lecture slides are posted before each lecture. Print them off from here if you wish to annotate them during lectures. Course notes are available for download (here). The course notes contain an introduction to Prolog as well as all practical exercises and revision exercises. Assignment 1 (An automatic puzzle solver) is available now (04/10/04). Download the specification and template file here. Practical code is available here along with updated instructions. ****** NO LECTURE Monday 25th October due to mid-semester break ********** ****** Thursday 11th November lecture cancelled due to my absence ********* Assignment 2 (Six Degrees of Kevin Bacon) now available here Final lecture is Monday 29/11/04 Practical sessions continue in week 11 (29/11-3/12). Dedicated to catch-up and 2nd assignment. Introduction Prolog(PROgrammation et LOGique) is a logic programming language widely utilised in Artificial Intelligence. It is a high-level programming language which enables the user to build programs by stating what they want the program to do rather than how it should do it. Due to Prolog's grounding in first-order predicate logic it is intended to be more analogous with human deductive reasoning than other programming languages. AIPP is a Masters level course intended to provide students with all the technical skills needed to implement Artificial Intelligence techniques in compact and efficient Prolog programs. By the end of the module students will be able to construct Prolog programs of all sizes and complexity that implement a range of AI techniques. The students will be able to utilise the skills learnt during this course in many areas: Natural Language Processing and Generation, Knowledge Representation and Reasoning, Database Search, Problem Solving, Planning, Cognitive Modelling, Logic and Theorem Proving, as well as providing computational skills that can be utilised in their MSc project. Lecturer Tim Smith (e-mail: tim.smith (at) ed. ac. uk) Office 9, 2nd Floor/Left, 2 Buccleuch Place. Tel: x504437. Office hours 9am-12pm every Tuesday. Module Description A brief description of the course is available here. The course notes are available here (.ps .pdf) and will be available in hard copy from outside the ITO as soon as possible. Course notes contain all organisational details and weekly practical assignments. Please pick these up as soon as they become available. If you are printing the coursenotes please print two pages per side and duplex as the notes are 200 pages long! Lectures All lectures start at 16:10 and end at 17:00 on Mondays and Thursdays. Lectures are held in A9/11, Ground Floor, Forest Hill. Lecture notes will be posted below in PDF and Microsoft Powerpoint (.ppt) format before each lecture. Hand outs will not be given in the lectures so you may find it useful to print off the slides before each lecture so that you can annotate them (please use this command when printing the slides on DICE, lpr -P
-Zduplex,4up,landscape . Use a similar layout when printing from Powerpoint as well. This will help save paper). Lecture 1 (Thurs 23/09) An Introduction: (.pdf) (.ppt) Lecture 2 (Mon 27/09) Prolog fundamentals: (.pdf) (.ppt) Lecture 3 (Thurs 30/09) Tests, Backtracking, and Recursion: (.pdf) (.ppt) Lecture 4 (Mon 04/10) Recursion, Structures, and Lists: (.pdf) (.ppt) Lecture 5 (Thurs 07/10) List Processing: (.pdf) (.ppt) Lecture 6 (Mon 11/10) Combining Lists and Built-in Predicates: (.pdf) (.ppt) Lecture 7 (Thurs 14/10) Controlling Backtracking: the Cut. (.pdf) (.ppt) Lecture 8 (Mon 18/10) State-Space Search: (.pdf) (.ppt) Lecture 9 (Thurs 21/10) Informed Search: (.pdf) (.ppt) (Mon 25/10) * No Lecture * Lecture 10 (Thurs 28/10) Definite Clause Grammars: (.pdf) (.ppt) Lecture 11 (Mon 01/11) Parsing and Semantics using DCGs (.pdf) (.ppt) Lecture 12 (Thurs 04/11) Input / Output: (.pdf) (.ppt) Lecture 13 (Mon 08/11) Sentence Manipulation: (.pdf) (.ppt) (Thurs 11/11) * Cancelled * Lecture 14 (Mon 15/11) Database Manipulation (.pdf) (.ppt) Lecture 15 (Thurs 18/11) Planning (.pdf) (.ppt) Lecture 16 (Mon 22/11) More Planning and Prolog Operators (.pdf) (.ppt) Lecture 17 (Thurs 25/11) Meta-Interpretation (.pdf) (.ppt) Lecture 18 (Mon 29/11) Beyond the Text and Course Summary (.pdf) (.ppt) Assignments There will be two assessed assignments during AIPP. Together they contribute 30% to your overall course mark. Both assignments are to be submitted using the submit command on DICE. You should put all of your work into one prolog file (commenting out any written sections) and submit the file before the deadline. Details of how to use the submit command will be provided at the end of each assignment. Both assignments require you to develop complete Prolog programs. You may develop these programs at home on a PC or Mac but you must test that they run under the DICE version of sicstus before submission. Assignment 1 (10%): An automatic puzzle solver Assignment 1 available now (04/10/04): Assignment specification (.pdf) (.ps) Prolog template: puzzle_template.pl due in week 7: Monday 1/11 4pm Assignment 2 (20%): Six degrees of Kevin Bacon. Assignment 2 now available (08/11/04): Assignment specification (.pdf) Prolog Movie Database (PMDB) . You should download all of these files to your home directory but only use them as instructed in the assignment specification (* warning they are large files!) actors_1deg.pl actors_2deg.pl actors_Ndeg.pl due in week 11: Friday 10th December at 4pm Practicals All students are required to attend one 2 hour tutorial per week beginning week 2. Practical exercises are published in the course notes (.ps .pdf). Practicals will be held in Computer Lab West, level 5, Appleton Tower. There are two scheduled practical times, Wednesday 4-6pm and Friday 3-5pm. Students should choose the most practical time, register for that session during the first couple of lectures, and then attend that session for the rest of term. Each practical exercise contains sections that need to be shown to a lab demonstrator and signed off on. The demonstrator will keep a log of every students progress to ensure that practicals are being completed at the right time. This will allow them to offer extra assistance to students who are slipping behind. The practicals are not formally assessed and do not contribute to your course grade but their completion is compulsory. Practical code: These Prolog files should be saved locally and modified during the corresponding practical exercises. Practical 4 (week 5) sticks.pl Alteration to practical instructions: The second part of this weeks practical, the Sticks problem, is now optional. Last week's practical exercises should be completed before the Sticks problem is attempted. If you do choose to attempt the Sticks problem then you will find better instructions than those in the course notes included in the sticks.pl file. Practical 5 (week 6) mandc.pl Practical 6 (week 7) grammar1.pl Finish the Missionaries and Cannibals practical from last week before moving on to this DCG practical. Practical 8 (week 9) prac8.pl Finish up to part 5 of last week's I/O practical before starting this. All predicates for this practical should be added to this file. The coursenotes refer to a file eliza.pl, this is contained within this file. Practical 9 (week 10) *Ignore the practical description in the coursenotes. You should work from the specification below. Practical specification: prac9.pdf Monkey and Bananas code: simstrips.pl Examination AIPP will be examined during the summer examination period. The exam counts for 70% of the overall course mark. All material contained in the course notes and the lectures is examinable unless otherwise indicated. Previous exam papers are available here but be aware that this course has changed every year for the last few years. The 03-04 paper contains half Prolog and half Python. 02-03 contains Perl and Prolog. 01-02 was all Prolog and is the most representative of the exam that will be set this year. Requirements and Exemptions AIPP is aimed at students who already have programming experience in a language other than Prolog. If students have little or no programming experience they are advised to take Introduction to Java Programming (IJP). Students may choose to take both IJP and AIPP at the same time (they are both taught in Semester 1) but weaker students should inform me at the beginning of the course. Different MSc degrees have different programming requirements: AI MSc students are required to know Java and Prolog by the end of their MSc. Cognitive Science and Natural Language MSc students have to learn either Prolog or Java. Speech and Language Processing MSc have to learn either Prolog or Java. Students can be made exempt from learning a required language if they can show sufficient previous experience with that language (either having taken a taught course in it or used it competently in industry). Students should contact their specialism supervisor for exemptions. Software In AIPP we will use Sicstus Prolog which is installed on the DICE network and accessible from any terminal by typing sicstus at the command line. A free version of Sicstus Prolog for Windows is available for all Informatics students. Fill in the Informatics Support form to request a copy (http://www.inf.ed.ac.uk/cgi-bin/support.cgi). You are free to work on assignments on a Windows PC but all submitted code should work on the DICE installation of Sicstus. Therefore, please test all code on the DICE system before submission. References There is no required text book for AIPP, all essential information is included in the course notes and the lectures. However, there are three books which may be of interest (listed in order of relevance): Clocksin, W.F. and Mellish, C.S., Programming in Prolog: Using the ISO Standard (5th edition), 2003. A good basic introductory text. This is the most up to date text book and conforms to the new ISO standard Prolog. This is the form of Prolog that will be taught in AIPP. If you choose to use a text book other than Clocksin and Mellish refer to the course notes for correct syntax. Doesn't contain many of the AI components of the course. Bratko, I., Prolog Programming for Artificial Intelligence (3rd edition), 2001. An introductory book that leans heavily towards AI applications. It's structure resembles that of AIPP more than Clocksin and Mellish. Occasionally uses a poor programming style and incorrect syntax. Refer to course notes for correct syntax. A major source of example AI programs. Sterling, L. and Shapiro, E., The Art of Prolog (Second edition), 1994. Possibly the best general Prolog book around, but definitely not an introduction, especially if you don't have much programming experience. Useful Links Sicstus Prolog manual Learn Prolog Now! by Patrick Blackburn, Johan Bos, and Kristina Striegnitz Sicstus homepage The Internet Movie Database (IMDB) Top | Lecturer | Module Description | Lectures | Assignments | Practicals | Exam | Exemptions | Software | References | Links Home : Teaching : Courses 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