cps721: Introduction to AI  

CPS721: Introduction to Artificial Intelligence


 

Links

Wikipedia: Recursion in computer science is a method where the solution to a problem depends on solutions to smaller instances of the same problem.

Eric Roberts wrote a well-known book about recursion: "Thinking recursively with Java", published by John Wiley, 2005 (ISBN: 978-0-471-70146-0, paperback, 192 pages).

Video recording of a lecture: Thinking Recursively by Julie Zelenski from Stanford University (Computer Science II: Programming Abstractions, Lecture 9 of 27).

Consult your textbook on data structures (CPS305): it should include a section or a chapter on recursion. Also, You can find a good explanation of recursion in this book: Ronald L. Graham, Donald E. Knuth, Oren Patashnik   "Concrete Mathematics: A Foundation for Computer Science" Addison-Wesley, 1994 (Errata).

Tutorials on Prolog

An introductory on-line Prolog course   designed by Patrick Blackburn, Johan Bos, Kristina Striegnitz.

A more advanced Prolog course: Prolog Tutorial written by John R. Fisher, Computer Science Department, California State Polytechnic University, Pomona, California USA.
 

Implementations of Prolog

For students who would like to install a Prolog system at home: no technical support can be provided regarding installation of any software on computers at home.

It is recommended to use ECLiPSe Constraint Logic Programming System installed in labs when you work on assignments. A personal copy of this software is available for download (free of charge for students) from this Web page. Release 5.10 is recommended for CPS721. Do not click on a big green button on that Web page (it is linked to a Solaris release that runs only on Sun machines), but go to "View all files" (next to a big green button) and download a stable 5.10 release for your operating system at home.
This software is owned by Cisco Technology and is distributed by CrossCore Optimization Ltd under a licence. It has been developed at IC-Parc, Imperial College, London, UK (and previously at the European Community Research Center). There are distributions for all major OS (Linux, OS X, Solaris, Windows). An approximate size of a self-extracting executable file for Windows machines is about 25Mb. (Note that this software is not related to "Eclipse Platform".)

 
A few students used successfully SWI Prolog - an open source version of Prolog. It is available for Linux, MS-Windows, MacOS machines. However, this implementation of Prolog is slightly different from the recommended ECLiPSe Prolog. The most important differences are discussed in class.

 
Another version of a Prolog system (for Linux and Windows) can be used for the 1st and 2nd assignments only. It is NOT recommended for other assignments. You have to pay for a personal copy at AMZI, Inc (a free trial version runs for 30 days only). You might need to download several components to run this software on your machine and this version can be more difficult to install at home. In particular, starting from the release 7 of AMZI Prolog, you will need to install also the Eclipse IDE (an open development platform for building, deploying and managing software across the lifecycle). Note that recent releases of AMZI are different from the AMZI Prolog (release 6.1.59) installed in Labs (on the shared drive "O" in "Program Files") on Windows machines. The older release 6.1.59 is easier to start with than the release 7, but it is not recommended (it is slow and it has a few peculiarities you will want to avoid).
 


Mikhail Soutchanski