History and Evolution of Embedded EthiCS
Overwhelming undergraduate interest spawned Embedded EthiCS. At the end of Fall 2016, students in Barbara Grosz’s computer science (CS) course on “Intelligent Systems: Design and Ethical Challenges” clamored for more CS courses that incorporate discussion of ethical issues along with technical computer science content. After discussions with CS faculty colleagues, who though supportive recognized they lacked sufficient ethics expertise, Grosz enlisted the help of Philosophy professor Alison Simmons. Students in the course had told her that Simmons, though an historian of early modern philosophy, was interested in linking philosophical and technological subject matters.
Grosz and Simmons began a CS-Philosophy collaboration to develop an effective, scalable approach for teaching ethical reasoning in the computer science curriculum. Three principles guided their design: first, that ethical reasoning should be taught by those with domain expertise; second, that the addition of ethical reasoning content should be accomplished by modifying existing courses in the CS curriculum rather than by creating new stand-alone courses outside the main curriculum; and third, that the approach should not ask too much of any particular course. These principles recognized the CS faculty request for expert help, the constraints of undergraduate course plans, and the limits on how many class sessions and assignments a single course can give over to this purpose.
The plan that emerged was for an embedded, distributed pedagogical approach rooted in a Philosophy-CS collaboration. The embedding of ethics modules in existing courses conveys the important message that, like the need for efficient and elegant algorithms and code, wrangling with ethical issues is an inherent part of doing computer science. The distribution of ethics modules across the CS curriculum shows students that ethical issues arise from all domains of computer science and gives students repeated practice in ethical reasoning.
A pilot Embedded EthiCS program was launched in Spring 2017, with four courses that were obvious fits for an ethics module (e.g., data science and human-computer interaction). The next academic year (2017-2018), we purposefully expanded gradually, adding five and then eight new courses, including some that were less obvious fits (e.g., second semester introductory programming, data systems, and programming languages). In Fall 2018, Embedded EthiCS mounted modules in eight courses, including systems programming, systems security, and an advanced algorithms course. This deliberate incremental pace of evolution was important to the program’s success, as philosophers and computer scientists had to adjust to each other’s cultures and together we learned what worked and what didn’t. The collaboration between philosophers and computer scientists successfully showed that ethical reasoning is a skill that can be learned and is not simply a matter of intuition. Embedded EthiCS now typically provides 10 course modules each semester/year.
A 2019 CACM article reports on the first 3 semesters experience, including some early lessons learned. Our website has a more current Repository of Ethics Modules, which are made available to all under a Creative Common Attribution 4.0 International license (CC BY 4.0).
An important component of the successful expansion of the program after the pilot was the creation of the Embedded EthiCS Teaching Lab. Initially constituted by three graduate fellows who designed and taught modules, the Teaching Lab is now led by Philosophy faculty member Jeff Behrends and includes two postdoctoral fellows in philosophy and two (part-time) postdoctoral fellows in CS. The Lab has fostered a vibrant collaboration between earlier-career stage philosophers and computer scientists, enhancing their research and career possibilities as well as yielding ever more impressive modules.
We encourage other institutions to join our effort!