WPI Computer Science Department

Computer Science Department





Projects (MQPs/IQPs)



CS 528, Mobile and Ubiquitous Computing Class, Fall 2020

General Information

Class: Wednesdays, 6pm - 8.50pm, Online (Zoom link will be emailed to you)

Grader: Amisha Jindal, ajindal@wpi.edu
Office Hours: TBD
(All office hours will be held virtually)

Instructor: Prof. Emmanuel Agu, FL-139, 508-831-5568, emmanuel@cs.wpi.edu
Office Hours: Thursdays 4:00PM - 5:00PM; Others by appointment. Please email me for a zoom link for office hours.

Required Texts:

Supplemental Texts:

Class Websites: The class website is at http://web.cs.wpi.edu/~emmanuel/courses/cs528/F20/.

Points Distribution: Presentation´┐Ż15%, Assigned Projects 35%, Final project: 30%, Quizzes: 20%

Access to papers: A number of the assigned papers are from the ACM and IEEE digital libraries. To access these papers, just go the the WPI Library website (http://www.wpi.edu/+library/), search for the paper title and click on the link that comes up. You may be required to log in using your WPI username and password.

Late Assignment Credit: Late programming assignments will be penalized 15 points off per day (per 24 hours). Assignments later than 4 days late will not be accepted.

Cheating (a.k.a., academic dishonesty): , defined as taking credit for work you did not do or knowledge you do not possess, is strictly forbidden. First offenders will receive a zero grade for the assignment or quiz in question and an academic dishonesty report will be filed with the Office of Student Affairs. Repeat offenders will receive an NR for the course and the case will be brought before the campus hearing board (see Student Handbook). Using or submitting code retrieved from online repositories such as gitHub, or which was previously submitted by a student in a previous iteration of this class (or CS 4518 undergraduate version) is considered cheating

Course Overview

The goal of this class is to acquaint participants with some of the fundamental concepts and state-of-the-art research in the computer science areas of mobile computing and ubiquitous computing. This semester's class will focus on emerging mobile and ubiquitous computing ideas that are implemented on Android smartphones, but will also discuss Smart environments and Internet of Things. The course will consist of assigned projects including Android app programming projects, student presentations, discussions and a final project. There will also be quizzes and the students will present papers and selected topics in groups.

Recommended Background: CS 502 or an equivalent graduate level course in Operating Systems, and CS 513 or an equivalent graduate level course in Computer Networks, and proficiency in a high programming language. This semester's class focusses on programming Android applications which is Java-based. knowledge of or willingness to learn Java is a plus.

Course Timeline: For the first 7 weeks, I will introduce mobile and ubiquitous course concepts and definitions, and introduce Android programming. In those 7 weeks, 4 projects will be assigned to students. Students will also work in teams to brainstorm on final project ideas which they will present in week 9. In weeks 9-14, students will work on their final projects. Additionally, in week 11, students will present overviews of new emerging mobile components and APIs that might be useful for the final projects. The TENTATIVE course timeline is summarized below along with class and quiz dates.

Dates Quiz Days Class Topics Deadlines
Sept 2 1 Course Introduction, Administrivia, Definitions (Mobile, Ubiquitous Computing, IoT, Android Introduction, setup, modules and programming)
Sept 9 2 Android Hello World, Android UI Design, Examples, Resources, Webview, Data-driven views, Mobile HCI Project 0 due
Sept 16 Quiz 3 Android Component types, Activity lifecycle, Intents and fragments Project 1 due,
Students form groups for Projects 2, 3 & Final Project
Sept 23 4 Multimedia, Camera: taking pictures, face recognition, interpretation, Video and audio
Sept 30 Quiz 5 Android Network access, Databases, Firebase cloud API
Oct 7 6 Location-aware computing, Android Location APIs & Maps, Overview of Android mobile APIs, Sensors and Android sensor programming, Step Counting Project 2 due
Oct 14 Quiz 7 Overview of Android Ubicomp APIs Activity Recognition applications Introduction to Machine learning for ubicomp Final Project Overview Groups submit 1 slide proposed final Project
Oct 21 8 SmartPhone Sensing, Human Sensing, intelligent notifications and gamification Project 3 due
Oct 28 9 PROPOSAL: Student propose final projects Final Project Proposal (Written Introduction, related work and approach) due
Deadline for students to email me their 2 Tech talk topics
Nov 4 10 Voice-based Analytics & Wearables and Physiological Sensing Project 4 due
Nov 11 Quiz 11 TECH TALK: Students groups present on new Android/Mobile Components/APIs
Nov 18 12 Mobile Security and vulnerabilities
Dec 2 Quiz 13 Mobile measurements, energy efficiency, Smart Homes/Spaces/Devices, IoT, Mobile devices & Wireless Networks
Dec 9 14 Students present final projects Final Projects Due

Student Talks: In preparing your talk, please use the following powerpoint template for uniformity. Also please send me your powerpoint slides by noon on the day of your talk so that I can make the slides available on class website. A summary of presentation guidelines can be found [ HERE ]. Students are encouraged to choose presentation topics that may be useful for their class projects. Groups will become our "in-house experts" on the mobile technologies they present on and should be willing to help other groups that need to learn that technology for their own project. All students will also be expected to participate in class discussions.

Programming Projects: For programming projects, students will either run their work on the Android Studio emulator or use their own Android phones if they own up-to-date Android phones. MATLAB will be used for Machine Learning Projects. Android Studio and MATLAB are installed in the Zoolab in Fuller basement. For students who do have access to Android phones, a few phones will be available to be loaned to students FOR THE ASSIGNED PROJECTS. It is anticipated that most of the final projects will involve building an Android application or classification of sensor data. The final projects will typically create a mobile/ubicomp solution to a societal problem.

Assigned Projects

Final Project

Lecture Slides, Code and Paper Downloads

Lecture Slides Code Download Paper(s)
Lecture 1a [ Course Introduction, Definitions (Mobile, Ubiquitous Computing, IoT, etc) ]
Lecture 1b [ Introduction to Android, Android Studio, Hello World ]
Lecture 2a [ Android UI Design + Examples ]
Lecture 2b [ Resources, Themes, WebView, ANR GeoQuiz app, Data-driven Views, Mobile HCI ]
[ HFAD First App (Ch 1) Example ]
[ HFAD Beer Advisor (Ch 2) Example ]
[ ANR GeoQuiz (Ch 1) Example ]
Lecture 3a [ Android Components, Activity Lifecycle methods, Saving Data, Rotating Device ]
Lecture 3b [ Intents & Fragments ]
[ ANR GeoQuiz Second Activity Example (Ch 5) ]
Lecture 4a [ Multimedia: Camera ]
Lecture 4b [ Mobile databases, Audio, Video and Sound ]
[ ANR GeoQuiz Second Activity Example (Ch 5) ]
[ ANR CriminalIntent Example (Ch 16) ]
[ Visage Face Interpretation Engine ]
Lecture 5a [ Facial Analysis: How it works ]
Lecture 5b [ Mobile and Location-Aware Computing ]
[ Live Upstreaming ]
[ GPS Clustering Notes (Deepak Ganesan) ]
Lecture 6a [ Maps & Other Android Ubicomp Components ]
Lecture 6b [ Sensors & Step Counting ]
[ Step Counting Notes (Deepak Ganesan)]
Lecture 7a [ Tech Talk, Final Project Proposal & Smartphone Sensing ]
Lecture 7b [ Machine Learning for Ubiquitous Computing ]
[ Applications of Activity recognition ]
[ Activity recognition using cell phone accelerometers ]
Lecture 8a [ Sleep Duration, Intoxication & StudentLife ]
Lecture 8b [ Epidemiological Change, TBI/Infectious Disease Sensing & Boredom sensing ]
[ A Survey of Mobile Phone Sensing ]
[ Mobile Phone Sensing Systems: A Survey ]
[ AlcoGait ]
[ BES Sleep duration sensing ]
[ StudentLife ]
[ Epidemiological Change ]
[ Detecting Boredom ]
Lecture 9a [ Voice Analytics, Affect Detection ]
Lecture 9b [ Wearables, Quantified Self & Physiological Sensing ]
[ Physiological sensing Notes (Deepak Ganesan) ]
[ Voice Based Analytics Notes (Deepak Ganesan) ]
Lecture 10a [ Mobile Security (Part 1)]
Lecture 10b [ Mobile Security (Part 2) ]
[ ActivPass Paper ]
Lecture 11a [ Sandra: Energy Efficiency ]
Lecture 11b [ Mobile Measurements & Wireless Networks ]
[ Sandra: Energy Paper]
[ Measurements of Millions of Android Users Paper ]

[Feedback] [Search Our Web] [Help & Index]

[Return to the WPI Homepage] [Return to CS Homepage]