• Course Instructor: Prof. Tian Guo
  • Email: Please post via the class discussion board
  • Office: Fuller Labs 138
  • Office Hours: Mondays 4:30PM-5:30PM; Thursdays 2:00PM-3:00PM

  • Teaching Assistant: Sami Baral
  • Office: Fuller Labs A22
  • Office Hours: Tuesdays 9AM-11AM, Thursday 9AM-11AM, Fridays 2PM-3PM 10AM-11AM

  • Teaching Assistant: Guin Gilman
  • Office: Fuller Labs A22
  • Office Hours: Mondays 2PM-4PM, Thursdays 1PM-3PM, Fridays 3PM-4PM

  • Teaching Assistant: Qinlun Luan
  • Office: Fuller Labs A22
  • Office Hours: Wednesdays 2PM-4PM, Thursdays 10AM-12PM, Fridays 9AM-10AM

Course Overview

Class: Tuesdays and Fridays, 12PM to 1:50PM in Washburn Labs 229

The goal of this course is to acquaint students with fundamental concepts and state-of-the-art computer science literature in mobile and ubiquitous computing. Topics to be covered include mobile systems issues, human activity and emotion sensing, location sensing, mobile human-computer interaction, mobile social networking, mobile health, power saving techniques, energy and mobile performance measurement studies, and mobile security. The course will introduce the programming of mobile devices such as smartphones running the Android operating system. Recommended background: Proficiency in programming in Java, including classes, inheritance, exceptions, interfaces, and polymorphism (CS 2102 or equivalent). Students may not earn credit for both CS 403X and CS 4518.


This course will be graded based on a project (50%), technology reviews (25%), hands-on labs (15%), and participation (10%).


All papers can be downloaded from the course website here. The instructor might decide to replace the listed papers with better alternatives, as the course progresses. Such replacements will be announced at least two weeks ahead, both in class and through the forum.

We also expect a guest lecture from a WPI alumnus who is currently working at Apple on Feb 21. More detail will be announced later.

Date Topic Required Reading Additional Reading
1/17 L1: Intro to Mobile Computing Fundamental Challenges in Mobile Computing Some computer science issues in ubiquitous computing
1/21 L2: Mobile Cloud Computing The Case for VM-Based Cloudlets in Mobile Computing Cloud Computing: the next decade
1/24 L3: Energy efficiency An Analysis of Power Consumption in a Smartphone Storage on your smartphone uses more energy than you think, Empowering Developers to Estimate App Energy Consumption
1/28 L4: Mobile Sensing A survey of mobile phone sensing  
1/31 L5: Activity Recognition Applications of Mobile Activity Recognition Chapter 3_ Activity Recognition using Inertial Sensors
2/4 L6: Mobile Browser Performance An In-depth study of Mobile Browser Performance  
2/07 L7: Context-aware A Survey of Context-Aware Mobile Computing Research Chapter 8_ GPS Clustering
2/11 L8: Mobile Deep Learning Squeezing Deep Learning into Mobile and Embedded Devices The Deep (Learning) Transformation of Mobile and Embedded Computing
2/14 L9: Mobile AR Chapter 9: Mobile Augmented Reality  
2/18 L10: Mobile Usage Study Characterizing Smartphone Usage Patterns from Millions of Android Users MicroMobile: Leveraging Mobile Advertising for Large-Scale Experimentation
2/21 L11: Guest Lecture TBD  
2/25 L12: Mobile security The Android Platform Security Model Apple Platform Security
2/28 No Class (Reading/Makeup Day)    
3/03 L13: Project Presentation    
3/06 L14: Project Presentation    

Course Materials and Resources

This course does not have an assigned textbook. Instead, the instructor has assembled a list of readings which can be downloaded here. Further, the instructor also maintains a list of useful resources here that are useful for gaining hands-on experiences on mobile programming.

Official Communication

Class discussion, class hand-outs, emails to the student’s WPI email account, the class discussion board, and the course Web pages are avenues for official course communication. Students are responsible for any information posted through these venues.


Students will propose and run a term-long project, ideally in groups of 3-4. Please see here for a list of potential project ideas. It is fine to use your existing project if it is relevant to the course and the instructor approves. You will present the project at the end of the course and write a 10-12 page report. If you are unsure about the scope of the project, please visit my office hours.

Please refer to this document for more instructions on each milestone of the project.

Project Timeline

  • Project proposal: 5PM on Friday Feb 7
  • Final project: noon on March 3 (right before class)

Technology Review

The technology review provides students the opportunity to connect with and expand what will be covered in the lecture; it also serves as an opportunity to share with and learn from your peer. For each topic, students should prepare a short writeup (one paragraph is sufficient) that describes or synthesizes one cool thing related to the topic. The technology review should be submitted through IA and will be graded based on timeliness. We will use a grade scale of 0, 1, 2 for cases of no submission, irrelevant submission, and good submission.

Please also bring a copy of your technology review to the class for in-class discussion.

Hands-on Labs

The hands-on labs is designed to acquaint students with the basics of mobile programming and as the first step to prepare for the term-long group project. There will be three labs released at the beginning of the term. Students can work individually or in group to complete the labs, but the submitted writeup should only contain student’s original work. For each lab, the instructor will provide a brief description of the expected project outcome and an accompany tutorial as reference.

Students only need to submit a brief writeup, following the template provided by the instructor, that focus on describing the learning outcome. A writeup that consists of a few screenshots of the achieved features and a few paragraphs that summarize useful tips, resources, and potential gotcha would be sufficient.

Participation and Professionalism

During class time, the instructor may use Instruct Assist’s built-in features such as Quiz bowls to randomly select students to participate class activities. Instruct Assist will record the participation and such records will be used to calculate the participation score. The initial participation score will be set to the maximum (i.e., 10% of the final grade) and will be adjusted accordingly.

Further, students are expected to active participate in the class; any materials or electronic devices that would inhibit students’ own and their peers’ attention should not be used in class.

Lastly, professionalism is highly valued and is strictly enforced in this class. Everyone, including students and teaching staff, is expected to treat others with respect.

Late Policy

We do not accept late submission for the technology review due to the time-sensitivity of this submission. Instead, you may miss up to two technology reviews without impacting the final grade.

We also do not accept late submission for the final project to ensure quality in-class project presentations and to facilitate timely grading before the end of the term.

You may submit other deliverables for up to two days late, but with penalties. Each late day incurs an 20% deduction from maximum grade before the rest of the grading begins. We do not accept submissions that are more than two days late as these submissions may impact your chances of successful completing subsequent assignments.

Academic Honesty

The WPI Academic Honesty Policy describes types of academic dishonesty and requirements in documentation. In the case of academic dishonesty, I am required to report the incident to the Dean of Student Affairs. Plagiarism will lead to a failing grade and may bring more serious consequences at WPI level.