Note: the most updated iteration of the python version of this assignment is now hosted at https://ethicalcs.github.io/
Authors: Evan Peck (Bucknell University), Gabbi LaBorwit (Bucknell University '20)
The Ethical Engine is a python programming project that is designed to engage introductory CS students with ethical design. The scaffolding and rationale behind this project will can be read at this Medium post.
The Ethical Engine project consists of two parts:
-
Building the Ethical Engine: Modeled off of MIT's Moral Machine, students are presented with randomly-generated scenarios in which an autonomous car must decide between saving the passengers in the car OR the pedestrians in the crosswalk. They must write a program that will input any potential scenario, and output who the car should save. There are a number of factors that students must take into account, including demographics (age, gender, etc.), profession (doctor, homeless, criminal, etc.), body type, whether pedestrians were crossing the street legally, and whether the car must swerve to save the pedestrians.
-
Algorithm Audit: The instructor will obfuscate the ethical engines that students have constructed in such a way that the code can be called as a python module but is not human readable. With these modules now acting as proprietary code, students must perform a scraping audit of 3-5 ethical engines that have been provided to them. By writing a program to run thousands of scenarios and recording the results, students should be able to articulate how the programs they are auditing may be biased towards different groups of people.