60 likes | 220 Views
Peter Stuckey (Melbourne). Involved in LP + CP since 1986 Taught logic programming (honours) courses since 1991 Taught constraint programming course since 1995 (authored text) Only taught the undergraduate LP course once (2002). Objectives Logic+Computation. Learn to reason formally
E N D
Peter Stuckey (Melbourne) • Involved in LP + CP since 1986 • Taught logic programming (honours) courses since 1991 • Taught constraint programming course since 1995 (authored text) • Only taught the undergraduate LP course once (2002)
Objectives Logic+Computation • Learn to reason formally • propositional and predicate calculus • Proofs (axiomatic and resolution style) • Learn to program in a logic programming language • Prolog programming • Learn of simple models of computation
LP at Melbourne • 433255 Logic and Computation • 300 + 120 students in 2 semesters • Prop. and Pred. Logic, Prolog, • 433471 Logic Programming (Honours) • 25 students • Theory, Mercury, Adv. Prog., Debugging, Implementation • 433671 Constraint Programming (Masters) • 25 students • Constraints, CLP, FD, search.
How we teach 433255 • Prolog (SB-Prolog because its free) • Propositional, Terms, Arithmetic, Backtracking. • Propositional calculus • Axiomatic proof systems, resolution • Prolog • I/O, parsing, =.. • Predicate calculus • Axiomatic systems, unification, resolution, • Other stuff • FSM, Complexity, LP semantics
How I’d like to teach 433255 • Stay in the intersection of executable logic • Horn propositional logic (prop. logic programs) • Forward chaining viewpoint first, backward second • Full propositional logic (interactive lin. resolution) • Predicate calculus, quantifiers, terms • Horn clause (CHRs and Prolog) • Forward chaining (CHRs) first, Prolog second • Prolog (negation, if-then-else, …) • Full resolution (Otter) • Constraint Programming (CLP)
To Conclude • What about constraint programming? • Sadly, I am moving away from a CLP approach • Why? • In most cases a simple conjunction of primitive constraints is enough • Data structure manipulation in Prolog is hard for novices • But • Explaining/programming search in any other CP language is torture!