CS6374: Computational Logic

http://www.utdallas.edu/~gupta/courses/lp

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