Department of Computer Science and Technology

Course pages 2018–19

Prolog

Course materials this year are available on the dedicated site, http://prolog.cl.cam.ac.uk/ls/teaching/1819/prolog. Copies of the lecture slides and question sets are also available on this site. If you experience problems with the site, please email the lecturer.

This year I have been answering questions from the videos during the lecture slots. Here are the slides:

  1. Lecture 1
  2. Lecture 2
  3. Lecture 3
  4. Lecture 4
  5. Lecture 5
  6. Lecture 6
  7. Lecture 7
  8. Lecture 8

Errata

Errors in the lecture videos and questions are indexed by video number (V), slide number (S) and time (T).

ErrataCorrigeFrom
15bNo slide or question indexSlide and question index builtrsa33
1210divintdiv (div is an infix operator in some versions of prolog)hp343
86-94:30Video and audio are not quite in sync(under investigation)awc32, vbt22
7138queenseightQueensns532
7When asking to generalise from 8-Queens to n-Queens its not clear what the chessboard size should doYou should generalise to n-Queens on an nxn chessboardcdk23
38The text typed during the lecture on this slide should read rule2 rather than rule.Correct....jp581
38Implicit binding of the exists quantifier is too large. This is important because otherwise the statement holds when thing(1,2) and thang(2) is true but rule2(1) is false - this happens because false implies anything and the overlarge capture of the exists allows you pick a z for which the LHS is false.There should be an open bracket before the exists and a close bracket before the implication arrowjp581
8610:00eval(mult(A2,B2),C2) :- eval(A2,A3),eval(B2,B3), C2 is A2*B2 is incorrect.It should read C2 is A3*B3.mjh233
1723The domain of P is {1,2,3,4}The domain of P is {1,4}.arg58