CS6374: Computational Logic
Course Title: Computational Logic
Time: MW 10:00-11:15
Place: SCI 2.225
Instructor: Gopal
Gupta
Email: gupta@utdallas.edu
Office: ECSS 3.803 & Phone: 972-883-4107
Office Hours: MW 11:30-12:30pm
TA: TBA
TA's Office and Office Hours: TBA
Text Books:
- The Art of Prolog (2nd ed.) by L. Sterling and E. Shapiro, MIT Press.
- Knowledge Representation, Reasoning, and the Design of Intelligent
Agents: The ASP approach by M. Gelfond and Y. Kahl, Cambridge Univ. 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 web:
Logic, Programming and
Prolog (2ed) by Ulf Nilsson and Jan Maluszynski
- Computational Logic and Human Thinking by Rober Kowalski, Cambridge
University Press
- Programming with Constraints by Kim Marriott and Peter Stuckey, MIT Press
Course Content
We will begin by learning
logic programming and programming in Prolog,
the most popular logic programming language. Subsequently, we will
study answer set programming, constraint logic programming, and
advanced logic programming techniques as well as their applications to
knowledge representation and common sense reasoning.
We will also study propositional logic, predicate logic and
automated theorem proving, if time permits.
We will also study inductive logic programming (machine learning of logic
programs), if time permits.
Everyone will be required to complete a project developing a common sense reasoning application
using the s(CASP) system developed at UT Dallas or the s(CASP) engine available under SWI-Prolog.
If you do all the assignments, and attend all classes, you should be a reasonably
proficient Prolog programmer by the end of the course. You will have a
good understanding of logic, logic programming, answer set programming as
well as building knowledge representation systems. 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.
Pre-requisite:
Knowledge of Programming in a traditional language, Discrete Mathematics
(CS 5333), and Data Structures (CS 5343). This is a fast-paced, demanding 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 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.
Grading
Your grade in the course will be based on grades you get in your homework
assignments (25%), mid-semester exam (25%), project (10%) [see project ideas],
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. It is also available on our local unix machines.
SICSTUS Prolog is also available
on local unix machines (click
here for manual).
A free GNU-Prolog is
also available.
We will also be using s(CASP), 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 here or you can use the s(CASP) engine available under SWI-Prolog. with SWI-Prolog.
The s(CASP) system can also be installed on our linux machines (cslinux1, cslinux2, cslinux3, babbage). Installation instructions for s(CASP) on unix machines are here. Installation instructions for s(CASP) under SWI-Prolog are here.
All assignments will have to be submitted on eLearning. Please do not submit assignments by email.
Click here to see the tentative list of assignments
Prolog Resources
CLP Resources
ASP Resources
All UT Dallas policies that are relevant apply and can be found here
All UT Dallas academic support resources can be found here
All students must follow the UT Dallas student code of conduct