Polling Data, Binary Trees, and Heaps

Link to module

Evaluated December 2021

As developed, this module is designed to be part of the introduction to data structures for binary trees and priority queues in a standard Java-based Computer Science II course. Part 1 covers recursive linked binary trees, and Part 2 builds array-based heaps. The assignment works with polling data from the 2020 presidential election. Students are to use the poll results that are given as input via CSV files and update the entries of the binary tree so that it stores the name and current polling for candidates.

This module covers material in Algorithms and Complexity/Basic Analysis and Discrete Structures/Graphs and Trees.

The technical content ties well into a traditional data structures course. The module could easily replace an existing lab or project in most CS curriculum with very little adjustment. Students who engage in this assignment will need to have the technical background of a (traditional) second-semester computer science student. In other words, they will know how to program in Java, although the module could be adapted to another standard programming language.

An instructor adopting this module will need to create some reframing to have it fulfill responsible computing needs. Potentially an instructor redesigning delivery could explore issues of gendered naming conventions and question prioritization of name use to consider how to proceed. Additional background discussions with faculty from Political Science, Sociology, or Gender Studies could create a broader interpretation about the social perspectives that are latent within this module as it currently stands.

An instructor adopting this module will find concrete technical tasks that make the assessment of those tasks straightforward. With adjustment to responsible computing, an instructor will need to develop additional grading details and an evaluation rubric.


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