CS385/627 Artificial Intelligence Goals for the course: By the end of this course, students will be able to: 1. Implement and apply the basic search methods, including depth-first, breadth-first, best-first, iterative deepening, A*, hill climbing, simulated annealing, and genetic algorithms. 2. Implement and evaluate problem solving heuristics. 3. Explain how neural networks work and learn. 4. Explain the use of logic in AI, and apply the resolution method to problem solving. 5. Apply basic machine learning techniques to a problem domain. 6. Explain how rule-based systems work. Before taking CS385/627, students should have the following abilities: 1. Good knowledge of Java or another high level language, and basic programming methods including recursion. 2. Familiarity with the Internet. 3. Knowledge of abstract data types.