Course Level
Knowledge Unit
Fundamental Data Structures
Collection Item Type
Other Material Type

This course module, designed for use in a first-year programming course, gets students thinking about ethical issues that arise from the technology they will build. The module is on the topic of contract tracing, employed during pandemics and other disease outbreaks to limit the spread of
communicable diseases such as COVID-19. The module includes pre-class, in-class, and post-class components. As students learn how a graph can represent contacts and consider the data that a contact tracing system might record, they are guided through an active learning exercise to discover an issue: Private information can sometimes be inferred from a contact tracing system.
The ethical issue of balancing public health against individual privacy arises naturally from the technical discussion.

In the remainder of the module, students learn how to imagine and discuss the perspectives of different stakeholders on this ethical trade-off. For example, an overwhelmed acute care doctor has different priorities than someone with precarious employment and a chronic illness, who is afraid their private information might be leaked. Rather than trying to find the "right" answer, discussing these diverse viewpoints allows students to practice noticing and raising ethical questions and contemplating how different software design choices impact ethical issues---a skill that is critical to their work, whether as academic researchers or industry software developers. Students who complete this module learn that ethical considerations are a critical component of software design.

With only 50 minutes of in-class time and short pre- and post-class activities, this module packs a large impact into a short amount of time, whether as a stand-alone module or combined with the follow-up module, "Embedded Ethics: Pandemic Exposure Notification Systems and Giving Ethical Justifications".

ACM Digital Library Entry


Prior Knowledge Needed by Students and Instructor(s).
This module assumes students are familiar with graph data structures, so it fits well in a CS2 course. To adapt for use in CS0 or CS1, the instructor could represent the data simply as a table and omit any mention of graphs. Alternatively, the instructor could use a graph representation for contact data if they merely introduce the concept of a graph; no graph algorithms are assumed. The students do not need any prior familiarity with Philosophy, since all necessary concepts are covered in the pre-class video and the lecture. However, we recommend that at least one member of the instruction team have some expertise in Philosophy, especially normative ethical theories and applied ethics. (Our module was team taught—by a Computer Science postdoc and a Philosophy postdoc, with grading support from a Philosophy graduate student—but other formulations are possible.) If team teaching is not feasible, the resources listed in section 4 provide background information that would be useful for Computer Scientists teaching the module alone.

In-Class Activities
We have several recommendations for how to facilitate the small-group activities that are central to this module. First, we recommend having students in the same groups for both activities, so that they can grow comfortable with their groups while performing the Computer Science activity and then feel more at ease sharing their thoughts during the Philosophy activity. Since the Philosophy activity is likely to be a different type of discussion than students have engaged in before, we recommend that some members of the instructional team model such a discussion before sending students into their groups. (For reference, see the demo conversation between the Philosophy and Computer Science instructors in the Recording of Lecture video included in the Materials, from 23:40–26:13.) Finally, we recommend collecting responses through a Google Form. This makes it very clear exactly what each group is to do, which is helpful in any distributed activity. It also enables the instructor to quickly collate and summarize student responses when they return to the lecture portion of the class. Also note that the lecture may result in substantial engagement. Therefore, allocating additional time for answering questions, e.g. through informal after-class discussion, office hours, or online discussion board, is recommended.

Homework and Grading
The homework cements the skill of taking a particular stakeholder’s perspective, practiced during the Philosophy group activity, and allows stu- dents time for solitary reflection on what they’ve learned. Since it is a writing assignment, we recommend devoting time at the end of the lecture to provide clear instructions, explain the rubric, and answer any student questions. We chose to give full credit for a good faith effort. With this approach, the homework could be graded by a Computer Scientist, however, we recommend employing a Philosophy graduate student (or upper-year undergraduate) who has some expertise in quickly grading similar exercises. With this light grading, we needed only approximately 10 hours to grade and provide some minimal feedback for a 300-person class. If more time is available, the TA could provide feedback on common themes, misconceptions, etc. to the instructor for discussion in a subsequent class or dissemination in writ- ing. In addition to grades allocated to the homework, we also included a small grade incentive for completion of the pre-class video and quiz to ensure student preparation prior to the lecture.

Optional Follow-Up
To maximize impact, we recommend following this module with our next embedded ethics module, "Embedded Ethics: Pandemic Exposure Notification Systems and Giving Ethical Justifications" [6], where students learn that anonymization is not sufficient to solve privacy concerns, address the trade-off they have discovered between privacy and public health needs, and learn about justifying a design choice to a stakeholder. In addition, instructors may wish to direct students to other courses, departments, and talk series available at their school that engage with similar issues at the intersection of ethics and Computer Science (see Additional Resources in the Materials Section).

Keeping the Module Fresh
At the time of writing, COVID-19 was the most recent communicable disease to have a major impact on society, but the world has experienced many others before that, including SARS, HIV, and tuberculosis. Although the definition of what constitutes a contact differs by disease, the analysis of contact tracing in this module pertains to all diseases that can be spread by human-to-human contact. The instructor can substitute whatever disease they feel is most appropriate for the time.

Engagement Highlights

This module incorporates several of the NCWIT Engagement Practices: In accordance with the Make IT Matter engagement practice, Use Meaningful and Relevant Content, the module centers on the highly relevant topic of COVID-19 and shows students how Computer Science design decisions can have real-world impacts. The materials also engage student inter- est by referencing pop-culture phenomena like TikTok and superheroes.

Furthermore, this module Makes Interdisciplinary Connections, linking Computer Science to the humanities discipline of Philosophy by inviting students to consider how different contact tracing systems make different ethical trade-offs be- tween an individual’s right to privacy, public health needs, and the needs of diverse stakeholders, impacted by these systems.

This module also embodies the Grow an Inclusive Community engagement practice. All examples and images avoid stereotypes and include representation of diverse social groups. The in-class portion is also highly interactive, incorporating students’ responses into the lecture and including two small-group activities that encourage collaborative learning.

Materials and Links

Computer Science Details

Programming Language

Material Format and Licensing Information

Creative Commons License