15-236: Saving Humanity with Computational ModelsSpring, 2021

Taught by Jim McCann on Mondays and Wednesdays from 12:20-13:40 Eastern Time via video conference.
Office hours by appointment. Video conference link by request.


We live in a complex society and on a complex planet; but we tend to think about the world through simplified models and assumptions. How do we know if our simplified mental models make sense? Computational modeling is an approach to understanding our understanding of the world wherein we write down our mental models as computer code, mix in a bit of real data, and run it to see what we can learn. Models can help us to understand ourselves, the world around us, and how to shape the future.

This course will teach the basics of computational modeling through hands-on exercises investigating student-directed topics. We will cover the basics of computational modeling, finding and processing data, visualization, modularity, and interactivity. Students will build a series of models throughout the course, starting with smaller warm-ups and culminating in a final project in which students will work together to create a high-quality model and interactive web-based visualization with the goal of informing public discourse and policymaking.


15112 and 21120


Students will be awarded points as follows:

The class contains 1 + 2*5 + 5 = 16 points in total. This means points are really big! They are each worth 6.25% of your grade.

Assignments may be submitted up to a week late for 50% of the points; however, no critique participation points will be awarded for a late assignment. Thus, the maximum score for a late assignment is 0.75 points.

Extra credit may be awarded for particularly excellent work.

How Assignments Work

Assignments in this class are evaluated by critique. This means that we will view and discuss your work as a class and provide constructive feedback. (Indeed, part of your assignment grade is based on giving and accepting feedback during critique sessions!)

In order to facilitate this process, you need to make sure the class has access to a working copy of your assignment. We will begin this process with an ad-hoc system, but will eventually use the AFS -> www capabilities provided by Computing Services.


Please work together. Talk about methods and ideas; provide feedback on each-others drafts; and, yes, show each-other source code! But (1) everything you turn in, you need to understand and type in yourself. No copy-pasting! (2) Always give credit. Comments and citations help you (and others) follow your reasoning!


This schedule is subject to change in cases where my estimation of the time required to cover a topic does not match the reality.

The Basics
Monday 1 February
Wednesday 3 February
Facts and Graphs
Monday 8 February
Wednesday 10 February
Monday 15 February
Wednesday 17 February
Monday 22 February
Taking Chances
Wednesday 24 February
Monday 1 March
Wednesday 3 March
Monday 8 March
Wednesday 10 March
Monday 15 March
Wednesday 17 March
Making Choices
Monday 22 March
Wednesday 24 March
Monday 29 March
Wednesday 31 March
Monday 5 April
Break Day
Things Over Time
Wednesday 7 April
Monday 12 April
Wednesday 14 April
The Final Sprint
Monday 19 April
Wednesday 21 April
Monday 26 April
Wednesday 28 April
Monday 3 May
Wednesday 5 May
out 1 February Assignment 1: Argue with interaction. due before class,
3 February
out 8 February Assignment 2a: Scrape some data. due before class,
10 February
out 10 February Assignment 2b: Argue by showing data. due before class,
22 February
out 24 February Assignment 3: Argue by showing futures. due before class,
8 March
out 10 March Assignment 4: Argue in bad faith. due before class,
17 March
out 24 March Assignment 5: Argue about connected actions. due before class,
31 March
out 19 April Project: An argument of your own design. due before class,
5 May