Course pages 2012–13
Course materials this year are available on the dedicated site, http://prolog.cl.cam.ac.uk/. If you experience problems with the site, please email one of the course lecturers.
The assessed exercise should be completed by midday on Friday 25th January, with viva examinations taking place on Thursday 31st January and Friday 1st February.
Update (19-Dec-2012): In order to avoid a large number of duplicate solutions you should constrain your puzzle predicate to fix the first piece in the input list to be in slot 0. Our tests that your code can check (as well as generate solutions) will work within this constraint.
Update (27-Dec-2012): Here is a test program you can use to test your solution: test.pl. This can be used from the command line on Linux PWF as follows: swipl -t "load_files(['crsid.pl','test.pl'])"
Update (27-Dec-2012): You should constrain the first piece to be in orientation 0 as well as position 0 in order to remove duplicates
Errors in the lecture videos and questions are indexed by video number (V), slide number (S) and time (T).
|8||6-9||4:30||Video and audio are not quite in sync||(under investigation)||awc32, vbt22|
|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|
|7||The anagram file referred to in the video is not available online||We've put this file on the video website||lm510|
|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|
|The advice about using A-A as an empty difference list can create complications with occurs checking.||Added a new video 'Empty Difference Lists' which explains ways which you can solve the problem||sfff2, sa614|