Ethical Reflection Modules for CS 1

While standalone ethics courses are increasingly common in computer science, I found that there are a lack of resources for integrating practice-based (coding!) reflection directly into CS 1 or 2 courses. This space acts as a repository of ethical reflection modules that I have created over the past couple of years. The goal of these modules is to:

  1. Introduce ethical reflection in CS 1 courses
  2. Develop ethical reflection habits alongside coding (all modules involve programming!)
  3. Pair directly with existing CS 1 curriculum (students practice for loops - but instead of practicing on trivial problems, their practice is situated in ethical design scenarios)

By reducing the barrier to adoption, my hope is that ethical reflection can be implemented more broadly in CS curriculum as a critical habit. Please read the FAQ for more information.


Hiring Algorithms: Developers as Decision-Makers

ethical hiring

What does it mean to design a fair algorithm? What is the human cost of efficiency? What systemic advantages/disadvantages are your algorithms likely to amplify?


Input Validation: Developers as Gatekeepers

university

What assumptions do we make about the people using our technology? What are the consequences of those assumptions? - who might we exclude? How do we capture diversity through design?


Ethical Engine 1: Developers as Definers of Identity

rescue

How can we adequately represent people in code? What characteristics of people should we NOT include in code? What are the implications of our representation decisions?


Ethical Engine 2: Developers as Moral Arbiters

rescue

What is ‘moral’ behavior in the context of a computer? How do we write code that is forced to assign value to people?


In Progress…

  • Module on data privacy and data ethics
  • Module on algorithm auditing (related to ethical engine)

License

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License