Teaching Responsible Computing Playbook

Teaching Responsible Computing Playbook

Working Across Disciplines

Authors: Maggie Little, Alicia Patterson, Vance Ricks

Responsible computing touches on questions central to many different disciplines. Philosophers ask about the nature of privacy and why we value it; political scientists ask how technology influences political systems; critical race theorists investigate how technology reproduces and reinforces institutional racism; psychologists consider how technology shapes the way we think and behave; disability studies analyze how disabled users ‘hack’ existing technology to make it work them. For these reasons, bringing the perspectives, concepts, and tools from other disciplines into conversation with responsible computing efforts can strongly enhance both teaching and research.

There are many ways to bring other disciplinary perspectives into teaching and research in computing. Something as simple as adding speakers from other disciplines to a computing department’s colloquium can raise important and potentially overlooked questions about responsible computing. To keep this entry manageable, we will focus on working across disciplines within computing courses. This can involve bringing material from other disciplines into existing computing classes, or developing new courses that are fully interdisciplinary in nature, which are often team-taught and cross-listed. This entry focuses more on the first option, noting that experiences of connections within an existing class can be a great way to test whether to try a more ambitious effort. The intended audiences for this section are individual faculty who are considering adding an interdisciplinary element to their courses.

At its most modest, other perspectives can be brought into computing courses by inviting guest speakers, or using TED-style videos, from faculty outside of the discipline. Faculty who do not have local resources for collaboration can also take advantage of incorporating web-based interdisciplinary modules into their course.

The benefit of these approaches is that they require less time and effort, and can add breadth by showcasing faculty from different disciplines. However, it can be challenging to integrate the content from a guest speaker or a one-off-engagement in a way that promotes genuine learning. This can be especially true when both the method of teaching and content are very different from the rest of your course.

More ambitious, and often more rewarding, are genuine collaborations with faculty partners from other disciplines. Collaborations require more time and flexibility, but they have the benefit of being able to integrate ethical or social impact topics with the technical content of the course, to model genuine interdisciplinarity, and to produce new insights for both partners and students. Examples of such collaborations include a faculty partner with whom you develop assignments, workshop(s), or co-teach class(es) or discussions.

One of the most important factors for a successful collaboration is finding the right partner (and being a good partner yourself!). Since you are working together in order to share knowledge and build something new that couldn’t be achieved without the other, good partnerships require an attitude of openness and respect for each other’s expertise. Be willing to ask questions when you don’t know what terms mean; be able to sit with some of the discomfort of being in a professional academic setting as a learner or newcomer to a discipline. Look for a partner who is okay with making mistakes and learning as they go, and for someone who has a willingness to experiment, learn, and iterate. It’s a good idea to ‘date before you marry’ - try out smaller, less ambitious collaborations to see whether you and your potential collaborator work well together, before going to large-scale projects. Also remember that in some sense, you and your collaborator “speak different languages.” Do your best to translate discipline-specific terms when possible. As important, be aware of ordinary terms whose discipline-specific uses can be confusing. For example, “bias” as a purely statistical concept differs from “bias” as a concept of prejudice.

Key Questions:

  • Which class will you choose? Will it be an introductory-level course? One that is intended for Computing (and related) majors, or one that is open to students from other majors? A course that you’ve taught repeatedly, or one that you teach less often (or maybe a new course)? If we are collaborating between two courses, then are they at the same level (both intro-level; both upper-level)?
  • What kind of addition will you make? Will you be adding guest lectures? Active workshops? A faculty partnership for re-designing courses? Ethics-oriented homework?
  • Where will the teaching team look to find guest speakers or partners to collaborate with?
    • Existing interdisciplinary groups: There are many ways of finding partners. First, you could look for existing programs, majors, institutes, and groups working on the problem. Perhaps there is a ‘Technology and Society’ interdisciplinary minor already offered at your school.
    • Existing classes: there could be people in the humanities already teaching ethics of technology. Browse the course listings for class titles. Many graduate students in the humanities might teach a freshman-writing-seminar on topics involving ethics and computing. Graduate students are often looking for opportunities to add to their CVs, and interdisciplinary work is rewarded on the job market.
    • Email the department: Some humanities and social science faculty and graduate students might find great interest in responsible computing once they learn more. An email to the department coordinator looking for interest is a great way to reach out and find partners.
    • Organically: Consider friends or colleagues you’ve worked with on a committee or other projects.
    • Your school’s (or nearby schools’) IT department: Someone working for a university IT department is likely to have a very interesting perspective on what happens when ethical norms meet institutional systems.
    • Community organization / community partner: Nonprofits and other organizations working on issues around responsible computing are potentially great partners and have the benefit of grounding ethical issues in real-world practice.
  • How will connections be built and reinforced from the non-Computing to the Computing material? Whatever elements of another discipline you include in a Computing class (even if minimal), they will be far more successful if they connect to what students are learning in the Computing course. This can be as modest as referring back to their previous class session or adding explicit connection to a technical lesson within an assignment. See the related section on choosing computing courses for more.
  • How will the effectiveness of the new material be assessed? Think ahead to how you’ll know whether the new material was worthwhile. Consider adding a short informal student feedback form. See the related section on learning outcomes and assessment for more.

If you are engaging in a collaboration, consider asking :

  • What will each collaborator be responsible for? A successful partnership involves clear expectations about responsibility. Not all partnerships need to be split 50-50 in workload, but the division of responsibilities is something everyone needs to be comfortable with. Each collaborator should be sufficiently committed to the work and agree on (or at least not having conflicting ideas about) the main goals of our collaboration. If you are collaborating closely (co-teaching, co-designing), you also need to consider who has authority over what. For example, is your partner equal in authority over grading, or are they merely playing an advisory role? As another example, who will manage materials on a course website or in a learning management system (Blackboard, Canvas, etc.)
  • How (if at all) do you want the collaboration to serve as a model for your students? For example, maybe you each agree to lead one class on a topic in the other person's field. This could be a way of modeling how it looks to try to learn and teach something about which you are decidedly NOT "the expert." Alternatively, you might decide that there are particular topics that each of you wants to reserve as "yours." It is important that the faculty who are not leading, display an authentic interest in the topics, not a ‘day off’ of teaching. Remember that you are modeling for students your own commitment to the importance of ethical and social implications of computing.
  • How will learning be assessed? Partners will be coming from different disciplinary methods for assessing students, so discussing how to assess student work is important.
  • How will the effectiveness of the collaboration be assessed? Some things your team tries will not work: it would be useful to take stock to figure out what to keep and what to discard in the next iterations of the collaborative course.
  • What process will be used with colleagues for working and communicating? Different people work differently, and the general difference can multiply when working with a colleague in another discipline. Don’t make assumptions. Be upfront about what works for each of you:
    • Does your partner work through conversation or work through documents?
    • What about expectations for electronic communication (e.g., email vs Slack), file sharing, and the like?
    • Make sure you have a way of documenting or recording your planning, so that successful work can be repeated. Record/document everything you do in your engagements so that it can be repeated by others (for example, if there are multiple partners working on the project over time, good documentation will help the project more seamlessly switch hands across semesters).
    • Create a schedule that both parties agree on, but particularly one that works within the structure of the course.


☐ Find a partner and pick a class that makes sense for collaboration.

☐ Decide on what kind of addition to make in the chosen course.

☐ Decide what kind and degree of collaboration to try for the course.

☐ Create a plan to connect interdisciplinary material to the Computing material.

☐ Set expectations about who will be responsible for which aspects of the project including grading and managing course material.

☐ Decide how your collaboration will serve as a model for your students.

☐ Establish methods to assess student work and learning

☐ Establish methods to assess the effectiveness of the collaborative project.

☐ Set expectations about communication method, response time and a schedule as well as a method to record the decisions and all interactions.


Georgetown University

At Georgetown University, several Computer Science (CS) classes collaborate with Ethics Lab, a team of philosophers and design thinkers who work on issues of tech and society, to embed ethics into the course with 2-3 active workshops across the semester.

Checklist walk-through (Here, we show how some of the checklist items in the previous section of this document could be used at Georgetown. The checklist did not exist when this collaboration was designed. This walk-through is meant only for illustrative purposes.)

  • Find a partner and pick a class that makes sense for collaboration
    • Embedded ethics collaborations primarily happened in upper-level courses, since freeing up space in introductory courses required more department-level coordination. To include embedded ethics in introductory courses, both upper level and introductory level courses would have to coordinate in order to make space for ethics workshops and coordinate what material students would be expected to know entering upper-level courses.
  • Decide on what kind of addition to make in a chosen course and what kind and degree of collaboration
    • We embedded ethics workshops within computing courses. This collaboration is highly integrated as computing and Ethics Lab instructors co-design and co-facilitate the workshops.
  • Create a plan to connect the interdisciplinary material to the computing material
    • The workshops are designed to fit with the arc of course. The workshops took the theme of the computing unit. For example, a workshop on issues of data privacy for Covid-19 tracing apps happened during the data processing unit.
  • Decide how your collaboration will serve as a model for your students.
    • Ethics Lab instructors came to co-teach ethics workshops throughout the semester. We believed the co-teaching model was important to demonstrate to computing students that designers and ethicists need to be working together, rather than ethics being something that is “handed-off” at the end of the design process.
  • Establish methods to assess student work and learning
    • Homework assignments were graded only for completion and built-up over the course to roughly the weight of one programming assignment.The final exam included an ethics question, graded by the computing faculty. Workshop activities were ungraded.

Harvard University

At Harvard University, the Embedded EthiCS program introduces ethics instruction into roughly half of the CS curriculum. In collaboration with computer science faculty, philosophy graduate students and postdoctoral fellows in both philosophy and CS work together to develop ethics course modules to embed within computing courses. The aim of this partnership is to help students learn to identify, reason through, and communicate about ethical challenges that arise in their work. For example, in a data systems class, the philosopher might explore issues of privacy in large, distributed systems. In a programming languages course, she might ask students to consider ethical specifications as well as functional ones. In a human-computer interaction course, she might explore whether software engineers should design systems that are accessible to visually impaired users.

Checklist walk-through (Here, we show how some of the checklist items in the previous section of this document could be used at Harvard. The checklist did not exist when this collaboration was designed. This walk-through is meant only for illustrative purposes.)

  • Find a partner and pick a class that makes sense for collaboration
    • In its earliest years, the program directors asked for volunteers from among instructors whom they thought likely to be especially enthusiastic. Those early adopters generated interest and buy-in among their colleagues. Now, as the program has grown, instructors are asked by the CS Director of Undergraduate Studies in advance of each new term whether they would like to collaborate with Embedded EthiCS.
  • Decide on what kind of addition to make in a chosen course and what kind and degree of collaboration
    • In the typical case, we embed one module that comprises pre-reading, in-class lecturing and active learning exercises, and some kind of graded component. The graduate fellow from philosophy has primary responsibility for executing the module, though its design is interdisciplinary.
  • Create a plan to connect the interdisciplinary material to the computing material
    • Instructors meet with their paired graduate fellows either just before or in the early days of a new term. After agreeing then on a broad plan, fellows then work out the details of their modules in close collaboration with postdocs in both philosophy and CS, other fellows working in the program, a faculty director responsible for pedagogical oversight of the program, and their partner instructor in CS.
  • Decide how your collaboration will serve as a model for your students.
    • Modules sometimes involve co-instruction, which directly models the fruitful ways in which ethicists and computer scientists can collaborate in service of an end that neither could accomplish on their own. Even in cases in which the graduate fellows are primary instructors, course heads signal the importance of interdisciplinary work by situating the module for the students within the larger framework of the course and its objectives, while fellows do the same by showing that it is possible to develop a working knowledge of an area outside of their academic home through close collaboration with specialists.
  • Establish methods to assess student work and learning
    • The best methods involve integrating CS and ethics skills at the assignment level. For example, an already existing assignment that asks students to manipulate data sets might also ask them to reflect on the ethical significance of the ways in which the relevant data could be collected, stored, transmitted, or represented.
  • Establish methods to assess the effectiveness of the collaborative project.
    • We have partnered with colleagues at Harvard’s Edmond J. Safra Center for Ethics, Stanford University, and the New Jersey Institute of Technology (supported via the Public Interest Technology University Network (PIT-UN)) to begin an assessment of distinct ways of implementing ethics education in tech-related courses. In the case of Embedded EthiCS, long-term assessment should proceed at both the module and programmatic levels, as a working hypothesis of the endeavor is that students will see educational gains through repeated exposure to modules across the curriculum.

Guilford College

At Guilford College, A collaborative assignment between Introduction to Computer Programming (CTIS 210) and Ethics in a Digital World (PHIL 241) was created.

Checklist walk-through (Here, we show how some of the checklist items in the previous section of this document could be used at Guilford. The checklist did not exist when this collaboration was designed. This walk-through is meant only for illustrative purposes.)

  • Find a partner and decide what kind and degree of collaboration to try for the course.
    • The idea for this collaboration grew from several years of conversation and shared interests between the two course instructors, but was made possible only after a collegewide curricular revision (whose partial goal was to provide more opportunities for collaboration in teaching and in learning).
  • Create a plan to connect interdisciplinary material to the Computing material.
    • The instructors redesigned the Introduction to Computer Programming course, so that some of the course units introduced ethical concepts from the PHIL 241 course (for example, a lab assignment in the course unit about algorithmic fairness that required the students to compare that notion of fairness to other notions of fairness).
  • Decide how your collaboration will serve as a model for your students.
    • The Philosophy instructor attended most meetings of the Intro Programming course, participating as an occasional guest lecturer.
  • Establish methods to assess student work and learning
    • The instructors designed a common small-group lab activity for the students in both of their courses. Each group contained at least one student from each course. The activity is based on a chapter from Meredith Broussard’s Artificial Unintelligence that students in both courses read, in which basic concepts of “machine learning” are applied to predict who would survive the sinking of the Titanic and to raise larger questions about prediction by software algorithms. The assignment was assessed on a “Satisfactory”/”Not Satisfactory” scale.

Haverford College

At Haverford College, Sorelle Friedler in the Computer Science department has worked together with Jon Wilson in Environmental Studies to teach students about the environmental impact of their code. The students are taught that the CO2 emissions of their code relates to the time it takes to run as well as the computer’s location and the energy mix of the electricity grid in that location. For example, locations that get a high percentage of their energy from coal power plants will have higher CO2 emissions than those locations for which low carbon sources such as wind power are predominant. These CO2 emissions calculations are related to computational complexity since code that takes longer to run will also have a higher energy usage and thus higher CO2 emissions. Coarse emissions calculations can be programmed easily by students or more nuanced calculations can be determined using the CodeCarbon python package.

In integrating these ideas of environmental sustainability into the computer science curriculum we focused on the connection to computational complexity since that allowed integration into the existing curriculum to reinforce existing curricular goals without needing to supplant them. While the underlying ideas and mechanisms for measuring code CO2 emissions were introduced in class, we focused on designing programming assignments and other problem sets that would allow students to explore and solidify their understanding of these connections outside of class. Resources for these assignments can be found here.

Analysis of Algorithms Course (complexity and environmental sustainability)

In Analysis of Algorithms (a senior-level algorithms course using the Kleinberg and Tardos Algorithm Design text) the analysis of the CO2 emissions was introduced as part of the introduction to complexity along with other ways that computational complexity can consider resources beyond time (e.g., along with a basic introduction of space complexity). The introduced problem set extends typical time complexity questions to include experimental measurement of energy usage and analysis and comparisons of the resulting time complexity to the resulting energy usage.


Related Pages

Authors and Contributors

Image of Maggie Little

Maggie Little (author)

Image of Alicia Patterson

Alicia Patterson (author)

Image of Vance Ricks

Vance Ricks (author)

Image of Jeffrey Behrends

Jeffrey Behrends

Image of Sorelle Friedler

Sorelle Friedler