Introduction and Overview
The Big Questions
- What is computation, really?
- What role does computation play in cognitive science?
- What are symbolic models, connectionist models, and
dynamical systems models of cognition, and how do they differ from one
another?
- Are there any limitations to what can be computed, in principle?
- What might these limits imply about human or machine intelligence?
- What is embodied cognitive science?
Our Approach
- The best way to understand computation is to do lots of it. (Added
benefit: it's great fun!)
- We need a precise, unambiguous notation for describing computations.
- Many notations are readily available, each with their pros and cons.
- We will use the programming language Scheme as our principal notation.
(Added benefit: we can watch our computations in action!)
- Other notations we will use: Turing machines, C, possibly Java
- We will study embodied cognition by building and programming robots
- Many supplemental readings from AI and cognitive science
- Turing: Computing Machinery and Intelligence
- Newell and Simon: Computer Science as Empirical Inquiry
- PDP Group: The Appeal of Parallel Distributed Processing
- Brooks: Intelligence Without Representation
- Searle: Minds, Brains, and Programs
- and more...
- Main goal of course: gain ability to understand and implement
computational models of intelligence
Why Scheme?
- Dialect of LISP, the lingua franca of artificial intelligence
research for over forty years.
- Easy to learn syntax.
- Incredibly powerful and flexible.
- Naturally recursive style of programming
Introduction to Scheme
- History: lambda calculus (Church, 1930s), LISP (McCarthy, 1959), Scheme
(Sussman and Steele, 1975)
- Atoms, lists, and S-expressions
- Symbols and values
- Quotation
- Functions and data
- car cdr cons atom? null? eq? list
Reading for Thursday: LS Chapters 1-3, GEB handout
Work through LS question-by-question, with paper and pencil