Computation and Cognition

Sarah Lawrence College
Fall 2006


To what extent is your brain like a computer? The central metaphor of cognitive science views the brain as a complex biological computing machine, the physical properties of which give rise to the mind's capacity for perception, misconception, introspection, remembering, forgetting, and consciousness. But what exactly does it mean to view thought as a complex computation? How far does this metaphor take us in practice, and what insights does it offer?

In this course, we will investigate the nature of computation and its relationship to human—and possibly machine—intelligence. We will do this in a hands-on way, by writing computer programs that model cognitive processes such as language, perception, memory, and learning. We will study abstract models of computation called Turing machines and what they may tell us about the ultimate limits of the mind. We will read and discuss a number of important papers from artificial intelligence, and we will explore the idea of embodied cognition by experimenting with robots.

Open to any interested student.


Prof. Jim Marshall
Office: Science Center 100
Phone: 2673 (from off campus: 914-395-2673)
Email: j + my last name +

Class Meeting Time

Course Materials


Python Programming
by John Zelle

There will also be a supplementary reading packet (on electronic reserve).

Course Policies

On-time attendance in all class meetings is absolutely required. If you are unable to attend class due to illness, please contact me on the day of the missed class (or sooner). If you must miss class for any other reason, please let me know in advance.

An important part of the course will be reading and discussing papers from cognitive science. Each week, a pair of students will serve as discussion leaders for that week's readings. Every student should come prepared to participate in the discussion.

Late Homework Policy

Getting Help

You are strongly encouraged to come see me whenever you are having difficulty with the material. If you are confused about something, don't stay that way! Staying confused will only make things worse later. Come talk to me as soon as possible so that we can clear up the problem. There is no point in staring at the computer screen for hours trying to figure out why your program won't work, when just a few minutes is usually all it takes to track down the problem together.

I'll be more than happy to schedule an appointment. Ask me about it in class, email me, or leave a message on my voice mail. You can also try to catch me on the fly, though I can't always guarantee that I'll have time to meet with you right then.

How to succeed in this course

Collaboration Policy

The highest level of academic integrity is expected of every student. You are strongly encouraged to discuss ideas and approaches to solving problems, on a general level, with your fellow classmates, but unless I tell you otherwise, the work you hand in must be exclusively your own. Effective learning is compromised when this is not the case.

Accordingly, you should never read or transcribe another student's code or solutions, exchange computer files, or share your code or solutions with anyone else in the class. Under no circumstances may you hand in work done by someone else under your own name, with the exception that you may freely use any code that I explicitly provide to you.

When in doubt, credit the people or sources from whom you got help. This also goes for any help obtained via the Internet. You will not lose any points for acknowledging significant help obtained in a legitimate fashion (for example, from books, Web sites, or articles). If you are ever unsure about what constitutes acceptable collaboration, just ask. Here are some example scenarios of acceptable and unacceptable collaboration.

Failure to abide by these rules is considered plagiarism, and will result in severe penalties, including possible failure in the course. Please do not put me, yourself, or anyone else in this unpleasant situation.