Week 11 - Engineering Equitable Software
Learning Objectives:
In this week of the course, you will learn to:
- Explain that just because you can build some software does not mean that you should
- Provide examples of situations where software causes (inadvertent) harm
- Articulate the ethical responsibilities of professional software engineers
- List a set of questions that you can ask to evaluate the public impact of software
- Explain ways in which developers of software often differ from the users of that software, introducing potential inclusivity bugs
Lessons:
- 11.1: Engineering Equitable Software Video, Slides: PDF, PPT, Keynote
- 11.2: Ethics in Software Engineering Video, Slides: PDF, PPT, Keynote
- 11.3: Acceptance and Inclusivity Testing Video, Slides: PDF, PPT, Keynote
Resources:
For further reading:
- Software Engineering @ Google, Chapter 4 (Engineering for Equity)
- Coverage of Google Photos auto-tagging bug WSJ, and more recent from Wired
- COMPAS coverage: The Atlantic, ProPublica, ProPublica data
- Price discrimination: WSJ, FairTest
- Climate considerations: in NLP, in content delivery networks
- Robles v Domino’s Pizza coverage: Eater, Columbia Journal of Law & Social Problems
- Citicorp Center Design case study
- Therac-25 case study
- Value Sensitive Design @ Khoury
- ACM software engineering code of ethics, IEEE code of ethics
- GenderMag: GenderMag home page, 2019 research paper applying GenderMag to MS Academic
- Web accessibility resources from W3C: WCAG 2.0 specification, evaluating web accessibility
- On the origins of the ADA: Judy Heumann memoir, Crip Camp: A Disability Revolution (Netflix)
- A/B testing at scale at Facebook: Planout project, Presentation on Planout, on the morality of A/B testing
- Podcasts: Felienne interviews Margaret Burnett on GenderMag, 99 Percent Invisible on Curb Cuts