To provide a grounding in the AI programming language Prolog.
- Introduction (3 lectures): What is Artificial Intelligence? Characterisation of AI; historical overview; intelligent agents; agents’ environments; applications of AI; current state-of-the-art.
- Problem-Solving Through Search (7 lectures): Problem formulation; uninformed search strategies; informed search strategies; search in complex environments; adversarial search.
Knowledge Representation (4 lectures): Characterisation plus advantages and disadvantages of rule-based systems, semantic networks, ontologies and logics. Example applications of different knowledge representation schemes.
- Logic (4 lectures): Reasoning in propositional and first-order logic.
- Planning (3 lectures): Representing planning problems; classical planning approaches, including search, heuristics and satisfiability; planning in complex environments.
- Learning (4 lectures): Different forms of learning; logic and learning; reinforcement learning.
- Basics of Prolog (5 lectures): Facts, rules and queries; recursion; lists; negation as failure.
- S. Russell and P. Norvig: Artificial Intelligence: A Modern Approach. Prentice Hall, (latest edition).
- I. Bratko: Prolog Programming for Artificial Intelligence. Addison Wesley, (latest edition).
At the end of this module, students should be able to:
identify, contrast and apply to simple examples the major search techniques that have been developed for problem-solving in AI;
distinguish the characteristics, and advantages and disadvantages, of the major knowledge representation paradigms that have been used in AI, such as production rules, semantic networks, propositional logic and first-order logic;
solve simple knowledge-based problems using the AI representations studied;
identify or describe approaches used to solve planning problems in AI and apply these to simple examples;
identify or describe the major approaches to learning in AI and apply these to simple examples;
identify or describe some of the major applications of AI;
understand and write Prolog code to solve simple knowledge-based problems.
Formal lectures: Students will be expected to attend three hours of formal lectures in a typical week. Formal lectures will be used to introduce students to the concepts and methods covered by the module, reinforced by practical illustrations and exercises.
Practicals: Students will be expected to attend five hours of supervised computer lab practicals to coincide with the teaching of the Prolog material. Computer lab practicals are intended to allow students to undertake practical exercises and get involved in hands-on learning of the Prolog programming language.
Private study: In a typical week students will be expected to devote six hours of unsupervised time to private study; private study will provide time for reflection and consideration of lecture material, background reading and study for the assessment tasks.
Assessment: Continuous assessment will be used to test to what extent knowledge of the lecture material has been learnt and also to test practical skills. A final examination at the end of the module will assess the academic achievement of students.