Models and Simulations

Course Mechanics

Course Description

Recently, computer simulations have become an important tool in philosophy of science, epistemology, and value theory. In particular, simulations have been used to address two central philosophical topics: (1) the optimal "social structure(s)" of scientific communities, (2) the emergence of signaling, social norms, and morality. The course is divided into two halves, which are respectively dedicated to those 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 social structure of scientific communities or the evolution of norms or morality. 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.


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. The following abbreviation is employed throughout the course schedule:

Date Topic Readings Programming Concepts Assignment
16/4 Intro to ABMs

Lecture 1 Slides
Railsback and Grimm. Chapter 1 NetLogo Interface NetLogo Tutorial 1 (In-Class)
23/4 ABMs vs. Population Models

Lecture 2 Slides
Morality. Chapters 1 & 2.

Reading Questions 1
Data Types NetLogo Tutorial 1 & 3
30/4 Evolution of Cooperation: Repeated Prisoners and Dilemmas Network Models

Lecture 3 Slides
Morality. Chapter 3. Pages 53-83. If-then Statements and Loops Problem Set 1
7/5 Cooperation: Replicator Dynamics and More Network Models

Lecture 4 Slides
Morality. Chapter 3. Pages 83-101. Procedures and Reporters, Writing Pseudo-code Problem Set 2
14/5 Evolution of Trust

Lecture 5 Slides
Morality. Chapter 4. Pages 101-131. World Commands, Patches, Agents, Links, and Agentsets Problem Set 3
21/5 No Class: Holiday None None None
28/5 Multi-player Games

Lecture 6 Slides
Morality. Pages 238-250. World Commands, Patches, Agents, Links, and Agentsets Problem Set 4

Additional Code:
Stag Hunt Code
4/6 Aims and Limits of ABMs

Discussion Questions
Morality. Chapter 8.
Epstein, "Why Model?"
Recursion and NetLogo Extensions Problem Set 5

Additional Code:
Network Formation 1

Network Formation 2
11/6 The "Social Structure" of Science Multi-player Games

Lecture 8 Slides
Kitcher. "The Division of Cognitive Labor" Running Simulations: Plotting and Behaviorspace Problem Set 6

Additional Code:
Generate Subsets

Turtles of Hanoi
18/6 Priority Rule

Discussion Questions
Strevens. "The Role of the Priority Rule in Science" Randomization and Debugging Work on Final Project Proposal
25/6 Methodological Diversity I

Lecture 10 Slides
Weisberg and Muldoon. "Epistemic Landscapes and the Division of Cognitive Labor" None Work on Final Project Proposal
2/7 Methodological Diversity II

Lecture 11 Slides
Zollman. "The Epistemic Benefits of Transient Diversity" None Final Project Proposal
9/7 Communication

Lecture 12 Slides
Mayo-Wilson. "The Reliability of Testimonial Norms in Scientific Communities" None Work on Final Project
27/9 Final Project Due