
Email: forbus <the at sign> northwestern <the usual> edu
Voice: (847) 491-7699
Fax: (847) 491-5258
EECS Department
Northwestern University
Ford 3-320
2133 Sheridan Road
Evanston, IL, 60208
Please note: The Computer Science Department is now part of the Electrical Engineering and Computer Science Department. I am currently the head of the Cognitive Systems Division, which is housed in the Ford Engineering Design Center.
In artificial intelligence, specifically qualitative reasoning, spatial reasoning, analogical reasoning and learning, learning from natural language, sketch understanding, and inference engine design.
In cognitive science, understanding how analogy and similarity work, including the roles they play in cognitive and perceptual processes. We are developing the Companion cognitive architecture to explore the hypothesis that analogical processing is at the core of human cognition.
In education, using AI techniques to create new types of educational software and activities.
In human-computer interaction, the use of sketching as an interface modality to knowledge-rich systems, and the use of natural language processing with simplified English to interact with intelligent systems and reduce tailorability in cognitive simulation.
In computer game design, the roles AI, and especially articulate software, can play in creating better game engines and synthetic characters.
For more information, including descriptions of ongoing projects, please see our group's web page, and also the CogSketch page at the Spatial Intelligence and Learning Center.
My normal teaching schedule looks like this:
Fall: Cognitive Science 207, Introduction to Cognitive Modeling. This is the first course in Cognitive Science. It does not require programming at all. Instead, you'll be using some off-the-shelf AI systems as a way to get experience with cognitive modeling. Ultimately, I think it useful for every cognitive scientist to have some programming experience, but not for the reason you might think. It's not about writing code per se, but about understanding how to think procedurally. One of the insights that the field of Cognitive Science is founded on is the idea that minds are a kind of computation. So computation is actually one of the languages for expressing theories, not just a means of simulation. It's hard to get certain intuitions about computation without programming, but that can come later, if you decide that you're deeply interested in the field.
Winter: I alternate between two advanced AI courses:
Both of these courses are taught studio-style, using a combination of lecture and hands-on work. I think ultimately all courses with a serious programming component will be taught this way. However, evolving a method of studio instruction that works for computer science is still very much an ongoing effort.
If you are interested in Artificial Intelligence, you really should take both of these courses. There is a lot of programming in 344, in Common Lisp, so taking EECS 325 at the same time or even before is a good idea.
Spring: I typically alternate between two interactive entertainment courses, which is one of the focal areas of our division:
EECS 370-0
Computer Game Design
Fundamentals of computer game design. Topics include: Plot, narrative
and character, simulation for creating game worlds, AI for synthetic
characters, tuning gameplay. Substantial programming and project work.
Prerequisites: 725-311, plus at least one of 725-322, 725-343, 725-348, or
725-351.
EECS 392-22: Artificial Intelligence for Interactive Entertainment. This is an experimental course, which will cover both the kinds of AI techniques used in strategy games and the application of advanced natural language and reasoning technology to building new kinds of conversation-oriented entertainment systems. The poster for the course is here.
For 2008-2009: It's CogSci 207 for Fall, EECS 395-Knowledge Representation for Winter, and EECS 370 for Spring.
If you are one of my advisees, please look here.
Last edited 8/13/08, by KDF.