Next: Introduction to Security
Up: Lent Term 1999: Part
Previous: Digital Communication I
Lecturer: Dr W.F. Clocksin
(wfc@cl.cam.ac.uk)
No. of lectures: 12
This course is a prerequisite for Artificial Intelligence (Part II).
- Introduction.
- History, syntax, semantics, getting started running programs.
- Goals.
- Clauses, procedures, backtracking.
- Data structures and unification.
- Recursion in data and process. Variables are holes in data structures.
- List processing.
- Some practical programming examples.
- Mappings.
- Some principles of structuring problem solving.
- Accumulators.
- Ways of constructing tail-recursive procedures from specifications.
- Difference structures.
- Probably the best programming technique ever invented.
- Computing with difference structures.
- Ways of exploiting the above.
- Modifying backtracking.
- Ways of specifying control over the default chronological backtracking
execution rule.
- Case studies.
- The remaining lectures are case studies that demonstrate larger programs
and use the programming techniques previously introduced. The case
studies are chosen from an ever-changing set including formula
manipulation, digital circuit analysis, knowledge representation, the
Fast Fourier Transform, compiling procedural languages.
Recommended books:
Clocksin, W.F. (1997). Clause and Effect: PROLOG Programing for
the Working Programmer. Berlin: Springer-Verlag.
Bratko, I. (1986). PROLOG: Programming for Artificial
Intelligence. Addison-Wesley.
Shoham, Y. (1994). Artificial Intelligence Techniques in PROLOG.
Morgan Kaufmann.
Next: Introduction to Security
Up: Lent Term 1999: Part
Previous: Digital Communication I
Christine Northeast
1998-10-01