CS 461


Course Information (http://www.cs.nmsu.edu/~gupta/Classes/CS461)

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.

Click here to see the assignments.