With funding from the Mozilla Foundation Responsible Computer Science Challenge, we had a panel of experts evaluate over forty teaching modules that can be used in teaching Responsible Computer Science, understood in the broadest possible terms.

Responsible CS module evaluations based on criteria we developed.

Each evaluation is intended to help instructors know what they need to consider before adopting the module. Our hope is that the guidance makes adopting a module more likely and that instructors who want to expand their students’ exposure to Responsible Computer Science can do so more easily and more confidently. Below we provide some general advice for more effectively incorporating Responsible Computer Science into the teaching of Computer Science.


Regarding responsible computing, taking time out of the everyday rhythms of CS education to explore cultural, philosophical and sociopolitical issues can be a good thing. It offers students the opportunity to stop and reflect at a deep level and reconsider their assumptions. But because class time is limited, an in-depth module may not be optimal or even possible for your course. Yet, there are modules we evaluated that engage responsible computing in ways that open the conversation without disrupting the delivery of core material.

Because so much of computing culture treats social and ethical concerns as ancillary, teaching responsible computing requires more than just transmitting ethical concerns: it is necessary to reorient students, on a fundamental level, toward caring about the impact computing has on others. Effecting this kind of fundamental reorientation, however, can feel daunting for instructors who are unfamiliar with teaching non-technical subjects.

Many of these modules are accompanied by supplemental material to support instructors in making this move. By reading about each module, you better equip yourself to teach something you wouldn’t otherwise feel comfortable taking on.

Modules that integrate coding and design work with social and ethical reflection can be a great way to get students thinking about how all their decisions have ethical stakes. Many of the Computer Science 0, Computer Science I and Computer Science II modules we have evaluated do just that. By framing discussion so that students see the ethical and social concerns as integral to the technical material, students are more likely to see the broader impacts of their work as professionals. As a Computer Science student matures through an RCS-focused curriculum, they move from learning how to talk about RCS issues in the context of software to deep analysis and decision-making on controversial issues. Different modules are appropriate for different stages.

Ethical theory and social theory from other fields can be a great way to help your students expand and enrich the way they see the world and can equip them with concepts and language for describing and analyzing what they see. But it takes some knowledge (or support) to teach these subjects and sometimes for students to learn them. That’s why we advocate for two things. First, there are faculty in disciplines such as sociology, philosophy, cultural studies and psychology who have that knowledge and may be willing to collaborate. Seek them out and learn from them. Second, consider adding a Responsible Computer Science module to courses at all curriculum levels. Doing these things lays a foundation that makes such discussions, especially with people who are not computer scientists, part of the practice of computing. There is value in having students learn how to have discussions about the impact of technology. These conversations, especially when they involve students from different academic backgrounds, help Computer Science students better understand how to draw on outside expertise for problems they do not understand. Further, it helps students outside of Computer Science understand the role they have to play in analyzing the impact software has on people and social structures.

Finally, if you do decide to adopt any module advancing Responsible Computer Science, please let the creator of the module know and give them credit. It’s the responsible thing to do.


The materials here were developed by Patrick Anderson, Emanuelle Burton, Judy Goldsmith, Colleen Greer, Darakhshan Mir, Jaye Nias, Evan Peck and Marty J. Wolf. These works are licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.