ECE 57000 - Artificial IntelligenceLecture Hours: 3 Credits: 3
Normally Offered: Each Fall
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.
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.
- Artificial Intelligence: A Modern Approach, Stuart J. Russel and Peter Norvig.
- How to Design Programs, Matthias Felleisen, robert Bruce Findler, Matthew Flatt and Shriram Krishnamurthi.
- Logical Foundations of Artificial Intelligence, Michael R. Genesereth and Nils J. Nilsson.
- The Little Schemer, Daniel P. Friedman and Matthias Felleisen.
- The Seasoned Schemer, Daniel P. Friedman and Matthias Felleisen.
Learning Outcomes:A student who successfully fulfills the course requirements will have demonstrated:
- ability to write an inductive program. 
- ability to write a higher-order program. 
- ability to write a symbolic program. 
- ability to write a nondeterministic program. 
- ability to formulate and solve a game as game-tree search. 
- ability to formulate and solve a constraint satisfaction problem. 
- ability to formulate and solve a problem in logic. [1,6]
|4||Constraint Satisfaction Problems|
|1||Allen's Temporal Logic|
|2||Multiple Fault Diagnosis|