Embedded EthiCSTM @ Harvard Bringing ethical reasoning into the computer science curriculum

Systems Programming and Machine Organization (CS 61) – Fall 2020

First time reviewing a module? Click here.

Click  to access marginalia information, such as reflections from the module designer, pedagogical decisions, and additional sources.

Click “Download full module write-up” to download a copy of this module and all marginalia information available.

Module Topic: Balancing Accessibility and Efficiency in Design
Module Author: Zachary Gabor

Course Level: Introductory undergraduate
AY: 2020-2021

Course Description: “Fundamentals of computer systems programming, machine organization, and performance tuning. This course provides a solid background in systems programming and a deep understanding of low-level machine organization and design. Topics include C and assembly language programming, program optimization, memory hierarchy and caching, virtual memory and dynamic memory management, concurrency, threads, and synchronization.” 

Semesters Taught: Fall 2018, Fall 2019, Fall 2020, Fall 2021-22

Tags

  • character encodings (CS)
  • unicode (CS)
  • distributive justice (phil)

Module Overview

This module focuses on ethical questions surrounding potential tradeoffs between accessibility and efficiency in design. In the context of the history of digital character encodings, the module introduces the distinction between prioritizing accessibility vs. efficiency in design, ethical principles for navigating this trade-off, and offers an opportunity to practice applying these principles to a case study. The module applies the lens of distributive justice, construing accessibility in design as a matter of equal distribution of access, and discusses the ways in which different distributive principles make different recommendations.

    Connection to Course Technical Material

UTF-8 improves upon previous encodings that did not contain characters which substantial portions of the population use to read and write. It also improves upon UTF-16, which contained more characters, but was inefficient for common alphabetic scripts. The module equips students to think through the tradeoffs between accessibility and efficiency in design and provides them with principles to analyze their options.

The course includes a discussion of the historical development of digital character encodings. An aspect of that history involves navigating the challenge of designing a uniform system for digitally representing characters in all the world’s languages without too great a sacrifice of efficiency (more characters generally means longer encodings so that each character has a unique encoding, and longer encodings mean more cost to process and transmit). As part of the CS course content, students are familiarized with some drawbacks to the predecessors of UTF-8 (the present state of the art) both in terms of efficiency and coverage of written language communities, as well as ways in which UTF- 8 improves upon these predecessors.

Goals

Module Goals

  1. Introduce students to design challenges in which a
    balance between efficiency and accessibility is required.
  2. Acquaint students with distributive principles and considerations regarding when they are reasonable to apply.
  3. Consider how these principles apply in a concrete design case.

    Key Philosophical Questions

The ultimate goal of the module is to equip students with tools to approach a pervasive challenge in design – the tradeoff between accessibility and efficiency – in its different iterations. The key philosophical questions reflect this. This is not to say that the module is delivered in abstraction from application to real cases.

  1. What sorts of principles might be employed to balance accessibility and efficiency in design?
  2. In what kinds of situations is it important to lend strong priority to accessibility? In what kinds of situations is it necessary to lend strong priority to efficiency?
  3. What kinds of principles might help guide us to a reasonable solution when both kinds of constraints are exigent?

Materials

    Key Philosophical Concepts

The goal of the module is to equip students with philosophical tools for thinking about distributive justice in order to assess accessibility in design. The space of design choices is presented as consisting of three kinds of options: 1) designs which are not accessible at all to some groups; 2) designs which are accessible to all groups but to varying degrees; and 3) access that is equally available to all groups. The key philosophical concepts are the building-block concepts relevant to distributive justice and distributive principles.

  • Distributive Justice
  • Rawls’ Difference Principle
  • Utilitarianism
  • Rights
  • Egalitarianism

    Assigned Readings

The goal in selecting a reading was to find material that would provide a concise, accessible introduction to philosophical thought about distributive justice in order to apply some of these considerations to distribution of access in design. It was surprisingly difficult to find suitable source material, but selections of this encyclopedia entry provide a concise introduction. An alternative worth considering is for the Embedded EthiCS TF to write a short explainer summarizing different distributive principles and considerations in favor of and against them.

  • Excerpts from Stefan Gosepath’s Stanford Encyclopedia of Philosophy entry “Equality.”

Implementation

    Class Agenda

The goal of the presentation is to introduce via concrete examples the idea that different balances between accessibility and efficiency make sense in different design challenges. Further, it aims to introduce students to the framework of distributive justice as a tool for thinking about this issue. With these points in place, acquainting students with different distributive principles and the rationales that support them enables students to make principled decisions about how to prioritize accessibility in different design contexts.

  1. Overview: Distributive Principles and the Balancing of Accessibility and Efficiency
  2. Distinguish between designs with different degrees of accessibility
  3. Discuss principles of distributive justice
  4. Evaluate proposals for distributive justice
  5. Exercise: designing an encoding for Ooglish

    Sample Class Activity

The goal of this exercise is to allow students practice breaking up an ethical challenge into steps in accordance with the structured approach discussed in the presentation. It prompts students to first think about what difference accessibility makes in this circumstance in order to get an idea of how pressing the concern is. They are then asked to connect this level of demandingness with an appropriately suited distributive principle. Lastly, students consider how various design solutions conform or fail to conform to a selected principle.

Students are presented with a hypothetical scenario involving a new written language community with an unprecedentedly complicated script (it has a complex system of accents which may be combined to form on the order of billions of different characters). Students are asked to think about choosing between declining to incorporate the new language at all, incorporating the new language with a unique code point for each character, or incorporating the new language by only including a codepoint for each base character and accent symbol. Students are then prompted to think about how possessing the ability to digitize text in their language might affect their everyday lives, and to choose an appropriate distributive principle. Finally, they were asked to consider which design alternatives met the constraints of their chosen distributive principles.

    Module Assignment

This assignment was used for a course with very large enrollment, where substantial individualized feedback was not feasible. Given the goals of the module, which was to convey some highly generalizable tools, a quiz covering key ideas helped reinforce the lesson.

  • What is a distributive principle in the context of moral and political inquiry about equality?
    1. A principle that applies distributively to groups, i.e. if it applies to a group, it applies to each of its members
    2. A principle that applies distributively to bundles of goods, i.e. if it applies to a bundle of goods, it applies to each portion of that bundle
    3. A principle determining which distributions of something of value are just or unjust.
    4. The person in charge of a distributive school.
  • Which best states Rawls’ Difference Principle?
    1. Any measures an institution takes towards equality must respect differences between peoples’ preferences.
    2. In striving for equality, institutions should seek to minimize the difference between the best off and the least well off.
    3. A difference in the value of the resources with which people are supplied is only justified if it benefits those supplied with the least.
    4. Any theory of the relationship between justice and equality must accommodate differences in the ways in which the world’s cultures have thought about equality.

Lessons Learned

Students were highly engaged and, based on their questions and comments, clearly grasped the key points. One thing to watch out for was that it was often easier or more natural to reason “backwards” from the design solution that seemed appropriate in a case to the principle that fits that solution. This is of course not by any means an illicit kind of ethical reasoning, but it is important to show how both this direction and the direction of reasoning from principle to application can both be useful (and mutually reinforcing) in thinking about ethical problems.

Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution 4.0 International License.

Embedded EthiCS is a trademark of President and Fellows of Harvard College | Contact us