About
Over the last decade, computer science programs across the world have had to face the question: are we training ethically-competent computer scientists? The need for ethics training in computer science curricula is, of course, unquestionable. Seemingly every day, there are new controversies caused by new technologies, technology companies, and/or technologists. But teaching ethics is necessarily difficult, and it is especially so for a field that has only recently begun to grapple with its impact on society.
At the University of Illinois Urbana-Champaign (UIUC), ethics is currently delivered through a standalone course, CS210: Ethics & Professional Issues, which is required for all engineering majors. This course begins with an introduction to ethical philosophy and logical argumentation, then proceeds to discuss topics such as privacy, professional ethics, and intellectual property. These topics are taught primarily through lectures and discussion sections. Weekly essays are also assigned to have students think critically about the topics at hand and explicate their perspectives in writing.
But what became clear to Ryan Cunningham, the professor for CS210 (and our mentor), was that students felt a disconnect between the highly-technical content of their core CS classes and the non-technical structure of their lone ethics course. Ryan sought to remedy this, and over time he introduced two programming-based labs – in data ethics and security vulnerabilities – that have learnings which reveal themselves gradually, and at different times for every student. For example, the data ethics lab teaches students how one could, unintentionally, build a racist AI; the learning in this case would be, of course, the danger of biased training data in machine learning. In the context of CS ethics, these learnings are a unique feature of programming assignments. By grounding ethics instruction in programming tasks, we believe that students can make stronger connections between code and the relevant ethical risks; forging these connections early will allow, in our opinion, students to view their work as computer scientists through an ethical lens. To this end, a recent paper by Fieslel et al., Integrating Ethics into Introductory Programming Classes, demonstrates the positive impact of embedding ethics into programming assignments on student engagement and subject matter retention.
As undergraduates, we felt strongly that programming-based ethics is a powerful way to learn about ethical dilemmas in computing. And so, we sought to introduce a new programming assignment into CS210, focused on the ethics of content moderation.
Related Work
This project, and our larger ethics initiative at the University of Illinois, was inspired by countless researchers and advocates at other universities. Here are just of the people and work we’ve drawn upon: