Models and Simulations in Value Theory and Philosophy of Language

Course Mechanics

Course Description

Computer simulations have become an important tool in philosophy of science, epistemology, philosophy of language, and value theory. In particular, in value theory and philosophy of language, simulations of "agent-based models" (ABMs) have been used to address two central philosophical topics: (1) the emergence of norms and/or morality (2) the emergence of "signaling systems" and language. This course is an introduction to these two topics.

The course is "practice-based" in the following sense. In addition to discussing contemporary philosophical papers, students will learn how to construct and analyze the types of models that are employed regularly in philosophical debates. To this end, students will learn how to program in NetLogo, a programming language designed for the construction of agent-based models. No previous programming experience is required.

Course Goals

The course has three central goals. First, in the beginning of the semester, students will learn the types of questions that ABMs are used to address, how ABMs differ from models in classical economics and mathematical biology, and the difficulties in interpreting and validating ABMs. Second, by the end of the semester, students should be able to explain the central philosophical questions that are being addressed with ABMs and to identify new questions that have not yet been asked. Finally, students will learn to implement an ABM in NetLogo that addresses one such new question.

Course Requirements

The central requirement is to design and implement an ABM with the purpose of answering some question about either the evolution of norms and/or of signaling systems. Students will write a final paper that (i) describes the question that model is intended to answer and (ii) the results they obtained from computer simulations of said model. Each student must submit a detailed proposal (about three pages) of his or her final project after two months. Further details about the final project can be found here.

There will also be programming assignments due every week for the first six weeks of the course. One cannot learn to program without practicing regularly. The weekly assignments are designed to help you practice the skills and employ the concepts taught in class.

Turning in Assignments

The programming assignments are due a half hour before the start of class. Unless you are granted an extension (see below), late work will be penalized 10% for every day that it is late. You are permitted to work with other students on the assignments, and feel free to ask for my help as well. However, you should always finish your program alone; doing so ensures that you understand the material. If you collaborate with other students, please write the names of the other students with whom you worked in a comment at the top of your code.

Twice during the course of the semester, I will grant you a two-day an extension on your programming assignment, no questions asked. That is, instead of turning assignment in on Monday, you may turn upload it some time on Wednesday. If you need more than two additional days to complete an assignment, please talk to me.

To turn in assignments, please enroll in the Campus course. Instructions for enrolling, as well as for uploading assignments are available here.


Your final grade will be calculated via a weighted average using the following weights:

Course Files


Below is a table indicating readings and assignments that are due each class. If you are a registered student in the class, then you can download the readings from the link in the "Course Files" section above.

Date Topic Readings Programming Concepts Assignment
14/10 Intro to ABMs

Lecture 1 Slides
Railsback and Grimm. Chapter 1 NetLogo Interface NetLogo Tutorial 1 (In-Class)
21/10 Classical Decision and Game Theory

Lecture 2 Slides
Osborne. Introduction to Game Theory. Sections 2.0-2.7.

Data Types
Sample Code
NetLogo Tutorial 1 & 3
28/10 Game Theory and Morality

Discussion Quesions
Gauthier. "Morality and Advantage" and Morals by Agreement, pp. 1-16. If-then Statements and Loops
Sample Code
Problem Set 1
4/11 Bounded Rationality, Population Models, and ABMs

Lecture 4 Slides
Alexander. Morality, Chapters 1-2. Skyrms. Stag Hunt, Preface. Procedures and Reporters, Writing Pseudo-code Problem Set 2
11/11 Evolution of Cooperation

Lecture 5 Slides
Alexander. Morality. Chapter 3. World Commands, Patches, Agents, and Agentsets Problem Set 3
18/11 Evolution of Trust

Lecture 6 Slides
Alexander. Morality. Chapter 4. Pages 101-131. More World Commands and Links Problem Set 4

Additional Code:
Stag Hunt Code
25/11 Conventions and Signaling Games

Lecture 7 Slides
Lewis. Convention. Pages 1-16, 24-58, and 122-135. Recursion and NetLogo Extensions Problem Set 5

Additional Code:
Network Formation 1

Network Formation 2
2/12 Evolution of Signaling I

Lecture 8 Slides
Skyrms. Signals. Chapters 1-2.

Skyrms. Stag Hunt. Pages 49-60.

Millikan Language: A Biological Model. Chapter 1.
Running Simulations: Plotting and Behaviorspace Problem Set 6

Additional Code:
Generate Subsets

Turtles of Hanoi
9/12 Evolution of Signaling II

Lecture 9 Slides
Skyrms. Signals. Chapters 4-5. Randomization and Debugging Problem Set 7
16/12 Evolution of Signaling III

Lecture 10 Slides
Skyrms. Signals. Chapters 7-8. None Work on Proposal
23/12 No class.
3/1 Final Project Proposal
6/1 Norms

Discussion Questions
Bicchieri. Grammar of Society. Pages 1-42. None Work on Final Project
13/1 Emergence of Norms I

Bicchieri. Grammar of Society. Chapter 6. None Work on Final Project
20/1 Emergence of Norms II

Muldoon, et. al. "Why Are There Descriptive Norms?" None Work on Final Project
27/1 Aims and Limits of Models; Epistemology of Computer Simulations

Epstein. "Why Model?"

Maynard-Smith and Harper. Animal Signals. Section 1.1.

Humphreys. Extending Ourselves. Chapter 4.
None Work on Final Project
2/3 Validating Agent-Based Models

Discussion Questions
Jannsen and Ostrom. "Empirically-Based ABMs" None Work on Final Project
22/2 Final Project Due