ECE 57000 - Artificial Intelligence

Lecture Hours: 3 Credits: 3

Counts as:
CMPE Selective
EE Elective

Normally Offered: Each Fall

Requisites:
ECE 36800

Catalog Description:
The first third of the course covers functional and symbolic programming, symbolic evaluation, and rewrite systems, and their application to tasks such as symbolic mathematics and simulation of digital systems. The second third of the course covers nondeterministic programming and constraint satisfaction problems and their application to tasks such as parsing, scene labeling, qualitative physics, and multiple fault diagnosis. The last third of the course covers automated reasoning including techniques such as semantic tableaux, resolution, and congruence closure.

Supplementary Information:
Throughout the course, homework assignments will require the use of computer skills developed in previous courses. Knowledge of algorithms and data structures will be used to develop programs capable of solving artificial intelligence problems in areas such as general search, game theory, deduction, and planning. Students will be encouraged to use the programming languages LISP and Prolog for their projects. Students are required to design heuristic solutions to various search problems in artificial intelligence. They will implement these solutions, test them, and evaluate them. They will produce a written document for each project detailing the design choices that they made and include an empirical and/or analytical evaluation of their solution. They will be solely responsible for the design of the program and the method of evaluation.

Required Text(s): None.

Recommended Text(s):
  1. Artificial Intelligence: A Modern Approach, Stuart J. Russel and Peter Norvig.
  2. How to Design Programs, Matthias Felleisen, robert Bruce Findler, Matthew Flatt and Shriram Krishnamurthi.
  3. Logical Foundations of Artificial Intelligence, Michael R. Genesereth and Nils J. Nilsson.
  4. The Little Schemer, Daniel P. Friedman and Matthias Felleisen.
  5. The Seasoned Schemer, Daniel P. Friedman and Matthias Felleisen.

Learning Outcomes:

A student who successfully fulfills the course requirements will have demonstrated:
  1. ability to write an inductive program. [1]
  2. ability to write a higher-order program. [1]
  3. ability to write a symbolic program. [1]
  4. ability to write a nondeterministic program. [1]
  5. ability to formulate and solve a game as game-tree search. [1]
  6. ability to formulate and solve a constraint satisfaction problem. [1]
  7. ability to formulate and solve a problem in logic. [1,6]

Lecture Outline:

Hours Topic
3 Inductive Programming
3 Higher-Order Programming
3 Symbolic Programming
3 Evaluation
4 Rewrite Systems
3 Game-Tree Search
4 Constraint Satisfaction Problems
4 Nondeterministic Programming
1 Parsing
1 Bin Packing
3 Arc Consistency
1 Allen's Temporal Logic
1 Science Labeling
2 Multiple Fault Diagnosis
1 Propositional Resolution
2 First-Order Logic
2 Semantic Tableaux
3 First-Order Resolution
1 Congruence Closure