| No. | Date | Topic |
|---|---|---|
| 1. | 17.2 | Introduction to declarative programming languages. Comparison to classical imperative languages. Introduction to programming for artificial intelligence. |
| 2. | 24.2 | Lisp and Scheme: basic language idioms, atoms, lists, recursion. |
| 3. | 3.3 | Scheme: lambda abstraction, built-in functions, advanced data structures. |
| 4. | 10.3 | Scheme: relations between iterations and tail recursion optimisations guaranteed by the language standard, built-in high-order functions. |
| 5. | 17.3 | Scheme: state space search, applications in artificial intelligence. |
| No. | Date | Topic |
|---|---|---|
| 6. | 24.3 | Haskell: types, patterns, built-in functions, lambda abstraction. |
| 7. | 31.3 | Haskell: advanced properties of the language in comparison to Scheme. |
Prolog (we follow Peter Flach's Simply Logical course book)
| No. | Date | Topic |
|---|---|---|
| 8. | 7.4 | Prolog: facts, rules and queries. Recursion. Query answering. |
| 9. | 14.4 | Functions, unification, list operations. |
| 10. | 21.4 | Prolog and logic: clauses, Herbrand base, interpretation, model, closed-world assumption, decidability. |
| 11. | 28.4 | Cut and negation. Extralogical operators, arithmetics. |
| 12. | 5.5 | Combinatorial search in Prolog. |
| 13. | 12.5 | Constraint logic programming. |
| 14. | 19.5 | Definite clause grammar. |