AI Programming Techniques (ICS 172)
Instructor: Dennis Kibler
Teaching Assistant: To Be Determined

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

  1. Linear Threshold Learning: Perceptron and Winnow.
  2. Traveling Salesman Problem: Heuristic search, A*, and branch-and-bound.
  3. Clustering: kmeans, expectation maximization (EM)
  4. Game-playing: Perfect and non-perfect information games. Alpha-beta search. Sampling.
  5. 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.


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.


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: