Back to the computer science and engineering home page.
Department of
Computer Science
and Engineering

Course Info
Textbooks and Readings
Homework Policy
Grading Policy
Student Access

Your Grades

Useful Links

CSE560 Artificial Intelligence
Fall 2020


Peter Heeman

Tuesday/Thursday 4:00 to 5:30pm
First class: Tuesday September 29


3 credits

Course Description

This course surveys the foundations and applications of symbolic approaches to artificial intelligence. The approach emphasizes the formal basis of automated reasoning and includes an introduction to programming in Prolog. Fundamentals covered include search, knowledge representation, automated inference, planning, non-monotonic reasoning, and reasoning about belief. Applications include expert systems, natural language processing and agent architectures.

If you have questions about the course and whether you have the right background for it, please contact me.


The textbook for the class is listed below. The website for the textbook is here. Chapter 1 is available in PDF format from their website. The book is also on reserve in the library.



An important dimension to this course is learning Prolog, which is a logic programming language, especially suited symbolic Artificial Intelligence. Logic programming languages are very different from procedural languages, such as C.

The Computer Science and Engineering department has several versions of Prolog available. Quintus prolog is available on the department machine church (invoked with the command prolog). Sicstus prolog is also available (invoked with the command sicstus.

Students with PC's, especially part-time students, might find it benefitial to install a Prolog on their own machine. There are several public domain Prolog interpreters available. I use SWI-Prolog on my notebook computer, which runs on Windows95. Source code is available for SWI-Prolog, and I have heard that you can build the executable for running on Linux (with the gcc compiler). Alternatively, Amzi has a version that can be installed on Linux.

Homework Guidelines

Homeworks are to done electronically, and emailed as a single pdf file. Some of the problems require diagrams. These can be done via pencil-and-paper, but should be inserted into your pdf. Please turn in a single file that has your python code, and/or a single file that has your prolog code.
Critiques are due after the homework, after you have received the answer key. Include a critique for any question that you think you might have done wrong, or that where your answer needs to be clarified. Include your original answer, and include the critique after your answer, as a separate section.
Here is what a sample homework/critique should look like:
sample.pdf. Please format yours similarly. For those using latex, here is the latex file that was used to generate the sample: sample.tex. I use pdflatex as it can incorporate jpg files.
I am making the latex code for my assignments available. This might be useful if there is code in the assignment that you need to make use of. My homework makes use of the following style file that I created: hw.sty. Please do not include the entire text of the assignment in your answers, as this will make it more difficult for me to find your answers.

Grading Policy

Assignments and Projects 50%
Midterm 25%
Final 25%

Your marks so far are here.


The syllabus is still under construction.

Students must read the assigned readings before class.

Tue Sep 29 (Class 1) Lecture 1
Introduction. Chapter 1 Homework 0
Representation and Reasoning System
Thu Oct 1 (Class 2) Lecture 2
Syntax and Semantics
Chapter 2.1-2.5
Tue Oct 6 (Class 3) Lecture 3
Ground Proof Procedures
Chapter 2.5-2.7
Homework 1
Thu Oct 8 (Class 4) Lecture 4
Proofs with Variables
Chapter 2.7-2.8 Quizz
Tue Oct 13 (Class 5) Adding Function Symbols
Chapter 2.8
Homework 2
Using Definite Knowledge
Thu Oct 15 (Class 6) Lecture 5
Recursion and Lists
Chapter 3.1-3.6
Tue Oct 20 (Class 7) Lecture 6
Breath, Depth-first Search and Prolog
Chapter 4.1-4.4
Homework 3
Thu Oct 22 (Class 8) Lecture
Controlling search space Prolog
Knowledge Engineering
Tue Oct 27 (Class 9) Lecture 7 1-up
Lecture 8
Search in Prolog & A* SearchChapter 4.5-4.6
Meta InterpretersChapter 6.1-6.4,6.7
Homework 4
Beyond Definite Knowledge
Thu Oct 29 (Class 10) Lecture 9
Chapter 7.1-7.2
Tue Nov 3 (Class 11) Lecture 10
Integrity Constraints & Horne Clauses
Chapter 7.3,7.5
Homework 5a
Thu Nov 5 (Class 12) Review for midterm
Tue Nov 10 (Class 13) Midterm Covers Chapters 1 - 4. Topics. Last year's midterm and answers are posted on Sakia under resources. Homework 5b
Thu Nov 12 (Class 14) Lecture 11
Complete Knowledge Assumption
Chapter 7.7
Tue Nov 17 (Class 15) Lecture 12
First Order Predicate Calculus
Chapter 7.7
Homework 6
Thu Nov 19 (Class 16) Continued
Assumption Based Reasoning
Tue Nov 24 (Class 17) Lecture 13
Default Reasoning
Chapter 9
Homework 7
Actions and Planning
Thu Nov 26 (Class 18) No class
Tue Dec 1 (Class 19) Lecture 14
Situation Calculus, Strips, Event Calculus
Chapter 8.1-8.3
Homework 8
Thu Dec 3 (Class 20) Lecture 15
Simple Planning
Chapter 8.3
Tue Dec 8 (Class 21) Lecture 16
Partial Order Planning (From Russell and Norvig Textbook) Homework 9
Thu Dec 10 (Class 22) Lecture 17
Modal Logic, Belief, Possible Worlds Semantics
Tue Dec 15 Review for final
Thu Dec 17 Final Exam Topics. Last year's final. Answers.

Student Access

Our program is committed to all students achieving their potential. If you have a disability or think you may have a disability (physical, learning, hearing, vision, psychological) which may need a reasonable accommodation please contact Student Access at (503) 494-0082 or e-mail to discuss your needs. You can also find more information at < href=""> Because accommodations can take time to implement, it is important to have this discussion as soon as possible. All information regarding a student’s disability is kept in accordance with relevant state and federal laws.