Course Overview
Logic Programming is a style of programming based on Symbolic Logic. In recent years, there has been increasing interest in Logic Programming due to applications in deductive databases, automated worksheets, Enterprise Management (business rules), Computational Law, and General Game Playing.
This course is an introduction to Logic Programming theory, current technology, and popular applications. Work in the course takes the form of lectures, readings, online exercises, programming assignments, and a term project.
There will be twenty in-person class sessions - on Tuesdays and Thursdays from 1:30 pm - 2:50 pm. See the table below for a summary of the topics of these sessions. Note that you should attend all sessions. We will occasionally present material in class that is not in the notes, and the sessions will not be recorded.
| Date | Topic | Location | Time |
| March 31 |
Introduction |
Hewlett 201 |
1:30 - 2:50 |
| April 2 |
Datasets |
Hewlett 201 |
1:30 - 2:50 |
| April 7 |
Relational Queries |
Hewlett 201 |
1:30 - 2:50 |
| April 9 |
Query Evaluation |
Hewlett 201 |
1:30 - 2:50 |
| April 14 |
Functional Queries |
Hewlett 201 |
1:30 - 2:50 |
| April 16 |
Transitions |
Hewlett 201 |
1:30 - 2:50 |
| April 21 |
Views |
Hewlett 201 |
1:30 - 2:50 |
| April 23 |
View Evaluation |
Hewlett 201 |
1:30 - 2:50 |
| April 28 |
Simple Examples |
Hewlett 201 |
1:30 - 2:50 |
| April 30 |
Lists, Sets, Trees |
Hewlett 201 |
1:30 - 2:50 |
| May 5 |
Functions |
Hewlett 201 |
1:30 - 2:50 |
| May 7 |
Operations |
Hewlett 201 |
1:30 - 2:50 |
| May 12 |
Applications |
Hewlett 201 |
1:30 - 2:50 |
| May 14 |
Worksheets |
Hewlett 201 |
1:30 - 2:50 |
| May 19 |
Incomplete Data |
Hewlett 201 |
1:30 - 2:50 |
| May 21 |
Goals and Constraints |
Hewlett 201 |
1:30 - 2:50 |
| May 26 |
Advanced Logic Programming |
Hewlett 201 |
1:30 - 2:50 |
| May 28 |
Past Projects |
Hewlett 201 |
1:30 - 2:50 |
| June 2 |
Project Reports |
Hewlett 201 |
1:30 - 2:50 |
| June 4 |
Project Reports |
Hewlett 201 |
1:30 - 2:50 |
All of the course materials are online here. There are links to lessons, additional readings, the Epilog language, the Sierra interactive development environment, examples, games, and an online discussion forum. Click the tabs at the top of this page to access this content. The Lessons tab is your friend. Use it. And be sure to check this page frequently, as we will be posting periodic updates here.
If you are desperate for a printed version of the course text, click on the image below to purchase a copy from Amazon. However, it is redundant with the online course materials and is not required.
Note that, as you proceed through the online materials, you may occasionally encounter minor errors or inconsistencies. Apologies in advance for this. We are still working on the course. You may get extra credit for reporting such problems (especially if your reports are not overly irate).
Teaching Staff
| Michael Genesereth |
| Email: genesereth@stanford.edu |
| Office Hours: Wed 3:00 pm - 4:00 pm |
| Location: Gates 308 |
|
| Manav Kant |
| Email: manavk@stanford.edu |
| Office Hours: TBD |
| Location: TBD |
|
|