EECS Main > Academics > Course Info

EECS 325 - Artificial Intelligence Programming

COURSE TITLE: EECS 325 Artificial Intelligence Programming

CATALOG DESCRIPTION: Introduction to Lisp and programming knowledge-based systems and interfaces. Strong emphasis on writing maintainable, extensible systems. Topics include: semantic networks, frames, pattern matching, deductive inference rules, case-based reasoning, discrimination trees. Project-driven. Substantial programming assignments.

REQUIRED TEXTBOOK : Paul Graham , ANSI Common Lisp , Pearson/Prentice-Hall

COURSE COORDINATOR: Chris Riesbeck

COURSE GOALS: This course is about

•  designing and implementing intelligent components for interactive distributed computational media

•  developing tools for authoring the knowledge needed by such systems

•  doing it all with maintainable code

PREREQUISITES: EECS 110 and EECS 111, or equivalent programming experience

DETAILED COURSE TOPICS:

•  Common Lisp programming, including

•  Symbols, lists, strings, arrays, and other built-in data structures

•  Structures and the Common Lisp Object System (CLOS)

•  Functions and macros

•  Recursion and higher-order functions

•  Symbolic knowledge representation techniques, including

•  Hierarchically organized frame systems

•  Horn-style deductive reasoners

•  Test-driven development

•  Semantics and the Web:

•  Web clients and servers in Lisp

•  XML-RPC clients and servers in Lisp

•  XML and knowledge representations

HOMEWORK ASSIGNMENTS: The normal model of homework assignments does not apply to this course. Instead, students work as rapidly as possible through several dozen programming exercises involving a wide range of concepts and challenges. The exact set of exercises depends on each student's interests and skill development.

LABORATORY PROJECTS:

Class lectures and class assignments will be organized around the class project. The class project will be some sort of intelligent web-based information system, but exactly what will be determined in class discussions, as we try to answer the AI question: why are computers so stupid?

GRADES:

Homework: 95%

Participation in class and the newsgroup: 5%

COURSE OBJECTIVES: After this course, students will be able to

•  develop standalone and web-based AI programs in Lisp using symbolic knowledge representation techniques

•  apply software engineering best practices, especially test-driven development, to the development of maintainable code

Northwestern University Robert R. McCormick School of Engineering
and Applied Science Electrical Engineering and Computer Science Department