V89.0300 - Computation and the Mind: An Introduction to Cognitive Science

Meeting Time/Place: Conference room in second floor meyer suit from 6:00-7:45 PM on Mondays and Wednesdays
Instructor: Todd M. Gureckis
Office: Meyers 280
Office Hours: By appointment
Email: todd.gureckis@nyu.edu

Brief Course Description

What is a mind? How is the operation of the mind related to the operation of the brain? What are the basic principals that underly our ability to think, reason, and learn? In this course, an approach to these questions is presented based on the idea that minds are essentially computational devices, similar in many respects to an everyday computer. In particular, the course provides an introductory survey into what is increasingly known as "computational cognitive science". First, I will aim to convince you that the mind is ultimately a computational device, and that we can make great progress on centuries-old questions by exploring the representations and processes the mind uses to solve real-world problems. This idea is a central component to contemporary thinking in neuroscience and all areas of psychology. Next, we will learn about how the emergent properties of interconnected neurons in the brain may enable these computations. In addition, we will learn how insights from machine learning and artificial intelligence are changing the way we think about the building blocks of the human mind and how the study of the mind has in turn revolutionized the way we interact with computers (think Google, smart spam filters, speech recognition, gesture-based cell phones). The course is organized into a set of lectures and basic readings on the philosophy of cognitive science and basic ideas about thinking, reasoning, memory, learning, perception, computation, and the brain. In addition, there will be a small set of hands-on "labs" were were will develop and interact with simple computer programs which simulate aspects of human learning, memory, and decision making. No prior programming experience is required for any of the assignments (the course will have limited enrollment so the structure of the labs can be tailored based on the interests and background of individual students).

Format of the Course

The course will be organized into a series of lectures and hands-on computer lab sessions. Students will be encouraged to interact with one another to solve problems and to develop a solid understanding of the course material. Occasional short homework assignments will be completed partly in class and partly at home. A final project (worth 30% of the final grade) with be completed in groups on a topic of the student's choosing (with input and guidance from the instructor).


The textbook for this course is "Computing the Mind: How the Mind Really Works" by Shimon Edelman. The textbook is available here and here Additional readings will be selections from research articles, popular science articles, and online tutorials. Here are a collection of helpful resources:


Psychology major, introduction to psychology with a grade of at least C, intro states with a grade of a C, and GPA of at least 3.0 in psychology at the university. upper-division standing.


As this is a highly interactive course, attendance and participation is critical contributing 20% of the final grade. Early in the class there will be a number of small homeworks and in-class exercises worth 10% of the total. Ultimately, we will conduct three separate "labs". Labs will be completed in teams, but each student is required to write a individual report on the results of the groups. Each of the three reports will contribute 13.33% each (a total of 40%). The reports must conform to APA standards and be original. A final project worth 30% of the grade will involved working alone or in a small group of 2-3 students to design a novel simulation or experiment, present it to the class, and turn in a written summary.

(Tenative) Class Schedule

Date Description Slides Podcast
Jan 20, 2010 Introduction, Course Policies, General Overview, etc...

*IMPORTANT* Please fill out the pre-course survey and email me your responses. Click here to view

Reading for Monday: Chapter 1 and 2 from Edelman ("Brains, Minds, and Numbers" and "Computing Minds")
Jan 25, 2010 Lecture: Computation and the Mind

Objective: Today we will try to answer the question, how are minds like computers (and computers like minds?) This will involve a short and informal overview of some issues in philosophy of mind and computational theory. We will discuss the twin strands of computational-level analysis of behavior (the joint specification of both process and representation).

Lab: Basic introduction to Python and some Post-programming Therapy

Objective: To get python installed on your computer. To get some basic familiarity with how to write and enter a simple program. To start learning python so we can do more interesting things with it later!

*Homework*: Link

Reading for Monday: Chapter 3 from Edelman "Computing Brains"
Jan 27, 2010 Lecture: How do brains given rise to computations?

Objective: While last lecture we examined arguments for thinking of the mind in computational terms, in this lecture we consider the next obvious riddle: if minds are like computers, how the heck could a bunch of interconnected neurons make this possible?

Lab: Crunching numbers in Python

Objective: Our next step is to understand how to use Python to compute simple math calculations and to use "control structures" (i.e., automatically following paths and branches in the order of execution)

*Homework #2* (this one may take a bit longer, due date flexible): Link

Reading for Monday: Chapter 4 from Edelman "The Astonishing Hypothesis"
Additional reading: Marr., D. (1982). Vision (ch. 1).

Feb 1, 2010 Lecture: How do brains given rise to computations?

Objective: Today we will culminate our discussion about computation by considering the implications of the view of the mind as a computational device? What does this offer us scientifically? What new insights can we derive about human behavior from such a theory? We will also discuss the idea of "levels of analysis" (in the Marr-ian sense) which helps us understand what kinds of explanations we might expect this new science of the mind to encompass.

Lab: More Python basics and "Flipping coins: Harnessing randomness and basic sampling processes"

Today's class we'll spend some more time going over homework #2 and fine-tuning some more basic python including introducing programs that include a random element (so they are different each time they run)

*Homework 3*: Link

Reading for Monday: Chapter 5 (pg. 86-105) from Edelman "Perception"
Feb. 3, 2010 Lecture: Perception I

Objective: This is first lecture putting the principals from the last few readings into motion (in this case to understand human perception). We will discuss how the visual system constructs representations of the visual world, how the visual system solves incredible problems such as color constancy.

Basic python tutorials/discussion
Reading for Monday: Chapter 5 (pg. 106-129) from Edelman "Perception"
Feb. 8, 2010 Lecture Perception II: Perceptual Learning

Objective: Despite the common assumption, perceptual systems are not hard-wired to response in particular ways, but instead our perecptual abilities are often augmented through learning. Today we will discuss a range of topics dealing with perceptual learning, the nature of the primatives the underlying human perception, and the "truthiness" of perception (how close is our perception to the actual state of the world). A key computational idea we will introduce is that idea of "units" which are automatically recruited online during learning to represent important aspects of the environment.

Basic python tutorials/discussion
Reading for Monday: Chapter 5 (pg. 129-148) from Edelman "Perception"
Feb. 10, 2010 Class canceled due to snow.
Feb. 15, 2010 President's day, no class.
Feb. 17, 2010 Lecture Perception III

Objective: Concluding issues in perception. Following Edelman we'll have a discussion of what it means to "see", the nature of beauty, and other miscellaneous topics.

Lab 1: An introduction to neural networks, a view from perception
Today we'll dive into our first lab, building a artificial neuron! We are quite to neural networks yet (we'll get there eventually). Today we are going to build a basic computational neuron and perform experiments on it!

lab handout (part 1) [pdf], starting python script [.py script]

Reading for Monday: Chapter 6 (pg. 155-178) from Edelman "Memory"
Feb. 22, 2010 Lecture Memory I

Objective: Now we move onto the second "domain" in which we will explore computational principles. First, we will go over an introduction to memory. There are many types of memory, each with different properties, and perhaps even neural substrates. We'll discuss how the representation of memory influences how easy or hard it is to solve certain kinds of problems. This will lay the foundation for a lab exploring neural networks of memory.

Lab 1 (continued, experiments with a simple neuron)

Reading for Monday: Chapter 6 (pg. 178-202) from Edelman "Memory"
Feb. 24, 2010 No Lecture, focus on lab in class
Lab 1 (continued, experiments with an array of simple neurons)
lab handout (part 2) [pdf]
Reading for Monday: Chapter 6 (pg. 202-228) from Edelman "Memory"
Mar. 1, 2010 No Lecture, focus on lab in class
Finish Lab 1 (hyper-acuity simulations and writeup)
lab handout (part 3) [pdf]
** bonus code for reading in a image ** [py]
No Reading
Mar. 3, 2010 Lecture: Memory and Concepts II

Objective: We will continue our discussion of the basic computational principals of memory, in particular, highly structured concepts (such as our understanding of biological kinds).

Lab 2: Simple forms of memory

In this lab, we extend the same idea of simple neural computation to support learning and memory processes.

lab handout [pdf]
lab code [memory.py]
No Reading
Mar. 8, 2010 Lecture: Memory III

Objective: We will wrap up our discussion of memory and concepts with a deeper look at the underlying neurobiology of memory and concepts.

Lab 2: Simple forms of memory (continued)

No Reading
Mar. 10, 2010 Lecture: Memory IV

Objective: We will wrap up our discussion of memory and concepts with a deeper look at the underlying neurobiology of memory and concepts.

Lab 2: Simple forms of memory (continued)

Reading over break: Chapter 8 (pg. 315-353, 364-387) from Edelman "Thinking"
Mar. 15, 2010 Spring Break, No Class
Mar. 17, 2010 Spring Break, No Class
Mar. 22, 2010 Lecture: Thinking, Problem Solving, and Induction

Objective: Today we will return from break with a lecture integrating various work on topics in thinking, problem solving, and induction. In particular we will discuss the idea of "inductive constraints" and how computational models may help us identify and analyze the constraints under which the mind/brain operates to solve computational problems.

lab 2: simple memory (continued)

No Reading/Review Chapter 8
Mar. 24, 2010 Lecture: Decision Making and Learning

Objective: Learning is the processes of changing behavior in response to the environment in a way that is adaptive for the behavior of the agent or individual. The questions we will explore today are how do people and machines learn, what are the basic processes that underlying learning in people, how can these be understood through mathematics and computational methods, and how may they inform the creation of automated learning methods.

lab 2: simple memory (continued)

No Reading/Review Chapter 8
Mar. 29, 2010 Lecture: Decision Making and Learning II

Objective: continue discussion of learning and decision making

lab 2: simple memory (continued)

Reading: Chapter 7 (pg. 235-247) from Edelman "Language"
Mar 31, 2010 Lecture: Introduction to the Computational Challenge of Language

Objective: We now begin a multi-week exploration into the nature of language. We will be looking at language from a number of perspectives ranging from how language is represented in the mind, the degree to which learning influences language (or if it is innate), and a very birds-eye survey of computational approaches to language processing. Sounds scary, but isn't!

Lab 3: Learning in humans and machines

Reading: Chapter 7 (pg. 247-275) from Edelman "Language"
Apr 5, 2010 Lecture: Learning and Language

Objective: Today, we will discuss the role of learning in language acquistion. Some of the most surprising insights from cognitive science have been analyses showing how much of language actually could be learned (in contrast to the nativist views). We'll evaluate both sides of this issue in some depth over the next couple classes

Reading: Chapter 7 (pg. 276-306) from Edelman "Language"
Apr 7, 2010 No class
Apr 12, 2010 Lecture: Language in Context, Simple Recurrent Networks, and the nature of the mental lexicon

Objective: Today we'll talk more about language, learning algorithms, and the cognitive science view of the mental lexicon as an emergent processes of processing the sequential nature of language. We'll particularly focus on Edelman and Elman's view on language learning and their relationship to classical approaches in linguistics.

Apr 14, 2010 Lecture: Language (final lecture)

Objective: Today we'll conclude our discussion of language and begin talking about final project.

Apr 19, 2010 Work on Final Projects
Apr 21, 2010 Work on Final Projects
Apr 26, 2010 Work on Final Projects
Apr 28, 2010 Work on Final Projects
Reading: Chapter 11 from Edelman "The Mind in the Act of Finding"
May 3, 2010 Final Presentations