Course: CS 146: Computer Architecture
Course Level: Undergraduate
Course Description: "The class will review fundamental structures in modern microprocessor and computer system architecture design. Tentative topics will include computer organization, instruction set design, memory system design, pipelining, and other techniques to exploit parallelism. We will also cover system level topics such as storage subsystems and basics of multiprocessor systems. The class will focus on quantitative evaluation of design alternatives while considering design metrics such as performance and power dissipation."
Course instructor: David Brooks
Module Title: Computer Science and Climate Change
Module Author: Cat Wade
Semesters Taught: Fall 2019-2020
This module opens with an overview of some statistics pertaining to climate change and technology use and development. With the stakes in place, we turn to clarifying the distinction between: (a) normative questions and statements; and (b) descriptive questions and statements (see annotation 1). The rest of the class then draws on the students’ assigned reading which details five ethical issues pertaining to climate change. These are: skepticism about climate change, past emissions, future emissions, adaptation (adapting rather than preventing climate change), and direct intervention (geoengineering). In their homework assignment, the students are asked to read the assigned paper and restate each of the issues discussed in the form of a primary normative question (see annotation 2). The student responses are then used to guide class discussions through each of these topics. In particular, students are asked to identify which arguments and counterarguments to their normative questions they find most compelling and why. These sections are, therefore, highly student driven. After first thinking in small breakout groups, the students come together as a class to discuss the arguments for and against the normative questions they have identified. During the class discussions, the Embedded EthiCS TA writes the criteria students are using to evaluate arguments on the board. Once all five topics and associated normative arguments are evaluated, the TA asks the students to consider these criteria as a whole and identify any recurring patterns (see annotation 3). The TA then asks students to think of ways in which these criteria might apply to other ethical issues in CS. The module ends by picking up on one specific normative question raised in the ‘future emissions’ section and delves a little deeper: if environmental impact is a burden to be shared, how ought we to distribute this burden? To help adjudicate between some of the many options presented in the assigned reading, Rawls’ Difference Principle is presented as a possible means of choosing a path forward.
Connection to Course Material: This course looks primarily at the design, construction and efficiency of computer hardware, including processors, transformers and storage options. As such, energy consumption and economic impact are constant considerations. Considering the environmental impact of different possible design choices is thus a natural further question to ask.
Key Philosophical Questions:
Philosophical questions for modules are typically more applied, specific to the technical content of the CS course. For this module, however, the aim is to let student-identified normative questions drive the session. See marginal comments above for examples (in Module Overview).
Key Philosophical Concepts:
Gardiner, S. M. (2010). “Ethics and climate change: an introduction.” Wiley Interdisciplinary Reviews: Climate Change, 1 (1), 54-66.
• Strubell, E., Ganesh, A., & McCallum, A. (2019). “Energy and policy considerations for deep learning in NLP.” arXiv preprint arXiv:1906.02243
The Gardiner piece was selected for three reasons: (1) it covers a wide range of issues pertaining to climate change, thus, engaging/appealing to a variety of students; (2) it tackles a number of issues without framing those issues explicitly in terms of normative questions so that students can be asked to identify those driving questions for themselves, giving students a sense of ownership over the class discussions; and, finally, (3) it summarizes positions succinctly, providing arguments in favor and arguments against (without coming across as favoring any one position).
The CS professor assigned the Strubell et. al. paper. It is a great fit for the module, as it highlights some of the environmental impacts of architectural design in NLP that students have already touched upon in the course. It also includes a section on policy recommendations in light of these empirical facts, making it an ideal target for ethical analysis.
Sample Class Activity:
Students discuss each of Gardiner’s 5 ‘areas of discussion.’ The homework assignment (see below) serves as preparation for this discussion by asking students to identify the primary normative question at stake with each issue. In class, students are broken into small groups to discuss each issue and then reunited to share and discuss as a class. The Embedded EthiCS TA guides the discussion by breaking down the argumentative space. For example, with respect to ‘future emissions,’ after recapping the idea that cutting emissions can be thought of as a kind burden to be distributed justly, the students are presented with the following:
Who should be held responsible for cutting down future emissions?
Option 1: the bigger the past emission, the bigger the future cut
Option 2: every country should cut emissions by the same %
Options 3: the amount the country has to reduce emissions should be proportional to their socioeconomic circumstances
Discuss the 3 options: (a) Find a reason in favor and a reason against each of the options; (b) decide which option you think is the most ethical; and (c) state your position as a normative statement.
This activity builds on skills that students have been practicing in both the first half of the class and in their homework assignment. By the time we get to the activity on Future Emissions, the class has already broken into groups and discussed as a class the previous two issues of Skepticism and Past Emissions (and, importantly, practiced articulating the ethical reasons for and against positions within each issue). Students are encouraged to think both about the reasons raised in the Gardiner paper itself, as well as any additional reasons they might think of themselves. The students are, thus, well-equipped to tackle part (a) of the activity. After each discussion, the Embedded EthiCS TA writes up on the board the kind of criteria the students generated for evaluating these reasons and positions. Students are able to refer to these criteria when answering part (b) of the activity (it is explained that ‘which option do you think is the most ethical’ is to be interpreted as ‘which option do you think is the best supported by ethical reasons’). The task of articulating normative questions in their homework assignment and the explanation of the normative/descriptive distinction at the beginning of class have put students in a good position to tackle part (c) of the activity. Part (c) also allows another chance to see the difference between statements like ‘America has the economic capacity to reduce future emissions’ and ‘America should be made to reduce future emissions (perhaps because they have the capacity to).’
The students are assigned the two readings listed above and asked to do the following:
[Note: the footnotes in the module assignment were part of the assignment itself.]
This assignment plays a number of roles. First, it is designed to help structure the breakout and group discussions that happen in the class (see especially questions 1(a) and 2). Second, it is intended to prime the students to start applying the ethical issues and arguments raised in the Gardiner piece to their course material and to CS issues more broadly. Third, it incorporates both the philosophical and the technical texts that the students were assigned (see especially questions 2 and 3). Fourth, it is intended to guide students through a close reading of the Gardiner piece, which is dense at times (see especially question 1(b)).
1 Normative questions and statements are often thought to contrast with descriptive questions or statements. E.g.: ‘it is wrong that the bank was robbed’ vs. ‘the bank has been robbed’
2 Interestingly, questions of the form ‘who should have to fix this mess’ are often both normative and practical, i.e., sometimes we are not only asking: ‘who should we hold responsible for this mess’ but also ‘who is able to fix this mess?’
In our experience, students are highly participatory throughout the module. The high level of engagement is likely due to: (1) the homework assignment being designed so as to prepare them for discussion; (2) the structured breakout sessions followed by group discussion for each of the ethical issues.
Responses from the students, the CS professor, and TAs were also positive. We believe this is due to the concerted effort to constantly tie the philosophical material to the course material (in both the homework assignment and throughout the module).
Future iterations should aim to improve on time management. When students are extremely engaged and have a lot to contribute, we found that certain conversations had to be cut short and that the discussion of distributive justice at the end was rushed.