[Andrew’s cell tower in his office at Dartmouth]

Fall 2015: Mini Course on Mobile Sensing @ CMU Rwanda

This course was inspired by Deepak Ganesan’s course on Mobile Health Sensing and Analytics. Thank you so much Deepak for all the great material. Inspired class!

Sensors are embedded in phones, wearables, and many other everyday products (e.g., cars, homes). In the mobile space the advent of sensors is driving innovation in many exciting new areas, such as, mobile health, the quantified-self movement, and consumer recreation applications. In this class, we will explore mobile sensing through taught classes, Android programming assignments, and presentation of cutting edge research ideas. Students will gain knowledge of this new area by building a mobile sensing app capable of tracking their activity, social interaction, and significant places.

What is required to take this class: Android programming experience. You will need to have access to MatLab and set up Android Studio for development.

Kudos: The programming assignments and the notes for this class come from Deepak Ganesan’s class on Mobile Health Sensing and Monitoring. I would like to express my thanks to Deepak for so openly sharing his material. Thank you Deepak!

When and where

Location: C245

Monday: 4-4.50 pm (Lecture)

Wednesday: 2-3.30 pm (Lab)

Friday: 4-4.50 pm (Paper presentations)

Teaching Team

Lecturer: Andrew Campbell

Office: B513

Office hours: MTWTF 2-3 pm

Grading, late policy, and code

70% Android programming labs

20% Reviews

10% Presentations

Late policy: You get two free 24 hour pass without any grading penalty. You can use them anytime. After that late assignments are heavily penalized: 1 day late 50% tax, 2 days late 75% tax. You can only uses these for programming assignments and not reviews. Please use the two free passes wisely. No exceptions given.

Code: you should under no circumstances copy code. The code has to be yours and yours alone.

Week 1

Monday Lecture #1: The Mobile Sensing Revolution

First, read this paper. It’s a paper about how to read a paper (no review required):

Keshav, S. (2007). How to read a paper. ACM SIGCOMM Computer Communication Review, 37(3), 83-84.

Read this paper (no review required):

Lane, N. D., Miluzzo, E., Lu, H., Peebles, D., Choudhury, T., & Campbell, A. T. (2010). A survey of mobile phone sensing. Communications Magazine, IEEE,48(9), 140-150.

Read and write a one page review of this paper:

Wang, R., Chen, F., Chen, Z., Li, T., Harari, G., Tignor, S., ... & Campbell, A. T. (2014, September). StudentLife: assessing mental health, academic performance and behavioral trends of college students using smartphones. InProceedings of the 2014 ACM International Joint Conference on Pervasive and Ubiquitous Computing (pp. 3-14). ACM.

Review Assignment #1: Due Thursday 9 pm. We will submit using git or svn (more soon). Make sure you read Keshav’s paper above (How to read a paper) first. Write a one page review. Three questions to address in your one pager: (1) what are the pros of the research; (2) what are the cons of the research; and (3) how would you extend the work or if you wanted to take a completely different approach to addressing the research problem discussed in the paper what would it be?

Review papers assigned to students. Each student will write a review. Two papers will be presented by students. Check out “How to give a good presentation”.

Wednesday Lecture #2: Sensor data smoothing and filtering [notes, slides].

Friday  Lecture #3: StudentLife review presentation [slides] and step counter  [notes, slides]

Lab1: Code for the Step Detection App is here. You can import the code and run the solution apk. I will release the lab description on Monday (when the assignment will be officially given out). The Lab will be due September 16th and 9 pm. You can work in pairs on the assignments. But install the code and look at it. Try and understand it by Monday -- best you can.

If you are a little rusty with Android programming checkout my Android class and if you need help setting up Android Studio go through these notes.                       

Week 2

Monday Lecture #4: Implementing a step counter [slides]

Lab1_Assignment_Details I am in a rush today and will update this in route to Japan.  But it is good enough to start.

Wednesday Lab #1: Step counter lab. [Cathy covering for Andrew]

Friday: No class.

Week 3

Monday Lecture #5: Activity recognition [notes, slides].

Papers for presentation on Friday. Also, one review required Thursday. See below.

Please provide a review for this paper. Thursday by 9 pm.  Aimable and Kizito to present this one on Friday. 30 min presentation including questions. The slides presented.

Pielot, Martin, et al. "When Attention is not Scarce-Detecting Boredom from Mobile Phone Usage." Proc. of UbiComp. 2015. Best paper award, UbiComp 2015.

Read this one. No review required. Danny and Philip to present this one on Friday. 30 min presentation including questions.

Bao, Ling, and Stephen S. Intille. "Activity recognition from user-annotated acceleration data." Pervasive computing. Springer Berlin Heidelberg, 2004. 1-17. (10 year test of time award. This is an old paper but it provided many of the techniques we use today).

Wednesday Lecture #6: Evaluating classifier performance [notes, slides].

Please submit your Lab1 to BitBucket.

Friday  Presentations: (please send me your sides).

Lab2: Code for the Collector App: You can import the code into Android Studio and run the solution apk on your phone (just email it to yourself).  Lab2_Handout.tar.gz and lab2.apk. Here is the Lab2_Assignment_Details. The assignment is due September 25, 2015.

Week 4

Monday Lecture #7: Human in the loop [notes, slides].

Papers for presentation on Friday. Also, one review required Thursday. See below.

Please provide a review for this paper. Thursday by midnight.  Agnes and Stephen to present this one on Friday. 30 min presentation including questions.

Gruenerbl, A., Pirkl, G., Monger, E., Gobbi, M., & Lukowicz, P. (2015, September). Smart-watch life saver: smart-watch interactive-feedback system for improving bystander CPR. In Proceedings of the 2015 ACM International Symposium on Wearable Computers (pp. 19-26). ACM. Best paper award, UbiComp 2015.

Read this one. No review required. Audace and Rodrigue to present this one on Friday. 30 min presentation including questions.

Pollak, J. P., Adams, P., & Gay, G. (2011, May). PAM: a photographic affect meter for frequent, in situ measurement of affect. In Proceedings of the SIGCHI conference on Human factors in computing systems (pp. 725-734). ACM.

Wednesday Lecture #7: The camera as a sensor  [notes, slides, video].

Friday  Presentations: (please send me your sides).

Lab3: Code for the Stress Meter comprises  images embedded in a class that you should copy into your solution:  Lab3_Handout.tar.gz. In addition play with the app  lab3.apk to best understand how it works.Here is the Lab3_Assignment_Details. The assignment is due Sunday October 4, 2015.

Week 5

Monday Lecture #8: Speech: the basics [slides].

Please provide a review for this paper. Thursday by midnight.  Tom and Cathy to present this one on Friday. 30 min presentation including questions.

Lane, N. D., Georgiev, P., & Qendro, L. (2015, September). DeepEar: robust smartphone audio sensing in unconstrained acoustic environments using deep learning. In Proceedings of the 2015 ACM International Joint Conference on Pervasive and Ubiquitous Computing (pp. 283-294). ACM.

Wednesday Lecture #9: Speech-based health analytics  [slides, notes].

Lab4: Lab4_Assignment_Details You will develop a speech detection and visualization system. First you will collect training data and use Audacity to label it. Then use a feature extraction program to generate a features.arrf file. With that file you can generate a speech detection classifier. Finally you need to add the detection pipeline to you Lab3 solution and be able to visualize the speech data in real-time. Here is the code we hand out: AudioCollector.tar.gz and Lab4_Handout.tar.gz

Week 6 -- Project phase of class

Monday October 5: Brainstorming group project.

Wednesday: Present your ideas. Group selects one idea to all work on.

Friday: Project spec, goals, sub-group design specs, deadlines.

Week 7

Monday October 12: Code: sub-group meetings with Andrew

Wednesday: Code: complete group

Friday:   Code: sub-group meetings

Week 7

Monday October 19:  Integration and testing: sub-group meetings with Andrew

Wednesday October 21: Demo day.