CS6374: Computational Logic
Course Title: Computational Logic
Time: Friday 2:00-4:45
Place: ECSS 2.203
Email: [email protected]
Office & Phone: ECS 4.909, 972-883-4107
Office Hours: MW 4-5
TA: Farhad Shakerin (fxs130430 @ utdallas.edu)
TA's Office and Office Hours: Open Lab 2.104A1; Wed 1-3 PM
Text Book: The Art of Prolog (2nd ed.) by L. Sterling and
E. Shapiro, MIT Press.
Suppl. Text: Symbolic Logic and Mechanical Theorem Proving
by C. L. Chang and R.C.T. Lee, Academic Press.
A free book on logic programming on the internet:
Logic, Programming and
Prolog (2ed) by Ulf Nilsson and Jan Maluszynski
We will begin by learning
logic programming and programming in Prolog,
the most popular logic programming language (6 weeks). Subsequently, we will
study answer set programming (2 weeks), constraint logic programming (2 weeks), and
advanced logic programming techniques as well as their applications (3
weeks). We will also study inductive logic programming. If we get time, we will study
automated theorem proving.
We will also do a project developing a common sense reasoning application
using the s(ASP) system. The project will be a major part of the course.
If you do all the assignments, and attend all classes, you should be a reasonably
proficient Prolog/Constraint programmer by the end of the course. You will have a
good understanding of answer set programming as well. Learning logic
programming has a number of advantages: you will develop a better understanding
of computer science and improve your programming as well as problem solving
skills. You will also develop a better background for learning AI and automated
reasoning techniques as well
as formal methods in software engineering. You'll also develop a better
appreciation for logic, the basis of all of computer science.
Knowledge of Programming in a traditional language, Discrete Mathematics
(CS 5333), and Data Structures (CS 5343). This is a fast-paced course,
meant only for serious students
This will be a lecture/discussion oriented course. Home assignments will
consist of exercises and readings from the text. There will be programming
assignments as well, to give hands-on experience with the Prolog language.
Programming assignments on constraint logic programming and answer set programming
will also be given.
You are allowed to discuss the assignments with other students but the final work
should be your own.
Your grade in the course will be based on grades you get in your homework
assignments (10%), mid-semester exam (25%), project (25%),
final exam (35%). 5\% of the grade will be
based on class participation, etc., and
is based on instructor discretion. These percentages
can change at the discretion of the instructor.
Assignments and Prolog Resources
You can use any Prolog system to do your assignment.
The Prolog system available on our Unix machines (apache, cslinux,
etc.) is SWI-Prolog.
If you have a home PC and would like to do programming
assignments at home, I recommend SWI Prolog that
is available free over the net. SICSTUS Prolog is now available
locally on apache.utdallase.edu.(click
here for manual). See the
Prolog resource guide for other Prolog implementations A free GNU-Prolog is
also available. Note that constraint logic programming assignments can
only be done on SICStus Prolog. We will also be using s(ASP), a predicate
answer set programming system developed by my group (it is really
Prolog extended with negation based on stable model semantics). You can download
the system from: http://sourceforge.net/projects/sasp-system/.
All assignments will be submitted on eLearning (or hard copy in class). Please do not submit assignments
General Information on Constraint Programming click here
A tutorial on CLP by Helmut Simonis click here
CLP(FD) code for 8-queens (runs under SICStus): click here
CLP(R) code for rail-road crossing (runs under SICStus): click here
Prolog Programming Competition held at ICLPs: click here
The grammar file for DCG homework click here