|
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 |
||