Machine Bias

Link to module

Evaluated December 2021

This module has students replicate an analysis that was done by a news organization. It introduces the notion of machine bias and risk assessment in a two-week lab or mid-semester project for a Computer Science II course. Integration into a standard CS II course should take minimal preparation and very little time from other material in a CS II course. Students learn about ArrayLists and practice data structure design. Students should be familiar with objects and inheritance. 

It directly covers material in Software Development Fundamentals/Algorithms and Design, Software Development Fundamentals/Fundamental Programming Concepts, and Software Development Fundamentals/Fundamental Data Structures. It also fits into the Computational Science/Introduction to Modeling and Simulation knowledge area. The use of public data sets would also make this a good module for a Data Science Elective Course. 

The module provides background resources or information for teaching addressing the more immediate concerns that the assignment raises. It is well situated in technical practice and addresses fairness and equity from a data centric stance. It presents these topics in a way that allows students to construct world views from intersectional and humanist lenses. 

An instructor adopting this module who has background in handling potentially challenging conversations about racial bias will be better prepared to support students through this module. Students from historically disenfranchised or marginalized communities subject to judicial discrimination and over-policing could have strong emotional responses. Instructors should provide trigger warnings and should be prepared to afford students the opportunity to privately discuss challenges around participation and offer alternative methods of completion if necessary. The responsible computer science content is presented thoughtfully and uses varied media/modalities. Faculty from Criminal Justice and Sociology departments will be able to support discussion around this topic from a broader social perspective.

The module includes time for discussion but does not require active engagement on the material on racial bias. It presents the topic in a way that allows for either synchronous or asynchronous engagement. Many of the prompts presented challenge the student to think about better programming practices and programming implementation techniques in a way that reduces potential harm. 

An instructor adopting this module needs to develop their own grading tool and evaluation rubric. 


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