Link to module

Evaluated December 2021

This module asks students to work with the dataset from ProPublica’s landmark article “Machine Bias.” Students implement basic analysis and sorting of this dataset, which tracks the different parole recommendations and recidivism rates for Black and White inmates. This module was originally designed for an upper Computer Science elective class but could translated to any course in which students have basic programming familiarity (in this case, it relies on pandas/numpy). It could also be useful in a database or data science course. It is standalone but was designed to follow a prior lab in which students wrote code to handle data. Adapting this module as-is might require the instructor either to modify a previous assignment or to build in some extra time for the students to prepare the necessary code at the beginning of this one.

It addresses knowledge areas Software Development Fundamentals/Fundamental Data Structures and Information Management/Data Mining.

The module itself is almost entirely technical in orientation, although it builds on an article that offers substantive and penetrating sociopolitical analysis. The activity is best used as a component of a larger sequence of topics that probe fairness and bias but can be modified to be used as a standalone module. As a standalone assignment, the Pro Publica article and other analyses that are easily found on the web provide background both for the instructor and students. The article addresses the quantitative issues of data bias, biased algorithms and responsibility. Other readings on fairness, both technical and popular, will be helpful supplements to the discussion. They can help bring to the fore the fact that there are many (sometimes mutually incompatible) notions of fairness. Students should be required to read the Pro Publica article, and a discussion of that article should accompany the programming exercise. The instructor will need to develop discussion prompts to use with the module. Questions that link the programming exercises directly to the problems of predictive policing and enforcement will help students draw key insights into the influence that they have as developers. Because the assignment itself is entirely technical, the instructor may need to bring in expertise from Criminal Justice or Sociology. It may offer an opportunity for classes to collaborate.

Students can recognize the issue raised without having background in social or ethical theory. This module leads students to a thoughtful and substantive discussion about the potential harms of predictive policing and the enforcement disparities in the American legal system. Students might push back against this (“It’s just one algorithm” or even “maybe Black people are generally more likely to recidivate, because they’re poorer”) without some grounding in issues of fairness and structural inequality and of algorithms repeating historical biases. The conclusions they are led to are quantitative, which can be read as suggesting that there is a technical solution. This module may be more salient to students of color but is particularly useful for white students in identifying that the assumptions one brings to the development of software can and do become part of the software. With some guidance, they can see that handing off responsibility for civil/social decision making can reinforce power structures and support the power of institutions to discriminate. Instructors should prepare for these opportunities.

Instructors will have to develop their own assessment tools. This should be familiar with the programming part of the assignment. Adding a reflection component to this module would be helpful. That, too, would need an assessment tool.


The evaluation of this module was led by Emanuelle Burton and Judy Goldsmith as part of the Mozilla Foundation Responsible Computer Science Challenge. Patrick Anderson, Colleen Greer, Darakhshan Mir, Jaye Nias, Evan Peck and Marty J. Wolf also made contributions. These works are licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.