The course consists of tutorials with exercises in graded order of difficulty, followed by case studies demonstrating a variety of applications. History, syntax, semantics, getting started running programs. Clauses, procedures, backtracking. Data structures and unification. Recursion in data and process.
Variables are holes in data structures.
Some practical programming examples. Some principles of structuring problem solving. Ways of constructing tail-recursive procedures from specifications. Probably the best programming technique ever invented. Computing with difference structures.