Software for Society

Software for Society

CMPS119: Software for Society

Winter 2018



Instructor: James Davis - UCSC Professor - Computer Science Department

Office Hours: Thur 11-12pm - E2-363



TA: Rakshit Agrawal (

Office Hours: Monday 10:00am - 11:30am - E2-385


TA: Nick Adams (

Office Hours: Thursday 11:30am - 1:00pm - E2-385


Lecture: Tu/Th 8:00am - 9:35am - Oakes 105


1) How is software development useful for addressing social issues? What are examples of impact people have had? In class you get to hear a bunch of interesting examples and discuss them.

2) Course project addressing actual real world needs of a non-profit partner. If your project is great, it will be used.


During Winter 2018 we are still sorting out exactly which projects, but we are in discussions with these non-profit partners:

  • Democracy Earth Foundation - They are a Y Combinator backed non-profit building protocols with smart contracts that allows decentralized governance for any kind of organization. They would like user feedback on their new open source decentralized governance software tool ‘Sovereign’. You can apply Sovereign to a use case, perhaps on campus or in the community, and provide feedback to help improve the tool. Because the tool is open source, you also have the opportunity to contribute to the code. They also have data on how users are using Sovereign, and would like it to be analyzed to better understand how Sovereign is being used.
  • Sunwork - SunWork Renewable Energy Projects is a nonprofit in California's San Francisco Bay Area and Central Coast that installs solar electricity systems on small-energy-footprint homes with the help of trained volunteers. They are interested in displaying the cumulative impact of their solar installations on their website, to help show the impact of their organization and the volunteer effort. They also want to show the total installed kilowatts and the cumulative CO2 emissions prevented.
  • CruzAI - CruzAI is applying artificial intelligence to IOT for energy efficiency applications. They need help with data visualization for their residential electricity monitoring system. They have a backend ready and front end partially ready, but it needs plumbing. Students should have the following skills: Python (Proficient); D3JS (Proficient); Data Structures (basic algorithmic thinking); SQL (simple queries). Alternatively, they also have 1TB of time series data and would like help visualizing data and doing data analytics with Spark or Hadoop or even Tableau.
  • Cultural Heritage Imaging - CHI is a leader in digital capture and documentation of the world’s cultural, historic, and artistic treasures. They are interested in automating several parts of their 3D capture methodology.

What Do I Get?


Satisfies a Computer Science BA/BS upper division elective course

If you are some other major that normally can use CS courses as electives, ask me.


This course formally requires CMPS101 as a pre-req. This was set to insure that people had some level of computer skills, since the whole point is to get you thinking about how computer science might be used to benefit society.

  • Computer Science Majors - This class is targeted at you.
    • The good: You will get to code. It will be actually useful in the real world. It will be awesome.
    • The bad: You will also have to read ...
    • The ugly: ... and discuss ideas with no right answer. 

Class Time

Lectures: Class time will be spent 40% on lectures and presentations of case studies relevant to the topic of the week. These case studies are meant to provide a broad overview of both social issues and areas of computer science and how they might be applied. Topics and case studies will rotate according to current events and student interest. However a 10 week breakdown might be as follows:

  • Week 1 Introduction to Class and Overview
  • Week 2 Most important social problems – What should we solve?
  • Week 3 Cultural Heritage Preservation
  • Week 4 Objective Metrics, Ranking Problems, Visualization
  • Week 5 Education
  • Week 6 Computers for All? Is it really useful to give computers to everyone?
  • Week 7 Poverty, Money, Finance, Employment
  • Week 8 Governance, Free speech, Human rights, Content freedom
  • Week 9 Health
  • Week 10 Energy, Environment

Class time discussion: About 30% of class time will be spent on discussions relevant to the areas being introduced. I generally run these discussions by taking a controversial issue, and asking students to propose solutions, leaving open both the politics of the social issue itself and the range of technical solutions. It’s fun.. expect to argue convincingly.

Class time projects for non-profit partner: About 30% of class time will be spent with/for the non-profit partner. The class time itself will be presentations from the non-profit, as well as project working group meetings.


25% Quizzes related to readings (Canvas)

25% Individual short papers on class topics / readings (CrowdGrader)

25% Contribution to team project

25% Participation (in-class discussion and online discussion forums)

No Midterm, No Final


A group project addressing a real need of the non-profit partner. Our goal as a class is to give them something they need. The non-profit has an obligation to specify a well defined project that we can actually accomplish. We have a goal to figure out how to actually give them that. It needs to actually work. As in they can take it to the field and actually use it. Without it crashing. 

Project Reports:

Each week, each group will be required to submit a progress report.   

At the end of the project a online written report will be due. 

At the end of the project their will be a presentation on the work to a panel of judges.


Weekly readings or videos will be assigned. Most of the readings should be available as PDFs online. You should have read/watched them by Monday night (before Tuesday morning class) of each week.


We will have multiple choice quizzes on Canvas based around the readings and class lecture, due each Monday night. 

Short Papers

A 1 page paper will be due each week on some topic related to the readings, class discussion, and/or lecture. We will use CrowdGrader this quarter to grade these responses, so everyone will be responsible for grading other students assignments anonymously. Those grades will then be averaged. If you fail to grade other students assignments, your score will be penalized on that assignment. Grading of other student assignments will be due Thursday evenings. 

Participation and Online Discussion

There will be an online discussion forum on class topics, readings, questions and controversial topics. You are required to participate. Expect to spend 20 minutes a day M-F with at least one post/reply per day.

As for the forums: we will be using Piazza.  Please refer to the piazza course page to sign up for the class forum!


Course Summary:

Date Details Due