Iowa State University

Iowa State UniversityIowa State University
Principles of Artificial Intelligence

Department of Computer Science

Principles of Artificial Intelligence, Fall 2009

Course Descripton

Com S 572. Principles of Artificial Intelligence. (3-1) Cr. 3. F. Prereq: 311, 330 or Cpr E 310, Stat 330, Engl 105, Sp Cm 212, Com S 342 or comparable programming experience. Specification, design, implementation, and selected applications of intelligent software agents and multi-agent systems. Computational models of intelligent behavior, including problem solving, knowledge representation, reasoning, planning, decision making, learning, perception, action, communication and interaction. Reactive, deliberative, rational, adaptive, learning and communicative agents and multiagent systems. Artificial intelligence programming. Graduate credit requires a research project and a written report. Oral and written reports.

Course Staff

The fall 2007 offering of Principles of Artificial Intelligence is taught by Professor Vasant Honavar.

Course Schedule

Lectures: Monday, Wednesday, and Friday 1:10pm - 2:00pm, 1220 Howe Hall

Recitations: Thursday 9:00am - 9:50am, B29 Atanasoff Hall

Office Hours:

  Vasant Honavar: Monday, Wednesday: 11:00am - 12:00pm, 211 Atanasoff Hall

  Raphael J. Osorio, Tuesday, Thursday: 10-11am.

Course Prerequisites

The prerequisites for the course include knowledge of programming, programming language concepts (functional programming, imperative programming, declarative programming, object-oriented programming, recursion, abstract data types), discrete mathematics (set theory, grapth theory, logic), calculus, basic probability theory and statistics, and data structures (lists, trees, graphs etc.) and algorithms (design and analysis). These topics are covered in Com S 330, 311, and ComS 342 and Stat 330. In addition, students are expected to have the writing and presentation skills necessary for preparing written reports and presentations based on term projects. These skills are taught in Engl 105, Sp Cm 212. Some exposure to philosophy of mind or cognitive psychology, although not required, is desirable.

Some of the laboratory assignments will require you to program in Java. If you do not know Java already, you are expected to quickly acquire a working knowledge of Java on your own. Note however, that Java is not necessarily the ideal language for all aspects of artificial intelligence programming. LISP and Prolog are especially well-suited for rapid prototyping of artificial intelligence programs. Consequently, some of the laboratory assignments might require you to program in LISP or Prolog. If you are unfamiliar with LISP or Prolog, you will be expected to quickly acquire a working knowledge of these languages as needed. If there is sufficient interest, a few of the recitation sessions will be used to introduce Java, LISP, or Prolog as needed.

If you are not sure whether you have the necessary background, please talk to the instructor.

Target Audience

This course is targeted to beginning graduate students in Computer Science, Bioinformatics and Computational Biology, Human-Computer Interaction at Iowa State University who are interested in working in Artificial Intelligence or applying Artificial Intelligence approaches (e.g., ontologies, machine learning) in their work in other areas of Computer Science (databases, information systems, networks and distributed systems, semantic web, software engineering, among others) or interdisciplinary areas such as bioinformatics and computational biology, human computer interaction, materials informatics, and engineering informatics.

The course should be of interest to graduate students from a variety of disciplines (e.g., statistics, physics, mathematics, engineering, neuroscience) interested in learning about Artificial Intelligence.

Course Objectives

The primary objective of this course is to provide an introduction to the basic principles and applications of Artificial Intelligence. Programming assignments are used to help clarify basic concepts. The emphasis of the course is on teaching the fundamentals, and not on providing a mastery of specific commercially available software tools or programming environments. In short, this is course is about the design and implementation of intelligent agents---software or hardware entities that perform useful tasks with some degree of autonomy. Upon successful completion of the course, students will have an understanding of the basic areas of artificial intelligence including problemsolving, knowledge representation, reasoning, decision making, planning, perception and action, and learning -- and their applications (e.g., data mining, information retrieval). Students will also be able to design and implement key components of intelligent agents of moderate complexity in Java and/or Lisp or Prolog and evaluate their performance. Graduate students are expected to develop familiarity with current research problems, research methods, and the research literature in AI.