CSE560 Midterm Topics

The midterm will cover the following from the textbook. You will also be responsible for material covered in the class and in the homeworks that is not in the textbook. This includes the unification algorithm, and motion world.

Here is a copy of last year's midterm, which you can use to practice with. Here is a copy with the answers. Feel free to discuss the questions and their answers on the bulleton board under the topic of `midterm' in the CSE560 forum.

Below is a list of questions you should be able to answer. This list is not necessarily complete. See above for what exactly what the midterm will cover.

Chapter 2

What is definite knowledge?

What is the syntax of datalog?
Can a predicate be the argument for another predicate?

What is an interpretation?
What are the components of an interpretation?
How does one handle variables?

What is a model?
What does it mean to say KB |= a?
What is a semantic proof?
Why do we need semantics?

What is a syntactic proof?
What symbolic rule can be used for doing syntactic proofs?
Why are proof strategies defined in terms of non-deterministic proof.
What is the difference between a proof procedure and an algorithm that implements it?

What does it mean for a proof procedure to be complete and sound?
Be familar with soundness proof. You will not have to regurgitate it, but I might include the proof and ask you questions about it.

Why do we need syntactic proofs?
Know how to do a bottom-up and top-down proof?

Know what a substitution list is and know how to find a MGU.
Know how to do a top-down proof with variables.

Chapter 3

What is needed for recursion to work?
Why are lists so important for Datalog?

What is the syntax for lists?
Know how to write simple datalog clauses.
Know how a top-down depth-first reasoning procedure traces through a solution, such as append.

Chapter 4: Search

What is the difference between depth-first, breath-first, best-first, and A*.

How do cycles affect depth-first versus breath-first.

For A* search, why do we need to use an estimate for the cost to the frontier to the goal node, but don't need to do this for the cost from start to frontier?

Why do we want the heuristic to be as close of an estimator the real cost as possible? What would happen if we had a perfect estimator? What if we had one that assigned the same weight to all paths?