CS6374: Computational Logic
Course Title: Computational Logic
Time: MWF 10:30-11:45
Place: ECSS 2.201
Instructor: Gopal
Gupta
Email: gupta@utdallas.edu
Office & Phone: ECS 4.907, 972-883-4107
Office Hours: Tuesday 1-3pm
TA: TBA
TA's Office and Office Hours: TBA
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. (1 copy of this book will be placed
on reserve in the library). A free book on logic programming on the internet:
Logic, Programming and
Prolog (2ed) by Ulf Nilsson and Jan Maluszynski
Course Content
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), and constraint logic programming (2 weeks).
We will
cover about 16 chapters from Sterling and Shapiro's book
and 4.5 chapters of the Chang and Lee Book (on mechanical theorem
proving). 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. 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 as well
as formal methods in software engineering. You'll also develop a better
appreciation for logic, the basis of all of computer science.
Pre-requisite:
Knowledge of Programming in a traditional language, Discrete Mathematics
(CS 5333), and Data Structures (CS 5343).
Approach
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.
Grading
Your grade in the course will be based on grades you get in your homework
assignments (30%), mid-semester exam (30%), and the
final exam (40%).
Assignments and Prolog Resources
You can use any Prolog system to do your assignment (except Borland Prolog).
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, I prefer hard copy.
Homework Submission Procedure can
be found here.
General Information on Constraint Programming 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