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.

Instructor's course page

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
 

instructor-course-page-button1If you see this button within a description, clicking it will take you to the Instructor's own page for this class.

Course schedules & descriptions

Search Courses by Instructor


Search course subsets


Robert R. McCormick School of Engineering and Applied Science
Electrical Engineering & Computer Science Home | McCormick Home | Northwestern Home
© 2013 Robert R. McCormick School of Engineering and Applied Science, Northwestern University
MapsContact UsCalendar
TECH: 2145 Sheridan Rd, Tech L359, Evanston IL 60208-3118 USA |  Phone: (847) 491-5410  |  Fax: (847) 491-4455
FORD: 2133 Sheridan Rd, Ford Building, Rm 3.320, Evanston  IL 60201 USA |  Phone: (847) 491-5410  |  Fax: (847) 491-5258
Questions about this site? Please email the webmasterLegal and Policy Statements