Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456 CS 6374; Computational Logic
Course Title: Computational Logic Time: MW 4:00-5:15 Place: ECSS 2.412 (may change) Instructor: Gopal
Gupta Email: gupta@utdallas.edu Office & Phone: ECS 4.908A, 972-883-4107 Office Hours: Tue 3:00-4:00pm TA: Neda Saeedloei (nxs048000@utdallas.edu) 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.
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). This is a fast-paced course,
meant only for serious students
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 (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, I prefer hard copy.
Homework Submission Procedure can
be found here.