CS6374: Computational Logic
Course Title: Computational Logic
Time: MW 4:00-5:15
Place: JO 3.516 (may change)
Office & Phone: ECS 4.908A, 972-883-4107
Office Hours: Tue 3:00-4:00pm
TA's Office and Office Hours:
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 and automated theorem proving (4 weeks), followed by
learning logic programming and programming in Prolog,
the most popular logic programming language (7 weeks). Subsequently, we will
study advanced logic programming techniques as well as their applications (3
weeks), constraint logic programming (2 weeks), and answer set programming (2 weeks).
cover about 16 chapters from Sterling and Shapiro's book
and 4.5 chapters of the Chang and Lee Book (on mechanical theorem
you do all the assignments, and attend all classes, you should be a reasonably
proficient Prolog/Constraint programmer by the end of the course. 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 will also be given.
You are allowed to discuss the assignments with other students but the work
should be your own.
Your grade in the course will be based on grades you get in your homework
assignments (20%), mid-semester exam (25%), project (10%),
final exam (40%). 5\% of the grade will be
based on class participation, etc., and
is based on instructor discretion.
Assignments and Prolog Resources
You can use any Prolog system to do your assignment.
The Prolog system available on our Unix machines (apache, jupiter, inca,
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 Jupiter, Apache, etc. (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.
All assignments will be due in class. Please do not submit assignments
by email, sumbit them in hard copy or through eLearning.
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
Suggestions for course project (optional): click here
Prolog Programming Competition held at ICLPs: click here
The grammar file for DCG homework click here