This course will cover fundamental artificial intelligence and machine learning techniques useful for developing intelligent software tools to support engineering design and other engineering activities. The computational techniques covered include: search, constraint satisfaction, probability, data mining, pattern recognition, neural networks, optimization, and evolutionary computation. The course will examine both the theory behind these techniques and the issues related to their efficient implementation. The application of the techniques to engineering tasks, such as design representation and automation will be explored. In addition to regular homework sets, the course includes individual paper presentations and a substantial term project in which the student will develop an intelligent software tool to support an engineering task. A basic working knowledge of a scientific programming language (C/C++, Java, Matlab) is highly recommended. 4 hrs. lec. Prerequisites: None.