6.808/MAS.453: Mobile and Sensor Computing, Spring 2022

Instructors: Fadel Adib, Hari Balakrishnan

TAs: Maya Nielan (mnielan@mit.edu), Sayed Saad Afzal (afzals@mit.edu)

Course Staff Email: 6808@mit.edu

Lectures: Mon/Wed 3-4:30pm in 56-154

Office Hours:

  • Fadel & Hari: By appointment

  • TA:

    • Tue: 8-9 PM (Saad, in-person in 36-112, virtual)

    • Wed: 4:30-5:30 PM (Maya, in-person in 56-154)

    • Thur: 12-1 PM (Maya, virtual)

Course Overview

The ubiquity of sensor-equipped smartphones, combined with the widespread availability of low-power wireless communication and sensing modules, has led to a renewed interest in sensor computing, aka the “Internet of Things” (IoT). 6.808 is an advanced undergraduate course designed to study the fundamental sensing, computing, and communication software technologies at the core of the recent flurry of activity on IoT. In addition to exposure to fundamental technologies (power management, positioning, ranging, wireless radios, inertial sensors, etc), students will learn how to design and implement (1) libraries and applications on mobile devices that interact with internal and external sensors, (2) server-side modules for computation and storage, and (3) embedded software.

Topics include the principles, practices, and emerging applications in:

  • Positioning technologies, including GPS, WiFi and cellular localization

  • Wireless networking, including BLE, WiFi, Zigbee, as well as multi-hop and store-and-forward (“muling”)

  • Resource constraints, including power, bandwidth, and storage

  • Inertial sensing, including accelerometers, gyroscopes, IMUs, dead-reckoning

  • Other types of sensors, e.g., microphones and cameras

  • Application studies

  • Embedded hardware and software architecture

  • Embedded system security

  • iOS APIs for accessing various sensing and wireless networking technologies

Announcements

  • Join the slack! Reach out if you have problems because announcements will be posted there!

  • You can work with a partner on labs if you choose to

About the Course

Units

12 (3-0-9). Requirements satisfied: AUS2, DLAB2, and II

Prerequisites

6.033 or 6.08 or 6.01 or 6.02 or equivalent (or permission of instructor).

Grading policy

Grading in 6.808 will consist of 5 labs, a midterm, a final project, 2 psets, and class participation, broken down as follows:

  • Labs: 25%

  • Midterm: 15%

  • Psets: 10% (2 at 5% each)

  • Final Project: 40%

  • Participation: 10%

Participation

We expect you to attend all lectures, unless there are pressing or unforeseen conflicts. Conflicts that are persistent (e.g., registering for another class at the same time and “splitting” attendance between them) are not excused.

Readings

Most classes have reading questions. Please send your response to the questions to Google forms before class. Answers will be accepted by any time before the class starts. Each student may skip one question during the semester without affecting their grade. This is a part of the participation score.

Labs and Software Development

The class will involving programming for iPads in XCode, which requires a Mac for development. We will loan out Macs and iPads to students who do not have them.

Late Policy

You have a total of 72 late hours for the semester. You can choose to use these however you want: e.g., 5 hours for Lab1, 4 for Lab2, etc.

Each hour late in excess of 72 hours will penalize the corresponding lab's grade by 1%, up to a maximum of 50%. Late hours are allocated greedily, so they are allocated to earlier labs before later labs.

How to best use late hours? Late hours are intended for cases where you fall behind due to deadlines in other classes, job interviews, MIT athletic events, illness, etc. For extensions under extenuating circumstances (e.g., you are sick for a week), we require a letter from one of the student deans.

Midterm

There will be one midterm, in-class on April 11.