Course Syllabus

CS 194-27: IT for sustainability





Climate change has been described as “the defining challenge of our age”. This is not just because of the dire consequences of inaction, but also because fossil fuels are so entwined in our society that reducing their use is a complex, multi-disciplinary problem with few easy solutions.


How can we, as CS researchers, participate in addressing this challenge? Don’t all the problems deal with physical infrastructure - buildings, transportation, water, food, sewage?


This class explores techniques by which IT can be used to improve sustainability in the physical world. We will focus on transportation, which accounts for 35% of Greenhouse Gas (GHG) emissions in California, and 28% nationwide. We will do so by working together to develop the e-mission platform, which aims to capture detailed travel patterns of users, use them to encourage energy efficient transportation at a personal level, and make the aggregate data available for better land use and transportation planning at an institutional level.  


Three main learning areas:


  • Learn how to use Computer Science techniques to understand and improve complex physical systems in the built environment.

  • Experience building end-to-end systems (mobile, cloud, and infrastructure) that people want to use.

  • Contribute collaboratively to an open source project and open information repository.


Five main skill sets:


  • Phone based sensing and interaction (Week 3: Phone Sensing)

  • Service architecture and backend delivery platform

  • People - interactions, privacy, and motivation

  • Data integration

  • Exploratory Data Analytics



At least one of CS 160, CS 162, CS 168, CS 169, CS 188, or consent of instructor.


Assignment structure:


  • Assignments: Pick a small task (TODO/test) related to the theme of the week and fix/implement it. Given a short talk on what you learned from the task and the related readings. Extra credit if TODO/test is complicated. Discuss with TA to scope the work and make sure that it is feasible. Due every week for the first 5 weeks.

  • Project: Design and implement a substantial project - this can either be filling in part of the platform, or building an app on top of the platform. The project will have two deliverables:

    • Tested, integrated code: Code needs to pass code review by TA and be pulled into the repo before the project is complete.

    • Paper: 6-8 page paper. Each paper will also be presented in a mini-workshop organized at the end of the semester.

  • Deadlines:

    • Code bits for the assignments are due on the midnight of the due date

    • Individual code bits for the project are due 23rd Apr.

    • Final, integration tested code is due week before RRR week (30th Apr).

    • Papers are due RRR week.

    • Presentations are due on the day of the workshop (workshop date TBD).


Grading Policy:


There will be ample help available. The TA is available over videoconf and/or chat in addition to section, and will provide help if you put in the effort. You are strongly encouraged to use the help because “almost works” is not good enough for the real world. Code needs to pass code review by the TA and be pulled into the repo before submissions are complete.


Grading structure:


  • Assignments: 40% (8% per week) (mini-project + reading)

  • Project: 45% (code + paper)

  • Participation: 15%




All projects will be done in groups of 3. With an enrollment of 15, this translates to 5 groups. For the weekly assignments, there will be assigned groups, and students will be rotated through the groups. Based on their experiences, students can choose their own 3 person groups for the final project.


General theme of the activities:

  • Mini-project: Needs to be done before class.

  • Reading: Needs to be done before class. Reading should help you think more deeply about the mini-project.

  • Lecture/discussion: Will provide an high-level overview of the themes for next week.

  • Prep: Setup needed for the next mini-project. Help with prep is available after lecture, in the last hour of class.

Class schedule summary



Lecture theme




1 (22 Jan) Week 1: Organizational Meeting

Informational meeting


Install e-mission

CS for sustainability (pg 1-8), Energy Future 2050 (pg 1-8),

Research Types

2 (29 Jan) Week 2: Backend

The Backend

setup and use database and webapp from the repo

Implement small backend change

Baker measurements, Coda (sync), x-kernel

3 (5 Feb)

Week 3: Phone Sensing

The Phone (Guest lecture: Francois)

setup phone dev on one platform and import e-mission or cfc_tracker code

Implement small phone change

ACE, Biketastic, Car path filter (chapter only, dense, read for concept and evaluation)

4 (12 Feb)  Week 4: People (Privacy)


People (privacy)

access and load your group’s personal history for the past 4 weeks using mongorestore

Implement one strand of the recommender system, propose 5 papers for meta-review by skimming literature, propose set of APIs along with ROI

Differential Privacy, Unique in Crowd, The Circle (circle_awakening.pdf, circle_pitches.pdf)

5 (19 Feb) Week 5: People (Motivation)

People (motivation)

Reality is broken (what_exactly_is_a_game.pdf, saving_the_real_world_together.pdf), Meta-survey of effectiveness

6 (26 Feb)

Week 6: Transportation APIs

Transportation APIs

Simple script to read some public API data

Integrate one data source.

REST paradigm,

OneBusAway, Missed Connections

7 (5 Mar)

Week 7: Analysis

Data Analytics (Guest lecture: Alexei P.)

Install python numeric libraries

Experimental data analysis yielding one insight

 Active transportation metasurvey, Traditional regression in Idaho, Quantified Traveler

8 (12 Mar)

Review examples of potential project topics (Guest lecture: Stuart Macmillan)

Discussion on potential projects

150 word summary of project idea


9 (19 Mar)

Project Integrative Review

Final project list


Spring Break

10 (2 Apr)

focused topics related to projects


11 (9 Apr)


12 (16 Apr)


13 (23 Apr)

Code complete deadline

Integration testing


14 (30 Apr)

Integration testing deadline


RRR Week (Paper due)


Course Summary:

Date Details Due