CS 461
Course Title: Introduction to Logic Programming
Time: 1:10 PM -- 2:25PM, TTH
Place: SH113
Instructor: Gopal Gupta
Email: gupta@nmsu.edu
Office & Phone: SH155, 646-6236
Office Hours: Thu. 11:45--12:45 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.
(2 copies of this book are on reserve in the library).
TA: Rezwanul Kabir, SH146, Phone: 646 4055, email: rkabir@cs.nmsu.edu,
Office Hours: TBA.
Course Content
We will begin with
propositional and predicate
logic, then cover automatic theorem proving (4 weeks). We will
see how automatic theorem proving
led to emergence of logic programming.
Next we will learn to program in Prolog,
the most popular logic programming language (8 weeks).
This will be followed by advanced logic programming
techniques as well as their applictions (3 weeks), followed
by constraint logic programming
(2 weeks).
We will cover about 4.5 chapters
of the Chang and Lee Book, and about 16 chapters from
Sterling and Shapiro's book. If you do all the assignments,
and attend all classes, you should be a reasonably proficient
Prolog 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.
Pre-requisite:
Knowledge of programming and discrete
Math (CS330 or equivalent, and CS272 or equivalent).
Approach
This will be a lecture/discussion oriented course.
Home assignments will consist of
exercises and readings from the text.
There will be some programming assignments
as well, to give hands-on experience with
the Prolog language. A programming assignment 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. Towards the end of the course
you will have to do a project, which will typically
involve writing a large Prolog program for doing something
practical (I'll give suggestions for projects).
Grading
Your grade in the course will be based on grades
you get in your homework assignments (30%), mid-semester exam
(25%), course project (10\%) and the final exam (35%).
All programming assignments will have to be turned in
to receive a passing grade. The finished project is also
required in order to receive a passing grade.
The mid-semester exam will be held before the drop date.
Excessive absence from class is not permitted.
If you are taking this course for an S/U, you need at least
a B-.
Assignments and Prolog Resources
You can use any Prolog system to do your assignment (except
Borland Prolog). Sicstus Prolog
is available in the CS domain (source /local/config/cshrc.sicstus)
and then run sicstus. The manual is available online both
locally (click for manual on the intranet), as well
as at SICS.
(Swedish Institute of Computer Science)
(click here
for manual at SICS).
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. See
Prolog resource guide for other Prolog implementations. A free
GNU-Prolog
is also available now.
\noindent
All assignments will be due in class. Late assignment penalty is
10% per day.