6.1820/MAS.453: Mobile and Sensor Computing, Spring 2025

Instructors: Fadel Adib, Tara Boroushaki

TAs: Waleed Akbar (wakbar@mit.edu), Jack Rademacher (jradema@mit.edu)

Course Staff Email: 6mobile@mit.edu

Lectures: Tues/Thurs 1-2:30pm in 24-121

Office Hours:

  • Fadel: By appointment

  • TA:

    • Monday: 4-5 PM (Jack, in-person in E14-493)

    • Tuesday: 4-5 PM (Waleed, in-person in E14-493)

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.1820 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

About the Course

Units

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

Prerequisites

6.1800 or permission of instructor.

Grading policy

Grading in 6.1820 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.

Submitting a lab consists of two parts:

  1. Submit a PDF of your responses to the questions listed at the end of the lab instructions to gradescope by the due date listed there.

  2. Attend office hours after the due date for check-off from the TAs

Note: You only need to attend a check-off for Lab 0

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.

AI Policy

This policy outlines the permitted and prohibited uses of AI in this course.

Permitted Uses of AI

  • Debugging, Refactoring, and Optimizing Code: You may use AI to help with debugging, improving efficiency, and refactoring your code.

  • Concept Explanation: You may use AI to explain a concept to you, but be aware that AI-generated explanations may contain errors or biases. You’re advised to verify the provided information.

  • Brainstorming with AI: You may use AI to generate ideas or approaches for your projects.

Prohibited Uses of AI

  • Writing Reviews & Answering Questions About Papers: AI cannot be used to answer questions for assignments or problem sets.

Disclosure Requirement If you use AI in any capacity, you must:

  1. Disclose your AI usage in your submission (see below for examples).

  2. Specify the AI model used (e.g., ChatGPT-4 Free, Gemini Free, Copilot Free).

  3. Explain how AI was used (e.g., “Used ChatGPT-4 Free to optimize a function for efficiency”).

How to Disclose AI Usage:

  • Lab Submissions: Include a comment at the top of the PDF submission regarding your use of AI in the assignment.

    • Example 1: “AI Usage Disclosure: Used ChatGPT-4 to optimize the sorting function and debug memory leak issues.”

    • Example 2: “AI Usage Disclosure: Initial function structure written by student, AI suggested improvements in efficiency.”

  • Project Proposals & Written Reports: Acknowledge AI usage in the beginning of the report (e.g., a short paragraph with a couple of sentences in Italic). .

    • Example: “During the development of this proposal, I used ChatGPT-4 Free to refiine the problem statement and improve sentence clarity. The core ideas and structure were developed independently.”

  • General Disclosure Format (for all assignments):

    • AI Tool Used: (e.g., ChatGPT-4 Free, Copilot Free)

    • Purpose: (e.g., debugging, code optimization, explanation assistance)

    • Student Contribution: Clarify what was done by the student vs. what AI assisted with.