Curriculum / DescriptionsCOMP_SCI 325: Artificial Intelligence Programming
VIEW ALL COURSE TIMES AND SESSIONS
Prerequisites
COMP_SCI 110 or COMP_SCI 111, or equivalent programming experienceDescription
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.
- This course satisfies the AI Breadth Requirement
http://www.cs.northwestern.edu/academics/courses/325/
REQUIRED TEXTBOOK: Paul Graham, ANSI Common Lisp, Pearson/Prentice-Hall
COURSE COORDINATOR: Prof. 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: COMP_SCI 110 and COMP_SCI 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