AI Programming Techniques (ICS 172)
Instructor: Dennis Kibler
Teaching Assistant: To Be Determined
- Java Text: Any one you like. I recommend, without passion,
Core Java by Horstmann and Cornell (latest edition).
- AI Text: Any one you like. I recommend, with passion,
Artificial Intelligence: A Modern Approach by Peter Norvig and Stuart Russell.
- Computer Language: Java with JDK1.1 or JDK1.2.
- Computer Environment: Symantec Cafe on PC under Windows NT.
- Course Prerequisite: ICS171
- Knowledge Prerequisites
- Java Applications
- Mathematics: Vector Algebra, Boolean Algerbra
- Computer Science: Standard data structures, search methods, etc
- Bboard: Read ics.172 for latest class announcements.
Course Goal
Enable students to write Applets that reveal the structure
and performance of several AI methods, including those dealing with
search, problem solving, learning, and decision making. These areas
have had significant contributions to either scientific or industrial
applications. Object-oriented design will be stressed. There will
be five modules. Each module will have two lectures on AI theory
and one lecture on design. Another lecture is reserved for whatever
is most needed, including Java, design, implementation, or AI theory.
For each module, you will do both a design and an implementation.
The design consists of your guesses to the objects and their methods
and fields. The design has no code associated with it. The design
is due on the first class of the week after the assigmnent. No credit
will be given for late designs. Designs will be graded on the basis
on their rationality. It is not expected that they will be completey
correct. Nor do they need be followed.
Your implementation should be readily runnable over the net. Consequently
no credit will be given for late implementations. Your implementation
is due on the first class of the second week after the assigment.
Implementations will be graded on the correctness, style and
efficiency. Efficiency is not a major goal, but if some computation
is done particularly poorly, such as an O(n^3) sort, credit will be taken off.
AI Modules
- Linear Threshold Learning: Perceptron and Winnow.
- Traveling Salesman Problem: Heuristic search, A*, and branch-and-bound.
- Clustering: kmeans, expectation maximization (EM)
- Game-playing: Perfect and non-perfect information games. Alpha-beta
search. Sampling.
- Decision-Tree Learning: automatic creation of expert systems.
Work Load
Each module will take several hundred lines of Java code. Weekly
assignments alternate between design and implementation.
Grading
Assignments will alternate between design and
implementation. The design consists of the objects, method prototypes
and data-members. It is not anticipated that designs will be followed
exactly, but they should be reasonable. Similarly code does not have
to optimal, but again must be reasonable clear, correct, and
efficient. For each module, design and implementation with be worth
15% of your grade.
Assignments receive no credit if handed in late.
Any code copying will result in letter in your file besides receiving
no credit for the assignment.
There will be a final exam which must be passed to pass the class.
When averaged with the other scores, the final will count for 25%
of your grade. The final will be based on an understand of
the AI concepts that are covered in the lectures.
Notes
Lecture notes for the Java Language are available on-line
Java Notes .
Please tell me if you find any errors or misrepresentations.
By the end of the course students are expected to competent in:
- writing applications and applets in Java.
- doing an object-oriented design.
- judging whether an ai method is appropriate.
- coding several standard ai methods.
- evaluating the performance of an ai methods.