Some more specific tips on reading Sterling & Shapiro's book, ID1213, ID2213, Logic Programming. updated 2016-07-20 –Thomas S. This is not a course where you are expected to learn the content by heart but rather you show your understanding of the material through your ability to solve problems. Towards the end of this file you find a listing of exercises that are recommended. I here write Lx for Lecture x (where x is one of 1,2,3,4,5,6,7) For L1 I suggest reading chapters 1,2,4,5 You can safely skip 2.4, 2.5, 4.3, 5.2, 5.3, 5.5 and 5.6 For L2 I suggest reading chapters 3,4,5,6,7,8 and 13 You can skip 3.6, 4.3, 5.2, 5.3, 5.5, 5.6, 6.3, 7.3, 7.6, 13.3 and 13.4 For L3 I suggest reading chapters 7,8 and 15. You should also read 13.3 here, but 13.4 can be skipped The textbook uses the infix operator '\' to indicate difference lists. My examples use '-'. As you know the choice of operator is irrelevant. A good idea is to use an operator that has no other meaning in your data. Otherwise programs might be quite unreadable. For L4 I suggest reading chapters 5.5, 11, 14, 20 and 21 You can skip 11.7 and 14.4 For L5 I suggest reading chapters 19 and 24. For L6 I consider a few examples taken from other textbooks. There is somewhat corresponding text in S&S in in chap 17.1. For meta-programming I suggest reading chapters 10,13,16,17, 18 and 22. You can skip 17.5 ch 10 covers basic predefined predicates for metaprogramming. ch 17.2 -17.4 are related to programming techniques with meta-interpreters. Chap 22 describes an expert system witten in Prolog. The techniques of extending a meta-interpreter for "vanilla Prolog" to form an expert system are found in the older textbook N&M. (copies are on the course web). For L7 I suggest reading chapter 24 and of course the separately distributed copies from Clocksin's book. Exercises from Sterling and Shapiro "The Art of Prolog 2 ed" organised according to the lecture structure (more advanced exercises not listed, or as (---) can be used for projects). The textbook contains exercises for most chapters. Below you find a selection of them that can be useful. The other exercises are not irrelevant, but in most cases I consider them to be more complicated. Lecture 1 ch1 - What is the essence of logic programming? (computation, meaning of a program) ch2 2.1.1 (i) (ii) (iii) 2.2.1 (i) (ii) (iii) 2.3.1 (i) (ii) ch 4 4.1.1 (i) (ii) 4.2.1 (i) (ii) (iii) ch 5 5.4.1 (i) (ii) Lecture 2 ch 3 3.1.1 (i) (iv) (v) (viii) 3.2.1 (ii) (iii) (v) 3.3.1 (i) (ii) (iii) (iv) (v) 3.4.1 (i) (ii) (iii) (iv) (v) 3.5.1 (i) (iii) (iv) (v) ch 6 6.1.1 (i) (ii) (iii) ch 7 7.1.1 (i) (ii) 7.2.1 (i) (ii) 7.3.1 (i) (ii) 7.5.1 (i) ch 8 8.2.1 (i) (ii) (iii) 8.3.1 (i) (ii) (iii) (iv) (v) (vi) (vii) (viii) Lecture 3 ch 13 13.3 (i) (ii) ch 15 15.1 (i) (ii) (iii) 15.2 (i) (ii) (iii) (iv) Lecture 4 ch 11 11.1 (i) (ii) (iii) 11.3 (---) 11.4 (ii) ch 14 14.1 (i) (ii) (v) (vi) 14.2 (ii) ch 20 20.1 (ii) (iii) Lecture 5 ch 19 (---) ch 24 (---) Lecture 6 ch 16 16.1 (i) 16.2 (---) 16.3 (---) ch 17 17.2 (i) (ii) (iii) (iv) 17.4 (---) ch 18 (18.1 18.2 18.6 ---) ch 19 --- Lecture 7 -- tasks from Clocksin. I hope this was somewhat enlighting, and didn't look too scary. The textbook is rather thick, but this is mainly because the authors have put a lot of effort into explaining examples in full detail. - Thomas S. PS. For ID2213: If you have a problem finding out a good project task, I suggest that you pick a topic from the textbook, and then solve some of the more advanced exercises for that topic (mostly those not listed here). With a nice and concise report and presentation this makes a perfect task for the project part of the course. DS.