CS 294S, CS 294W:
Paradigm Shifts in Mobile and Social Computing Systems
Spring 2012

Course Information

Instructor: Monica Lam
TA: Sudheendra Hangal
Room: Gates-100 (Note updated location)
Time: Mondays and Wednesdays, 11:00-12:15


Course Overview: Mobile devices are bringing about a new computer revolution where digital activities will be seamlessly integrated into our daily social life. CS 294S is a project course where we brainstorm the experience of the future and seek validation of these visions with concrete projects. Besides the teaching staff, experts from various companies representing diverse industries such as automobile (Ford), marketing (Kantar, WPP), security (AVG), telecommunications (Ericsson) will be at hand to offer unique resources and advice for the projects.
 

This course is designed to help students with their first research experience. We invite students interested in data mining, HCI, design, programming languages, distributed systems, networking, and security to join this class. A major goal of this course is to provide students with the opportunity to do inter-disciplinary projects -- breakthroughs in one area often lead to breakthroughs in others.
 

Here are some project examples:  

(1) Musubi: An Open Egocentric Social Network and Mobile App Platform. Instead of a social intranet where all users' data are owned by a proprietary network provider, the social graph and data of an egocentric system is distributed across users' devices. We have created such a mobile social network called Musubi, which is available for download in the Android play store. It sports an app platform where social apps can be developed easily while preserving users' privacy. Musubi can be used to prototype new mobile social experiences. More information can be found at http://mobisocial.stanford.edu/musubi.
 

(2) Muse: Privacy-Preserving Personalization. Today, more and more private information is collected by central service providers in the name of better personalization. Instead, consider a user-centric approach, where users collect their own information, across services, on their own devices, and analyze it to get rich personalization, without revealing much to any 3rd party. We call this paradigm experience-infused software, and have demonstrated prototypes of compelling applications for web browsing and web search. What applications will change due to the availability of such rich personal data? For example, one can imagine user-driven targeted advertising, where the user gets ads about products he likes without being constantly tracked. Or recommendations on mobile devices based on the preferences of the user and his/her friends. Or a news reader that automatically selects news articles related to one's interests. Or a personal assistant that understands your calendar and conversations to offer contextualized help such as automatic navigation to your destinations.
 

(3) Peer-to-peer payment. What if individuals can run social apps that enable secure payment between individuals, directly from one's banking account to another, without an intermediary? We will research security issues in peer-to-peer payment, as well as the exploration of innovative banking applications.
 

(4) Automobile apps. What if we can plug a car into our Android phone? Ford will make available an API to enable access to on-board diagnostics in automobiles. What kind of social ``mobile'' applications can we write?
 

(5) Real-time communication: Today on the mobile phones, users can have either audio/video conferencing or data conferencing. What if we can put them together? What kind of new social games and applications we could build by integrating real-time communication services as primitives. Ericsson will be making available such services for experimentation.
 

(6) Internet of things: How do we connect with all the devices around us, such as TVs in our hotel rooms, our thermostats, big screen displays in public areas? Sony Mobile is making available an API for connecting to the local TV.
 

Students will be working in 1 to 3 person groups, with the ultimate goal of releasing some software at the end of the quarter. The class time is spent mainly on project discussions and presentations; we will run hackathons, instead of classes, two or three times in the quarter to help students come up to speed quickly. Students are required to come to campus for this course as it is a project course. You can take this course multiple times for credit. CS 294S can be taken to fulfill the CS 194 requirement. Please sign up for CS 294W if you wish to fulfill your writing requirement as well.