Computing For Social Good

Spring 2019

Course Info

CSCI 499, Section ID: 29973
M/W 2-3:50pm, SAL 213
Instructor: Barath Raghavan
Office Hours: Tue 2-3pm


In this course we will aim to understand computing's potential for good (and harm). In teams of two, you'll do a self-defined, concrete, semester-long independent project with a goal of real impact. The topics covered over the semester will include social, ecological, energetic, and other major challenges and the role computing and technology can play in responding to such challenges.

We will read about national- and global-scale challenges and more specific subproblems, and on relevant technology projects. Many of the hardest social and ecological problems are intertwined in complex ways, in ways we will explore. While we will examine some conventional engineering ethics topics, our aim is much broader: we will start with fundamental social and ecological challenges and then consider what role, if any, technology might play in responding to them. One of our aims will be to differentiate between nice-sounding-but-ineffective tech-for-good solutions and those that have a chance for real impact. As a result, we will take a systems perspective -- to trace root causes and find the right place(s) to make lasting change.

Course Structure

The course will involve discussion, presentation, and group work during class. For the first four weeks of the semester the assignments will primarily be readings, but will quickly transition to project work thereafter.


The reading spans a wide range of topics and provides diverse perspectives on technology and social good. A number of assigned readings and video lectures also examine societal challenges to provide context and deepen our understanding of the role of technology in society; these assigned readings and video lectures can be of a dark nature as they discuss problematic aspects of society. Each week's reading is accompanied by a short response assignment to be submitted on Blackboard, due by 7pm the day before each class meeting so that everyone is prepared for in-class discussion (e.g., the reading response for Wed 1/9 is due 7pm Tue 1/8).

It's highly recommended that you read each week's readings in the order listed -- each reading builds on previous ones.


In teams of two, you'll work on a semester-long independent project, culminating in a system that your team will build, test, and demonstrate to the class. You will scope out a real-world challenge that you want to address; articulate what makes solving this challenge important to society; examine possible avenues for addressing the challenge; identify key human, non-human, technological, and non-technological elements and factors in the challenge; define metrics and evaluation criteria for a possible response; and lay out milestones for the project you will develop to address the challenge. While it will be up to your team of two to meet the milestones, others in the course will be your sounding boards, beta testers, and partners in building something real, with an aim of having the project live on after the semester is over.

Projects won't have a particular form or use any specific technology -- each project will be problem dependent and it will be up to you to explore options, learn relevant technologies, and implement your project. At a high level, the first milestone will require deeply understanding and then describing the problem being solved and carving out a specific piece where computing/technology will be useful. Later milestones will depend on the project, but may include an initial prototype of software and/or hardware for the project, alpha tests with others in the class, beta tests with real users outside of class, engagement with community groups, policymakers, nonprofits, businesses, and/or other stakeholders, etc. If things go well, each project could be the kernel of something much bigger, such as a new organization (e.g., a nonprofit, startup, B corp, or community group) or research initiative through which the work will live on and grow in impact.


Details of grading will be provided in class. Grades will be determined based upon the project, weekly responses to readings, and attendance as follows:

70% Project (10% for each of 4 milestones, 30% for final deliverable)
30% Weekly responses and attendance


Date Reading Assignment
M 1/7
W 1/9
  • Why did you sign up for this course? (2 paragraphs)
  • What would Toyama ask Silberman; how would Toyama reply? (1 paragraph)
  • What would Silberman ask Toyama; how would Silberman reply? (1 paragraph)
  • What would Graham ask Rittel/Webber; how would they reply? (1 paragraph)
  • What would Rittel/Webber ask Graham; how would Graham reply? (1 paragraph)
M 1/14
  • What would Diamond ask Meadows; how would Meadows reply? (1 paragraph)
  • What would Meadows ask Diamond; how would Diamond reply? (1 paragraph)
  • What would Murphy ask Anderson; how would Anderson reply? (1 paragraph)
  • What would Anderson ask Murphy; how would Murphy reply? (1 paragraph)
W 1/16
  • What would Twenge ask Thompson; how would Thompson reply? (1 paragraph)
  • What would Thompson ask Twenge; how would Twenge reply? (1 paragraph)
  • What would the Ethical OS authors ask the critics; how would they reply? (1 paragraph)
M 1/21
- -
W 1/23
  • Propose two project ideas (two paragraphs each: one paragraph each on the problem and one paragraph each on the project).
  • What would Graham ask Meadows; how would Meadows reply? (1 paragraph)
  • What would Meadows ask Graham; how would Graham reply? (1 paragraph)
  • What would Hemenway ask you about each of your project ideas; how would you reply? (1 paragraph each)
M 1/28
  • In pairs, describe your proposed project in detail (2 paragraphs on problem, 2 paragraphs on project idea, 2 paragraphs on technology, 2 paragraphs on societal impact).
  • In pairs, for each of Meadows's 12 leverage points, describe a possible "change" responsive to the problem you are working on (2-3 sentences per leverage point "change").
  • In pairs, situate your project in the current historical moment, leveraging what Gandhi, King, and Winner describe in this week's readings (4 paragraphs)
W 1/30
  • In pairs, describe the way in which money, economics, and incentives may play a role in the problem you are addressing, leveraging insights from this week's reading; also address the interaction your project may have in this regard (2 paragraphs on problem, 2 paragraphs on project).
  • In pairs, describe how you are planning to follow Graham's advice from patterns 7 (Lots of Little Things), 8 (Start with Something Minimal), and 9 (Engage Users) from this week's essay (one paragraph per pattern).
  • In pairs, describe your four project milestones (3 paragraphs each, one for goal, one for deliverable, and one for metrics/evaluation).
M 2/4 - -
W 2/6 - Milestone 1:
  • Make a public-facing website for your project that describes what it does, who it is for, and why someone would want to use it.
  • Prepare a 5-minute presentation that includes a short demo of what you have built for Milestone 1
  • Submit a description of your technology (3 paragraphs). Include a link to your code repository.
M 2/11
  • In pairs, describe 5 schleps, following Graham's advice, that you will undertake for Milestone 2. One schlep should involve recruiting users, one should involve data collection, one should involve code/technology; the other two can be anything else relevant to your project. (2-3 sentences each)
  • In pairs, building on observations of Hess/Ostrom and Eisenstein, what commons does your project leverage? How is it managed? How should it be managed? (2 paragraphs)
W 2/13 User conversations
M 2/18
- -
W 2/20 Milestone 2: Progress update.
M 2/25 Project review
W 2/27 USDS and Governance
M 3/4 Project review
W 3/6 Milestone 3
M 3/11
- -
W 3/13
- -
M 3/18 Speech
W 3/20 Speech
M 3/25 Thing from the future
W 3/27 Milestone 4
M 4/1
W 4/3 User recruiting (outside of class)
M 4/8 No class
W 4/10 Guest: Samantha McDonald, UC Irvine
M 4/15 Guest: Bill Tomlinson, UC Irvine
W 4/17 Guest: Shaddi Hasan, UC Berkeley
M 4/22 Health-technology / bot ethics
W 4/24 Guest: Vineet Pandey, UC San Diego
M 5/6 Final presentation, 2-4pm, SAL 213 (tentative)