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.
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.
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.
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.
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 |