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:
Errata
Errors in the lecture videos and questions are indexed by video number (V), slide number (S) and time (T).
V | S | T | Errata | Corrige | From |
---|---|---|---|---|---|
15b | No slide or question index | Slide and question index built | rsa33 | ||
12 | 10 | div | intdiv (div is an infix operator in some versions of prolog) | hp343 | |
8 | 6-9 | 4:30 | Video and audio are not quite in sync | (under investigation) | awc32, vbt22 |
7 | 13 | 8queens | eightQueens | ns532 | |
7 | When asking to generalise from 8-Queens to n-Queens its not clear what the chessboard size should do | You should generalise to n-Queens on an nxn chessboard | cdk23 | ||
3 | 8 | The text typed during the lecture on this slide should read rule2 rather than rule. | Correct.... | jp581 | |
3 | 8 | Implicit 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 arrow | jp581 | |
8 | 6 | 10:00 | eval(mult(A2,B2),C2) :- eval(A2,A3),eval(B2,B3), C2 is A2*B2 is incorrect. | It should read C2 is A3*B3. | mjh233 |
17 | 23 | The domain of P is {1,2,3,4} | The domain of P is {1,4}. | arg58 |