Workshop fall 2018

e-mission workshop: understanding and influencing human travel behavior (logistics)

Table of Contents

Pre-requisites


For the most efficient use of everybody's time, please do these before the start of the conference.

Collect some data to explore

In order to get a sense of how e-mission works and what the data looks like, please install the app and collect data before the workshop. On the evening session of the first day (e-mission overview) you will download and experiment with the data you have collected.

You can choose from different possible UI clients or skins.

Sign up for github

e-mission is hosted on github, so you will use github to download the code and submit improvements. We will also use github for the asychronous discussion system. After you sign up for github, please send me your github username (e.g. @shankari) via email so that I can add you to the e-mission organization and you can participate in the online discussion.

Required reading/viewing

Background material

The Monday morning session will not be specific to e-mission, but will instead focus on standard Computer Science (CS) concepts and tools. The primary objective is to be able to understand the concepts well enough to engage with the community and mentor undergraduates - it is hard to provide meaningful feedback on the database structure for e-mission without knowing what a database is. If you are a CS major, you can skip this section.

One of the challenges with coming up with a list of concepts to cover is that I don't know what you don't know. Therefore, I have come up with a very basic list and linked to short (~ 5 mins avg), introductory videos for each. During the session, I will ask questions to identify areas that are most unclear to the audience, and adapt the session accordingly. If you are a non-CS major, please read/view this material before the workshop - the videos are conceptual and have pretty pictures. If you don't like the videos that I linked to, you can search on youtube and pick your own. Wikipedia is also a good resource.

CS concepts:

  1. What is a sensor?
  2. What is a database?
  3. What is HTML, CSS and Javascript?
  4. What is a hybrid app?
  5. What is a client-server architecture?
  6. How does TCP/IP work?
  7. What is a URL?
  8. What is an API?
  9. What are the different kinds of databases?
  10. What is authentication and authorization?
  11. What is machine learning?
  12. What is a pipeline?

Open Source Software (OSS) concepts:

  1. Is OSS just a way to get free code? The Cathedral and the Bazaar (summary, or detail, tells a good story) tells you how it is a different way of approaching system building.
  2. Why do you need source control?
  3. Tell me about github, branches, forks and pull requests
  4. What is this command line thingy?
e-mission overview

The Monday afternoon session will largely be a hands-on session. If you want to get some context before diving in, you may want to skim through these papers before then.

roadmap ahead

The Tuesday afternoon session will discuss improvements that we as a community would like to see, both big and small. I have outlined my thoughts on the big CS/system goals. Undergraduates working on the analysis and privacy components have registered for the workshop and will hopefully attend this section. But as you go through the workshop, think through what features you would like to see, even if they are small. In the bazaar world, everybody gets to propose ideas that they think are important, and even small usability changes can have a big impact.

Asynchronous participation


As of 18th Aug 2018, ~ 50% of the registered participants will be remote, and we have participants from 5 continents (North America, South America, Europe, Asia and Australia). This makes it impossible to schedule the conference at a time that is not in the middle of the night in some timezone. In order to allow all participants to participate fully, we will support asynchronous participation, inspired by this Nearly Carbon Neutral Conference (NCNC). As outlined in the NCNC guide, we will:

  • record all the sessions and make them available for viewing at any time. Since all the sessions are expected to be highly interactive, the recordings will largely reflect the participation of in-person attendees.
  • support online discussions on each of the sessions. This will allow remote attendees to participate, and will also allow in-person attendees to post follow-ups.
    • In order to keep the online discussion high-quality, we will use github dicussions and only attendees who have registered and sent me their github handle will be able to participate.
    • In order to ensure that the online discussion is timely, the asynchronous participation period will run for one month ONLY. On Thursday, September 20th, 2018, the discussions will be turned off.

Async participation procedure

Although the participation is asynchronous, I would still like it to be interactive. It is known that asking questions, both listener-driven and speaker-driven, involves active recall and helps solidify concepts in long-term memory.

Therefore, I propose the following procedure:

  • I have seeded every discussion with some initial questions
  • Attendees should answer any unanswered questions for which you want to clarify your understanding
  • first come, first served
  • reference the question by adding a link to it like this one
  • Attendees can add new questions if there is something unclear
  • I will check the discussion once a day, comment on answers and pose new questions to help you gain an understanding of the material
  • I will answer all unanswered questions at the end of the asynchronous workshop (20th Sept 2018)

Agenda


Monday, August 20th

Morning session: background material async discussion

Help project leads become with basic CS/open source concepts so that hey can point students in the right direction - e.g. what is a branch? what is a pull request?

Evening session: e-mission overview hands on overview, async discussion

Help everybody become more familiar with the features of e-mission. what is the e-mission architecture? how do I change the UI? what does the data look like? hands-on setup of end-to-end system. Please try the steps in the hands on overview before joining the discussion .

Tuesday, August 21th

Morning session: improving the setup async discussion

How can we lower barriers to entry for deploying the system and analyzing the data? Hopefully, this will include improvements to documentation and scripts using your new-found OSS skills

Evening session: roadmap ahead CS view of future work, async discussion

What is the long-term direction that we want the project to go in? What are the potential improvements, how do we prioritize them, and who gets to tackle them?