CS328: Mobile Health Sensing and Analytics

Overview Schedule

Course outline:Have you been following the rise in fitness gadgets such such as Fitbit, Apple Watch, Android Wear, and Microsoft Band, and wondered how they calculate your activity patterns, how many calories you have burned each day, track your sleep patterns, and compute your heart rate?

Have you looked at the iPhone or Android App Store and seen activity tracking apps such as RunKeeper and Moves, or other diet and health monitoring apps, and wondered what it would take to develop such an application?

In this course, we will learn how to build the computational elements for developing such mobile health sensing applications by leveraging various sensors on smartphones, including the accelerometer, camera, microphone, and GPS. At the end of the class, you will have created a full-fledged Android App that monitors activity patterns, heart rate, conversation patterns, and your mobility patterns and visualizes them. This is a hands-on course where students learn by doing!

The course will include coverage of the following topics.

  • Sensor data smoothing and denoising
  • Design of a pedometer and calorie counter using your smartphone
  • Recognition of everyday activities using inertial sensors on your smartphone
  • Evaluating classifier performance using cross-validation
  • Quantified self and personal data analytics
  • Voice-based health analytics
  • Physiological sensing using wearable sensors
  • GPS clustering to understand mobility patterns
  • Measuring sleep using wearable devices

Pre-requisites: CMPSCI 187 (Data Structures) or equivalent, or instructor’s approval. Note that you will be required to do programming assignments on smartphones, so programming experience (Java/Objective C) and ability to start programming on a new platform (smartphone) is expected. You will also do some programming assignments using Python's machine learning packages.

Format: The class will meet thrice a week (Mon/Wed/Fri). Since this course is heavy on programming assignments, we will dedicate one class a week (typically Fri) to handling the tutorials and Q&A pertaining to assignments. The class will have substantial emphasis on practical systems development. There will be no textbook for the course but course notes are available.

Grading scheme:

  • Android assignments (5): 55%. We will provide support (including shell code) for Android development. You are encouraged to use your own smartphone for your programming assignments.
  • Final Project: 15%. In the final project, you can use the various classifiers that you have developed in the class to develop your own application. You will be provided a Microsoft Band 2 if you are interested in a project using the band.
  • Homeworks (5): 10%. All homeworks are multiple choice, and are not time-consuming.
  • Final: 15%
  • Class Participation: 5%

Lecture Hours:
Monday, Wednesday and Friday - 1:25pm - 2:15pm
Rm 140, CS Building

Teaching Assistants:
Addison Mayberry (ammayberry1@gmail.com)
Erik Risinger (erisinger@umass.edu)

Office Hours:
TA hours: CS207 10AM - 11AM on Tuesdays and Fridays.
Instructor hour: Monday @ 12:30pm (CS 272)

Please go to the TA hours for all programming assignment related questions.

Deepak Ganesan
272 CS Department
Email: dganesan AT cs DOT umass DOT edu
Course Mailing List: AT cs.umass.edu