Fall 2026 • Updated September 1, 2026

IPHS 200: Programming Humanity

Fall 2026

Professor Katherine Elkins
with guest Professor Jon Chun

“We become what we behold. We shape our tools and then our tools shape us.”

— John Culkin, reflecting on Marshall McLuhan

Course Description

How do we think about humanity in a computational age?

Our words, movements, preferences, relationships, bodies, and behavior are increasingly translated into data and acted upon by computational systems. These systems visualize, classify, predict, simulate, automate, and intervene in human life.

This course asks a central question:

Can we program our humanity into our tools so that they remain humane, or will our tools program us?

Over the semester, we will examine data, algorithms, visualization, networks, programming languages, automation, probability, surveillance, predictive models, natural language processing, simulations, biotechnology, social networks, and artificial intelligence.

We will move continually between concepts, code, models, and ethical questions. We will learn how computational systems work while also asking what happens when we use them to represent human beings, cultures, and societies.

No previous programming experience is required. Students come to this class with very different backgrounds and strengths.

This course also provides many of the computational and conceptual foundations for AI for Humanity, offered in the spring, where we examine artificial intelligence in much greater depth.

Learning Goals

By the end of the course, students will:

Course Materials

Scott E. Page, The Model Thinker

The book is available through the Kenyon College Bookstore.

We will read most of The Model Thinker over the semester. One of Page’s central ideas will run throughout the course: complex systems are rarely understood adequately through a single model. Different models make different aspects of the world visible.

DataCamp

All students will receive a free DataCamp subscription for the semester.

We will use DataCamp for structured practice in Python, data science, statistics, and other computational skills that support our in-class work and projects.

Other Materials

Additional readings, notebooks, datasets, videos, and exercises will be posted on the course website at programminghumanity.org.

Because the technologies we study change rapidly, specific readings and contemporary cases may be updated over the course of the semester.

How the Course Works

Most weeks combine four kinds of work:

Concepts: What computational idea are we trying to understand?

Code: How does it work in practice?

Models: What assumptions do we make when we represent people or systems computationally?

Humane Questions: What happens when those representations begin shaping the world they describe?

Some weeks will emphasize reading and discussion. Others will involve more coding, modeling, or project work.

Assignments and Grading

Attendance, Participation, and Preparedness — 25%

This course is designed to be active, collaborative, and exploratory. Students will bring different strengths and backgrounds to an interdisciplinary classroom.

The 25% attendance, participation, and preparedness grade consists approximately of:

Participation does not simply mean talking frequently. It includes:

If you do the work and engage seriously with the course, you will do well.

Readiness Quizzes and Homework Checks

Some class meetings will begin with a very brief, low-stakes readiness quiz or written response based on the assigned reading, DataCamp work, or other homework.

These are intended to encourage preparation, not to function as high-stakes tests. They will generally take only a few minutes and focus on basic comprehension, interpretation, or reflection.

The lowest two readiness-quiz scores will be dropped. This allows for ordinary absences, difficult weeks, and the occasional reading that simply did not happen.

Approved absences will be handled in accordance with College policy.

Three Mini-Projects — 24%

The mini-projects give students experience with several forms of computational analysis and prepare them for the final project.

  1. Data Storytelling
  2. Computational Text / Modeling
  3. Social Network Analysis

Detailed instructions and rubrics will be provided when each project is assigned.

DataCamp and Computational Exercises — 26%

Regular DataCamp modules and other computational exercises provide structured practice with Python, statistics, data analysis, and related methods.

These assignments are generally low-stakes and graded primarily for completion. Detailed assignments and deadlines will be posted on the course website.

Final Project and Poster — 25%

For the final project, students will undertake an original project drawing on the ideas or methods of the course.

Projects may involve computational analysis of numeric, linguistic, cultural, social, or network data, or an in-depth investigation of a technology that demonstrates understanding of both how that technology works and the human, ethical, or social questions surrounding it.

Detailed project guidelines will be provided later in the semester.

Final Project and Exam Period

There is no separate final examination.

Students who complete and submit their final project before their section’s scheduled final-exam period do not need to attend the exam session.

Students who have not yet completed and submitted the project are required to attend the scheduled exam period, which will serve as a supervised work session for completing and submitting the project.

Grades

Grades will be maintained in a private course gradebook. Each student will have access only to their own grades and feedback. Grades will not be posted publicly or in a class-wide spreadsheet.

The course grading categories are:

Grading Scale

Discussion, Debate, and Intellectual Community

This course asks questions on which reasonable people may disagree.

We will discuss technology, privacy, inequality, race, gender, disability, surveillance, biotechnology, artificial intelligence, and other subjects that may touch directly on people’s values, identities, and experiences.

One of our goals is to encounter a genuine diversity of perspectives and to learn how to debate difficult questions well.

You are encouraged to question arguments, challenge assumptions, change your mind, and respectfully disagree with one another and with the instructors.

Serious intellectual disagreement also requires attention to evidence, careful listening, and sensitivity to the experiences and positions of others.

We will distinguish between challenging an idea and dismissing a person. We will try to understand positions before criticizing them, represent opposing arguments fairly, and remain open to the possibility that another perspective reveals something our own does not.

The goal is not to eliminate disagreement. It is to become better at having it.

Use of Artificial Intelligence

Generative AI is part of the contemporary computational environment and may be used in this course as a learning and computational tool.

Appropriate uses may include:

AI should support rather than replace your own reasoning.

You are responsible for understanding, checking, correcting, and being able to explain anything you submit.

When generative AI contributes substantively to an assignment, you should disclose how you used it.

Individual assignments may establish additional guidelines about permitted AI use.

Attendance and Absences

Because much of the learning in this course takes place through discussion, collaborative problem solving, coding, and experimentation, regular attendance is expected.

Students may miss three class meetings without a grade penalty.

Additional unexcused absences may lower the attendance and participation portion of the course grade.

Absences recognized under College policy, including religious observances and documented circumstances requiring accommodation, will not be penalized.

If you know that you will miss class, please communicate with Professor Elkins as early as reasonably possible.

Late or Missing Work

The purpose of assignments is to help you learn, not to catch you out on deadlines.

If circumstances interfere with your ability to complete work on time, communicate with Professor Elkins before the deadline whenever reasonably possible.

Reasonable extensions can often be arranged.

Work that is substantially late without communication may receive a penalty, particularly when lateness interferes with collaborative work or feedback.

Major projects cannot simply be skipped. If circumstances prevent you from completing one on schedule, we will establish a plan for completing it.

Out-of-Class Work

In addition to scheduled class meetings, students should expect to spend time each week:

Some weeks will involve substantially more reading; others will involve more computational work.

Academic Integrity

Students are expected to submit work that meets Kenyon’s standards of academic integrity.

Collaboration is an important part of this course. You are encouraged to discuss problems, troubleshoot code together, and help one another learn.

Unless an assignment is explicitly collaborative, however, the final work you submit should represent your own intellectual contribution, and you should be able to explain it.

Sources, code, data, ideas, and substantive assistance from other people or artificial intelligence should be acknowledged where appropriate.

If you are uncertain about what is permitted for a particular assignment, ask.

Accessibility Accommodations

Kenyon College values diversity and recognizes disability as an aspect of diversity. Our shared goal is to create learning environments that are accessible, equitable, and inclusive.

If you anticipate barriers related to the format, requirements, or assessments of this course, contact Student Accessibility and Support Services (SASS) at sass@kenyon.edu, and then speak with Professor Elkins so that appropriate accommodations or adaptations can be implemented.

Religious Observances

Students who need to miss class or alter an assignment schedule because of a religious observance should contact Professor Elkins as early as possible so that appropriate arrangements can be made.

Title IX and Civil Rights

We will study and discuss subjects that may sometimes cause discomfort or distress.

If you wish to speak with an instructor about a reading, assignment, classroom discussion, or personal experience, please understand that faculty members may be required to report certain information involving sexual misconduct, discrimination, discriminatory harassment, interpersonal violence, or stalking to the appropriate College office.

Confidential resources are available through Kenyon’s designated confidential-support services.

Changes to the Syllabus

This syllabus provides the structure of the course.

Because Programming Humanity engages rapidly changing technologies and contemporary events, particular readings, examples, coding exercises, and cases may change during the semester.

Significant changes to assignments or deadlines will be announced clearly in class and on the course website.


Fall 2026 Schedule

Specific readings, The Model Thinker chapters, DataCamp exercises, notebooks, and assignment deadlines will be posted on programminghumanity.org as each unit approaches.

Thursday, August 27

Introduction: Programming Humanity

Course introduction, syllabus, central questions, and how we will work together.

Can we program our humanity into our tools so that they remain humane, or will our tools program us?

Tuesday, September 1

Week One: Data

Concepts: Data, information, information theory

Code: Introduction to data science

Models: Turning the world into data

September 8 & 10

Week Two: Processing

Concepts: Algorithms, cognitive science, neuroscience

Code: Algorithms and computational processes

Models: Rules and procedures

Humane Question: What is consciousness?

September 15 & 17

Week Three: Storytelling Visualized

Concepts: Visualization, storytelling, persuasion

Code: Data visualization

Cases: Data journalism, misleading visualization, misinformation

Humane Question: Can a visualization tell the truth and still deceive?

Mini-Project 1: Data Storytelling

September 22 & 24

Week Four: Interconnecting Humanity — Networks

Concepts: Networks, nodes and edges, network effects, diffusion, contagion

Models: Network models

Code: Computational networks

Contemporary Questions: Cyber networks, bots, distributed systems, and autonomous agents acting through interconnected systems

Humane Question: When does a network acquire capacities that none of its individual members possesses?

September 29 & October 1

Week Five: The Language of Thought — Programming Aesthetics

Concepts: Programming languages, formal languages, programming paradigms

Code: Python, syntax, grammars, and different ways of structuring computation

Humane Question: What is the difference between a natural and an artificial language?

Tuesday, October 6

Week Six: Ro/Bots — Automating Humanity

Concepts: Cybernetics, feedback, control, automation, and robotics

Code: Control structures and computational feedback

Cases: Robotics, autonomous systems, labor, and human augmentation

Humane Question: What should humans delegate to machines?

October 8–11

October Break

No class Thursday, October 8.

October 13 & 15

Week Seven: Data, the New Oil — Surveillance and Privacy | Independent London Week

Professor Elkins will be attending the Schmidt Sciences convening in London.

Concepts: Databases, Big Data, surveillance, and privacy

Cases: Contemporary surveillance technologies, location data, platforms, data brokers, and inferential profiling

Humane Question: What can computational systems know about us that we never explicitly told them?

Students will complete a guided independent and collaborative surveillance unit, including a short surveillance audit of an everyday technology or service.

October 20 & 22

Week Eight: Quantifying Uncertainty

Concepts: Probability, distributions, uncertainty, and causality

Code: Statistical thinking in Python

Models: Probabilistic models

Humane Question: How should we make decisions when we cannot know the future?

October 27 & 29

Week Nine: Models — Predicting Humanity

Concepts: Classification, prediction, decision trees, and machine learning

Code: Predictive modeling and the analytics pipeline

Models: Comparing assumptions and competing explanations

Humane Question: When does prediction become judgment?

November 3 & 5

Week Ten: Natural Language — Finding Humanity in Text

Concepts: Natural language processing and computational text analysis

Code: Text processing and sentiment analysis

Case: SentimentArcs and computational approaches to narrative

Humane Question: What do we gain and lose when language becomes data?

Mini-Project 2: Computational Text / Modeling

November 10 & 12

Week Eleven: Simulating Humanity

Concepts: Agent-based models, emergence, local interaction, and path dependence

Models: Schelling, Axelrod, Zipf, and power-law phenomena

Code: Computational simulations

Humane Question: All models are wrong. When are they useful?

November 17 & 19

Week Twelve: Evolving Life — Recoding Humanity

Concepts: Genetic engineering, CRISPR, synthetic biology, and brain-computer interfaces

Contemporary Questions: Base editing, prime editing, engineered biological systems, and emerging methods of altering biological life

Humane Question: What happens when humans can deliberately alter the biological systems that make us human?

November 21–29

Thanksgiving Break

December 1 & 3

Week Thirteen: Social Networks — Domesticating the Social Animal

Concepts: Social networks, centrality, communities, influence, diffusion, and collective behavior

Code: Social network analysis

Models: Networks, contagion, and thresholds

Humane Question: Are we programming social networks, or are social networks programming us?

Mini-Project 3: Social Network Analysis

December 8 & 10

Week Fourteen: Artificial Intelligence — From Programming Humanity to AI for Humanity

Artificial intelligence brings together many of the ideas we have studied throughout the semester:

data + algorithms + probability + models + language + networks + automation

Rather than attempting to survey AI in one week, we will use it to look backward across the semester and return to our central question:

Can we program our humanity into our tools so that they remain humane, or will our tools program us?

Students who continue into AI for Humanity in the spring will take up these questions in much greater depth.

Final project work and course synthesis