DSC 291: Mobile & Ubiquitous Computing

Description

This course will introduce students to the field of mobile sensing and ubiquitous computing (Ubicomp) - an emerging area that has led to numerous disruptive new technologies including smartwatches, smart glasses, smart homes, smart cars, and most importantly smartphones. The students will learn about different aspects of mobile sensor data including 

1.     History and background of mobile and ubiquitous computing

2.     Large-scale and longitudinal mobile sensor data capture

3.     Preprocessing and cleaning real-world messy mobile sensor data

4.     Feature engineering and data science techniques for mobile sensor data

5.     (Machine) learning from large-scale and small-scale mobile sensor data

6.     Feedback, intervention, and self-reflection with mobile sensor data and models

Lastly, the students will learn how to critically think not only about how to build mobile sensor data systems and how to apply data science methodology but also why we build such technologies and what is the core philosophy behind it. We will read a series of papers that will show how such techniques can be used to solve problems in many application areas including medicine, human-computer interaction, climate change and transportation.

Specifically, the course involves formal lectures, class discussions, hands-on data collection, prototyping exercises, assignments and end of the term final project. 

Class Time and Location:

Monday 12:00PM-12:50PM (Lecture/Discussion Class)

Wednesday 12:00PM-12:50PM (Final Project Discussion)

Friday 12:00PM-12:50PM (Lab/Hands-on-experiment Class)


Class Location:

WLH 2115


Textbook: No textbook is needed. All the reading and assignment materials will be available on Moodle.

Instructor Info: Tauhidur Rahman, Assistant Professor, HDSI, UCSD, <trahman@ucsd.edu>

Teaching Assistant: To be declared 

Office Hour: To be declared

Prerequisites: The prerequisites of this course are a background in probability. Students are also expected to be familiar with Java, Python (or Matlab). If you are in doubt, please feel free to contact the instructor at trahman@ucsd.edu.

Learning Outcomes: The course is designed to help students to design mobile and ubiquitous computing systems that (1) capture observable low-level signals with sensor systems, (2) map low level signal to high level more interpretable and actionable variables with the help of signal processing and machine learning, (3) run complex computation in embedded and mobile computing platforms. As the application area of Mobile and Ubiquitous Computing is diverse, the students will experience how mobile and ubiquitous computing concepts are used to solve different challenging problems in different problem space. The students will be able to improve their abilities to communicate ubicomp related topics. With the help of formal lectures, and hands-on exercises the students will learn how to design a ubicomp system, develop it with the help of advanced hardware and software prototyping, apply signal processing and machine learning concepts, run data collection or user studies in the wild, and evaluate the complete system.

Course Schedule

You should consult the UCSD academic calendar to make sure you are aware of important dates and events. The following are the weekly topics that will be covered during this course.

Lecture Schedule

The topics of each week's lectures are listed below. Lecture slides are all posted in Piazza.

Jan 9: Lecture on Intro to Mobile and Ubiquitous Computing.

Jan 11: Lecture on Thinking about Final Project.

Jan 13: Assignment 1 release, Lecture on Android Programming (Part 1)

Jan 16: No class (MLK day)

Jan 18: Discussion and Paper Presentation

    Jan 20: Lecture on Android Programming (Part 2)

Jan 23: Discussion and Paper Presentation

Jan 25: Final Project Idea Presentation

   Jan 27: Assignment 1 due, Assignment 2 release, Data Collection (Activity Recognition)

Jan 30: Discussion and Paper Presentation

Feb 1: Final Project Teaming

Feb 3: Lecture on Feature Engineering

Feb 6: Discussion and Paper Presentation

    Feb 8: List of Hardware and Material for final project due, Lecture on Model Evaluation

    Feb 10: Assignment 2 due, Assignment 3 release, Assignment 3 Data Collection Activities

Feb 13:

    Feb 15: Lecture on User Study Design

    Feb 17:

Feb 20: No class (President's day)

    Feb 22: 

    Feb 24: Assignment 3 due, Assignment 4 release

Feb 27:

    Mar 1: Final Project Update Presentation

    Mar 3: Assignment 4 due, Final Project Workshop

Mar 6:

    Mar 8: Final Project Workshop

    Mar 10: Final Project Workshop

Mar 13:

    Mar 15: Final Project Workshop

    Mar 17: Final Project Poster Presentation

Course Management

This course will use a number of web-based services. We will create accounts for you, but it is your responsibility to log in and check that everything has been set up correctly.

Ed

Ed DSC 291 (Ubicomp) sign up link: https://edstem.org/us/join/ZuFADX

Ed is an online course management system. It will be used as the main hub for communication in this course. All questions and answers should also be posted in Ed. Please observe the following guidelines:

The instructor will monitor Ed and answer your questions in a timely manner. If a question has already been answered in a previous post we may not respond to you right away (hence it’s important to learn to use the ‘search’ feature).

CANVAS

Course materials will be posted in Moodle. You will also submit your critiques, assignments and the final project on moodle. 

Smartphones and Sensor Platforms

For different assignments, we may provide you with Android smartphones, wearables and different sensor platforms. It is your responsibility to collect it from the TA and to make sure you don't lose or damage it.

Laptop

Because the lectures and labs are taught in a classroom with no desktop computers, you must bring a laptop to each lab, in order to complete the Arduino programming exercises in class and lab. If you don't have a laptop, or your laptop stopped working, please contact the instructor immediately to arrange for a loaner laptop.

Course Assessment

Lecture attendance and lab attendance are required. There will be in-class experiments and exercises every lecture. There will be several assignments, some written, some programming; weekly labs; one midterm and one final project.

Grading Scheme

Guidelines for Writing Critique

Each student (except the discussion leader) is required to submit a short written critique on CANVAS summarizing thoughts after reading all the papers assigned for that week. You do not need to upload a written critique for the week you are participating as one of the discussion leaders. However, if you are one of the discussion leaders for a particular week, please upload your slides. It is due at 10am on the day when we will discuss the papers. You should not write a critique separately for each papers suggested for a particular week. You should rather combine the concepts/topics discussed in all papers in a single critique (roughly about 500 to 600 words). The critique should:

Pay special attention to making your critique thought-provoking rather than listing everything that is in the paper.

Formatting and length requirement: Maximum one page, 12pt Times Roman, 1” margin on all sides, typically 500 to 600 words.

The critiques will be graded in the following scale, where

Please note the 125 is equivalent to receiving a bonus 25 points and that the maximum numerical grade is 100.

Guidelines for Leading discussion

Please sign-up here for leading discussion here.

If you are one of the discussion leaders for a particular week, please reach out to your discussion leading partners ahead of time. As a team, you may want to prepare slides, and coordinate the sequence of your appearances. 

Each of You should prepare a 10-15 min presentation with the use of slides. You should primarily base your presentation on that week's theme and the papers but also any other material (including papers, video, interactive quiz) you may find to be relevant. Make your presentations interesting and research for relevant videos, press articles, demos as well as formal literature. Make it visually more like a TED talk rather than one that makes everyone snooze. Your presentation should aim to instigate thought-provoking discussion. Therefore, you should also come up with other discussion points that will stimulate in-class discussions. You do not need to upload a written critique for that week but please upload your slides instead.

Generally, your presentation could:

1. Identify and list the technical challenges the researchers are trying to solve 

2. Describe the new ideas 

3. Discuss the strength and limitations of the proposed approach 

4. Suggest potential improvements.

5. Engage your audience with your thought provoking ideas/questions. It could be something that you found confusing or you thought was particularly noteworthy. 

But take this guideline as a general suggestion. Some of the points mentioned above may not apply to you depending on the theme and the papers of that week. You have the freedom to design your leading discussion presentation.

Final Project

This year's final project theme is "sustainability and environment".

An example of such a project can be a personalized mobile sensing system to cut down food waste or use of single use plastic. 

Project idea assignment for final projects: Every student individually pitch, as a customer, something they would like someone to build for them that they would personally find useful. Not something they think would be useful for someone else, but for themselves. The class (including the instructor) then votes for top ideas they'd like to work on and based on the vote, I pick enough customers to match the number of project teams. For my class, I assign 2-people teams. So 1/2 of the class gets picked as customers. Each team is assigned a customer to work with. The trick is that the customer is not part of the team and does not work on the project. Unlike the team just coming up with a project themselves, the team actually needs to try to understand what the customer needs and probe them to figure out what is the spec needed to address their needs and check whether what is built actually address their needs.

Late Submissions

Any exceptional circumstances (ie: illness documented by a doctor’s note) must be discussed with the instructor in advance.

For the critique, you are allowed one and only one free pass (i.e., you can skip one critique) which you can choose to exercise anytime during the semester. 

For the assignments, you have a total of five free late days. You will be charged one late day for handing in an assignment within 24 hours after it is due, two late days for handing in an assignment within 48 hours after it is due, etc. Your assignment is considered late if either the written or code portions are submitted late. The late homework clock stops when both the written and code portions are submitted. After you have used up your late days, late homework will not count for credit except in special circumstances (ie: illness documented by a doctor’s note). If you do not hand in an assignment at all, you will receive a grade of zero for that assignment and you will forfeit all of your late days for the rest of the semester.

COURSE POLICY

Class Participation and Preparation

This is an upper-level undergraduate to an introductory graduate level class. I have high expectations around preparation, presentation, and participation in class. Students are expected to arrive to class on time and actively engage in class discussions and hands-on exercises. Routine lateness or unpreparedness will impact your grade and your learning experience. Attending class is not sufficient for getting full score on the class participation grade - you are expected to engage in the class activities. You get to miss class twice, and then you lose a percent each time. If you are struggling, please come and talk to us sooner than later - we are here to help. If serious problems arise during the semester (medical or family issues) you need to let us know as soon as possible and not at the end of the term.

Collaboration Policy

Assignments are considered individual work. Some assignment may require you to collect data in a group setting. While you could use the data from another person in your group, you should never share your completed or in-progress code or write-up with another student in any form, or request to see another student’s code or write-up. Your derivations, code, and write-up must be your own work. 

You may discuss the problems with other students; however, to avoid issues with the course’s academic honesty policy, you should not take any materials out of such discussions (writing, whiteboard photos, etc.).

Accommodation Statement

The University of California San Diego is committed to providing an equal educational opportunity for all students.  If you have a documented physical, psychological, or learning disability on file with OSD (office for students with disabilities), you may be eligible for reasonable academic accommodations to help you succeed in this course.  If you have a documented disability that requires an accommodation, please notify me within the first two weeks of the semester so that we may make appropriate arrangements.

Academic Honesty Statement

Since the integrity of the academic enterprise of any institution of higher education requires honesty in scholarship and research, academic honesty is required of all students at the University of California San Diego. Academic dishonesty is prohibited in all programs of the University. Academic dishonesty includes but is not limited to: cheating, fabrication, plagiarism, and facilitating dishonesty. Appropriate sanctions may be imposed on any student who has committed an act of academic dishonesty. Instructors should take reasonable steps to address academic misconduct. Any person who has reason to believe that a student has committed academic dishonesty should bring such information to the attention of the appropriate course instructor as soon as possible. Instances of academic dishonesty not related to a specific course should be brought to the attention of the appropriate department Head or Chair. Since students are expected to be familiar with this policy and the commonly accepted standards of academic integrity, ignorance of such standards is not normally sufficient evidence of lack of intent.

Programming assignments present specific academic honesty issues. Programming is a creative activity, but also one where collaboration is both possible and desired. Students may work together on programming projects as long as two principles are observed: submitted programs must be the individual’s own work with respect to presentation, and all sources of help other than course staff must be declared. Students may determine the essential ideas of a solution together, but should write the actual code separately. Copying and pasting another student’s code is a violation of academic honesty, and course staff will endeavor to detect this by any means including automated similarity analysis of submitted assignments.