100 likes | 115 Views
Learn Prolog programming step-by-step with lectures on logic, syntax, unification, lists, recursion, backtracking control, and more. Coursework involves coding tasks while exams test AI concepts and Prolog skills. Follow the lecture plan and utilize recommended books to excel. Attend sessions and complete practical work diligently to succeed.
E N D
Symbolic AI www.cems.uwe.ac.uk/~ryang/prolog/top.html weeks of even numbers Lecture Monday 13:00-14:00 (2Q50) Lab Sessions (five groups, all in 2Q52) Monday 14:00 , 15:00 Tuesday 11:00, 15:00 , 16:00
Assessment Method • Coursework 40% (Coding in Prolog) Examination 60% (4-5 questions in AI 1 question in Prolog) • How to Pass the coursework Don’t miss lectures, and always finish practical work on time.
A Preliminary Plan for this Term • Lecture 1: Introduction, Logic Formulas, Logical Inferences • Lecture 2: Syntax and Semantics of Prolog • Lecture 3: Unification, Proof Tree • Lecture 4: Lists, Recursions • Lecture 5: More on Lists, Some Prolog Built-ins • Lecture 6: A Case Study • Lecture 7: Modifying Programs Dynamically/Controlling Backtracking • Lecture 8: Natural Language processing • Lecture 9: Input and Output Closed World Assumption • Lecture 11: Comparing with Others Languages • Lecture 12: Revision (out of date, be aware of changing)
Books • Prolog Programming by Paul Brna (a free copy available for everyone) • Logic Programming and Prolog by Ulf Nilsson and Jan Matuszynski • Prolog – Programming for AI by Ivan Bratko
Imperative Procedure oriented C, Fortran Object oriented C++, Java Declarative Functional langauge Haskell Logic language Prolog (PROgramming in LOGic) Programming Languages
Background - Logic • Logic: a tool for reasoning • Logical formulas: a formal way to describe things • Logical Operators: ‘and’ , ‘or’ , ‘not’ , ‘imply’
Examples Mary loves Tom => Every mother loves her children => loves(mary, tom) VX VY(loves(X,Y) <- mother_of(X,Y)) Logical Formulas
The most popular boy’s name in 1800 is John. The second popular boy’s name in 1800 is Thomas. A popular boy’s name within a year means that the name is listed in the top 50 list. ( :- means <- ) boy_names( john, 1800, 1). boy_names( thomas, 1800, 2). pop_boy_names(X,Year) :- boy_names(X,Year,P), P =< 50. Logical Formulas (more examples)using: boy_names(Name, Year, Pos)
A Famous `Equation` Algorithm = Logic + control (by Rob Kowalski ) Example: What is the length of a list? Find who is Fred’s grandparents