Embedded ethics at Harvard: Harvard: bringing ethical reasoning into the computer science curriculum.

Embedded EthiCS @ Harvard: bringing ethical reasoning into the computer science curriculum.
Course Modules / CS 161: Operating Systems

Repository of Open Source Course Modules


Course: CS 161: Operating Systems

Course Level: Upper-level undergraduate

Course Description: "This is an in-depth course in operating systems design and implementation, focusing on multicore operating systems kernels. Operating systems are some of the most complex software artifacts that exist. Kernels abstract the features provided by computer hardware, making those features safer and more convenient to use. This means that OS designers have to understand how hardware works (at least at the level of specifications) and how software works. OS programmers also must become comfortable with navigating in, and contributing to, code bases too large to wholly understand. Most of us can pick up this important skill. (Course description )"

Module Topic: Ethical Tradeoffs in System Design: Performance versus Correctness

Module Author: Kate Vredenburgh

Semesters Taught: Spring 2019


systems CS
cost-benefit analysis phil

Module Overview: In designing operating systems, engineers need to trade off different positive and negative features of operating systems that cannot be realized at the same time. Different ways of trading off desiderata impose different costs and benefits on relevant stakeholders. This module uses cost-benefit analysis as a moral framework to decide on the best way to decide about these tradeoffs, ethically speaking. The example of designing a system that has fine- or coarse-grained locking is used throughout the lecture as a way to think systematically about those tradeoffs using cost-benefit analysis.

Connection to Course Technical Material: This module uses the example of deciding whether to use fine- or coarse-grained locking to illustrate the tradeoff between correctness and performance. Fine- and coarse-grained locking are taught to students earlier in the semester.


Module Goals:

  1. Introduce students to the framework of cost-benefit analysis as a tool for thinking through ethical tradeoffs.
  2. Familiarize students with the strengths and criticisms of this framework.
  3. Give students practice applying cost-benefit analysis to make a decision about whether to use fine- or coarse-grained locking in an imaginary scenario.

Key Philosophical Questions:

  1. How should software developers make tradeoffs between performance and correctness?
  2. What are the strengths and weaknesses of the cost-benefit analysis framework?
  3. Does the distribution of costs and benefits matter morally?
  4. Should the calculation of costs and benefits be sensitive to individuals’ responsibility for those costs and benefits?
  5. Can costs and benefits be monetized, or otherwise placed on a single scale, or are they instead incommensurable?
  6. Should future costs and benefits be discounted?

  • Boardman (2006), "Cost-Benefit Analysis: Concepts and Practice, excerpts."
  • Heinzerling and Ackerman (2002), “Pricing the Priceless.”

Key Philosophical Concepts:

  • Costs and benefits
  • Discounting
  • Distribution
  • Incommensurable values

Cost-Benefit Analysis gives an introduction to cost-benefit analysis. “Pricing the Priceless” outlines arguments in favor of and against cost-benefit analysis.


Class Agenda:

  1. Introduction to costs and benefits and the problem of tradeoffs.
  2. Example: fine- vs. coarse-grained locking and the trade-off between performance and correctness.
  3. Cost-benefit analysis.
  4. Criticisms of cost-benefit analysis.
  5. Active learning activity: choosing between fine- and coarse-grained locking.

Sample Class Activity:

Students are asked to read the scenario below:

Imagine that you work for a company that designs operating systems for large-scale water treatment plants. A water treatment plant removes contaminants from water that humans will consume and factories will use; factory equipment can tolerate higher levels of impurities than humans can tolerate. Representatives from the Cambridge city government are thinking about purchasing your OS. However, the officials complain that your OS has poor scalability as the number of contamination sensors to monitor gets large. You debug the scaling problem and learn that it is caused by the use of coarse-grained locking inside your OS. A city official suggests that you modify the OS to use fine-grained locking. However, the redesign would need to be finished quickly, or else you will lose the government contract.

Students are then broken up into small groups and asked to deliberate about what they would do in this scenario. Following the small group discussion, the Embedded EthiCS fellow leads a class-wide debrief.