CS8803 - Mobile Computing and IoT

Ashutosh Dhekne

Fall 2025: Mon/Wed 2pm-3:15pm, Sheller 222

Picture showing various IoT uses

This course is taught in-person. Every single class in this course is an experience. This course requires image license and release form to be signed by all students.

Teaser Video

Course Description

This course will teach a variety of ideas, concepts, techniques, and algorithms, that are all crucial to understanding and developing mobile systems and applications. The course will begin from first principles and ramp up to real-world systems and technologies. Keywords related to this course includes: wireless sensing, localization, GPS, drones, sensors, motion tracking, acoustics, location privacy, etc.

Course Topics

MathsFoundations
We will start from absolute basics, and cover important modules from linear algebra and data/signal processing. We will assume that you do not recall anything from prior courses (even if you have taken them). We will discuss the crossover of ideas from these modules to wireless communication and mobile computing. The course is designed with CS students in mind, particularly those inclined towards systems and networking.

GPSGPS and Indoor Localization
Understanding GPS, understanding why indoor positioning still not available ... Location fingerprinting (WiFi, magnetic, BLE), crowd-sourcing, mapping. Unsupervised data-driven learning, clustering, sensor fusion, filtering, simultaneous localization and mapping (SLAM).

GesturesActivity and Gesture Recognition (Humans and Objects)
Understanding IMU (accelerometer, gyroscope, compass) Can a smartwatch track human gestures and activities? Can embedded IMUs track the motion of a fast-moving baseball? Motion models and filtering techniques

Smart HomesSmart Homes and IoT
Ambiance sensing (WiFi and Alexa)
Can users be tracked from WiFi reflections? Can Alexa learn human activities from everyday sound? Wireless sensing techniques: liquid identification, presence detection, device-free tracking, FMCW, Doppler. Acoustic analytics: Time of flight, Angle of Arrival (AoA), beamforming in audio context

WearablesWearable Computing
Next generation of wearable devices: finger rings, ear-buds, smart clothing. Rings: Vibration and ultrasound, receiving vibrations (with IMU and microphone), body-channels. Hearables and earables: noise cancellation, bone conduction, motion to speech recovery, binaural sounds, energy optimization (wake-on-speech)

Smart HomesAutonomous Systems (Cars and Drones)
Core challenges in autonomous systems: sensing, computing, communications + actuation. Robotic wireless networks, 5G networks, cell-tower on flying drones, ray-tracing, channel optimization. Cars: LIDAR, RADAR, and vision, sensor fusion, relative map creation.

Smart HomesMobile Privacy and Security
Why personal, always-ON devices are a major challenge in security and privacy Side channel attacks, inference algorithms, hardware loopholes, sensor data leaks. Case studies: location privacy, password typing, Alexa attacks, IMU fingerprints, acoustic drone attack, clock leaks, etc.

Course Format

The underlying concepts discussed in this course are taught in class. Students are expected to read research papers about the topic, answer questions about the research paper before class, and engage in classroom discussions. We will be discussing those papers, and students are expected to participate in the class with comments and thoughts about the work. The class is interactive and we make the classroom a fun place. In-person attendance is expected. We will go on field trips in and around campus and talk about mobile computing and IoT technology is different contexts.

This course has homeworks, programming assignments, a midterm, and a final project (no final exam). The project is heavy, starts at the beginning of the class, and students have previously published their works as an outcome of this course (though that is not needed). Examples: Intrusense, Pettrack, Notification Control Demo, uFindMe. See papers or slides on: https://faculty.cc.gatech.edu/~dhekne/Links to an external site.

This course is NOT EASY. In previous years students have worked very hard to score well.

We expect to be done on the final exam day for this class (Dec 5).

Lecture Recordings, Live-stream, Image Release

This is a course with a lot of interaction, demos in class, tangible props in class, etc. Overall, students benefit significantly by attending class in person. However, personal circumstances may require students to miss a class or two as an exception. I will therefore make good faith effort to record the lectures and may live-stream lectures as well. Link will be only provided via Canvas so that only registered students can attend the live lecture. Please remember this is an accommodation and not an expectation.

Location

The class will be held at Sheller 222 every Monday and Wednesday from 2:00pm to 3:15pm location.

About Instructor


Name: Ashutosh Dhekne.
Please call me: Ashutosh or Prof. Dhekne
Pronouns: He/Him/His

Grading (Tentative)

Short Programming Assignments (6): 30%
Paper Reading: 20% (any 10 out of 11 papers listed)
Project: 50%

About Generative AI, ChatGPT, etc.

Have you been to the Atlanta Airport? There are horizontal conveyer belts to "walk" in long corridors. Think of AI as those conveyer belts. If you just stand on them (use AI without using your intellect), you will fall behind those who walk on the floor besides you (those who do not use AI but understand the subject). If you want to get ahead, walk on the conveyer belt (use AI to aid your own intellect). That is the principle we use in this class. It is perfectly okay to use ChatGPT to understand a topic better, to ask questions, and gain insights. Use it as if it was a second teacher.
Remember: Learning this subject well will help you for life. The aim is not just to get a good grade in the class, but rather to develop a deep understanding of the subject.
We are piloting an innovative strategy for AI use in this class. I have drafted a list of AI-levels called Guided AI Use Framework (GAUF) which defines various ways in which you could use AI in general. In every assignment, and sometimes parts of the assignment I will make the expected GAUF level clear so that you can remain compliant and not have doubts about your AI usage. GAUF levels could apply to code, written text, proofs, answers to MCQs, etc. Look for GAUF tags in the assignment text. 

Layer

Name

What it Allows

Student Behavior Guidance

Instructor Guidance

L0

No AI

No AI tools at any stage

Think and write/solve/derive/code entirely on your own. Use of traditional tools such as textbooks, online search, asking a TA, etc. is acceptable. 

Consider handholding in class or during office hours. Appropriate for all levels of the Bloom’s taxonomy. Great for traditional exams.

L1

AI for Ideation

Use AI for brainstorming only after you have provided initial ideas and seed thoughts, not for final outputs

Use to generate questions, not answers. “create a short quiz on the use of IMUs in mobile computing.” Okay to use AI to point you to good online or offline resources (books)

Encourage use of AI as a second teacher or an additional TA, but not replacement for effort. 

L2

AI for Review

Use AI to review your own draft, not to generate it

Write/solve/derive/code yourself first, then optionally refine through AI inputs. E.g.: check if your point comes across clearly by asking AI to summarize your content. Do not copy-paste refined text/code. Only take inspiration from AI suggestions.

Encourage agency and responsibility. Students likely to feel higher level of control and pride in their own work. Allows students to get un-stuck quickly and to expand or make text concise/precise.

L3

AI for Drafting

Use AI to help with drafts, you must revise it critically

You remain the primary author and are responsible for what is presented. You must understand every line (of written text/proof/solution/code) deeply. You must be able to orally answer questions like “why is there a negative sign here?”

Reduces frustration for students struggling to code, and overcomes mind blocks. Deep understanding is expected but difficult to assess. Works best for tasks that may feel mundane to students. E.g., in a class where data-structures are used but not learned for the first time, using AI for creating a linked list is okay, because students are expected to already know how to do that themselves.

L4

AI Unleashed, Responsibly

Freely use AI throughout, but cite tool and version

Use AI to generate entire modules or paragraphs of text. You need to understand what is being done, but at a high level. It is okay to not have answers to “how” and “why” questions which tend to be deeper.

Use with caution! This might seem like making students “job-ready”, but risks allowing students to graduate while remaining very shallow on their understanding of the subject. Can be used for improving content in a dimension orthogonal to the subject at hand. E.g.: making a slide deck’s colors consistent for a student not majoring in design is a task that AI could handle. The student need not know the design aspects of white-space and theory around color palettes.

How to prompt LLMs to use this framework?

Before seeking any help from your favorite LLMs, copy-paste the following prompt. Always annotate your questions the same way as they are in the assignments:

My professor has defined a Guided AI Use Framework (GAUF) for this course. I want to remain compliant with GAUF. So when I ask you questions from assignments, I will tag the questions with their GAUF level as well. Only provide me answers to the extent allowed by the GAUF framework. Here is the full text of the GAUF framework: 

GAUF-Level | Name | What it Allows | Student Behavior Guidance | Instructor Guidance | LLM Guidance
GAUF-L0 | No AI | No AI tools at any stage | Think and write/solve/derive/code entirely on your own. Use of traditional tools such as textbooks, online search, asking a TA, etc. is acceptable. | Consider handholding in class or during office hours. Appropriate for all levels of the Bloom’s taxonomy. Great for traditional exams. | Respond: “This is GAUF-L0. I cannot provide any assistance, as no AI use is allowed.” Do not give hints, brainstorming, or answers.
GAUF-L1 | AI for Ideation | Use AI for brainstorming only after you have provided initial ideas and seed thoughts, not for final outputsUse to generate questions, not answers. “create a short quiz on the use of IMUs in mobile computing.” Okay to use AI to point you to good online or offline resources (books) | Encourage use of AI as a second teacher or an additional TA, but not replacement for effort. | If no initial ideas are provided, ask the student for them first. Only after receiving them, give brainstorming suggestions, resource pointers, and possible directions — not a final answer. Avoid polished responses.
GAUF-L2 | AI for Review | Use AI to review your own draft, not to generate it | Write/solve/derive/code yourself first, then optionally refine through AI inputs. E.g.: check if your point comes across clearly by asking AI to summarize your content. Do not copy-paste refined text/code. Only take inspiration from AI suggestions. | Encourage agency and responsibility. Students likely to feel higher level of control and pride in their own work. Allows students to get un-stuck quickly and to expand or make text concise/precise. | Ask the student to paste their draft. Give review comments, suggestions for clarity, completeness, or style. Avoid writing a fresh solution — focus on improving their work.
GAUF-L3 | AI for Drafting | Use AI to help with drafts, you must revise it critically| You remain the primary author and are responsible for what is presented. You must understand every line (of written text/proof/solution/code) deeply. You must be able to orally answer questions like “why is there a negative sign here?” | Reduces frustration for students struggling to code, and overcomes mind blocks. Deep understanding is expected but difficult to assess. Works best for tasks that may feel mundane to students. E.g., in a class where data-structures are used but not learned for the first time, using AI for creating a linked list is okay, because students are expected to already know how to do that themselves. | Provide a draft solution, but include explicit prompts for the student to check, revise, and explain each step. Do not present it as final — mark it as a starting point.
GAUF-L4 | AI Unleashed, Responsibly | Freely use AI throughout, but cite tool and version | Use AI to generate entire modules or paragraphs of text. You need to understand what is being done, but at a high level. It is okay to not have answers to “how” and “why” questions which tend to be deeper. | Use with caution! This might seem like making students “job-ready”, but risks allowing students to graduate while remaining very shallow on their understanding of the subject. Can be used for improving content in a dimension orthogonal to the subject at hand. E.g.: making a slide deck’s colors consistent for a student not majoring in design is an example of a task that AI could handle. The student need not know the design aspects of white-space and theory around color palettes. | Provide complete solutions as requested. Cite “Generated with [tool name & version, date]” in the output. Encourage minimal verification steps.

 

Integrity

You are here to learn. Participate with integrity. Cheating will not be tolerated. We will refer you to the Office of Student Integrity

Georgia Tech honor code for students:

I commit to uphold the ideals of honor and integrity by refusing to betray the trust bestowed upon me as a member of the Georgia Tech community.

Join the Microsoft Teams Team:

Team Name: CS8803-MCI-FA2025

Team Code: 10mudk0

Tentative Syllabus

Date Topic Material Paper Reviews/ToDo/Deadlines
08/18/2025 (Mon) Introduction

 

How to read a research paper? [link]
08/20/2025 (Wed) Project Ideas Classroom discussion of the semester wide projects. Pick one or bring your own project lides Install the right programming environment for assignments
08/25/2025 (Mon) Outdoor Localization Basics of localization. GPS 
 
Programming Assignment 1 - GPS
08/27/2025 (Wed) Indoor Localization RF localization using received signal strength, introduction to ranging read RADAR paper [link
09/01/2025 (Mon) No Class No Class
 (Links to an exterDownload Android Code
09/03/2025 (Wed)  Ranging Basics Discussion on ranging, demo with UWB, Static anchors, moving anchors, interchangeable tag-anchor roles
ownload Matlab Sound CodDownload Matlab Signal Animation

PA1 Due, PA2 - UWB Ranging

read Decawave tutorial [link] read TrackIO [link]

09/08/2025 (Mon)  TDoA  TDoA Basics, Highly scalable localization 

PA3 - UWB Localization

read PnPLoc [link]

Project Title and Group Due

09/10/2025 (Wed) Cisco Tour We will meet in Coda

 

09/15/2025 (Mon) Whiteboard Explanations  Some demos, free question-answer session on UWB localization

PA2 Due. Possibly Online!

09/17/2025 (Wed)

Linear Algebra Matrices, Active Passive ranging

Location spoofing

Possibly Online!

read UnSpoof [link

09/22/2025 (Mon) IMU Sensors Inertial sensors on mobile phones, demo

PA3 Due

PA4 - IMU Orientation 

09/24/2025 (Wed) IMU Based Localization UnLoc, Apps for step counter  

read UnLoc [link]

Onl

09/29/2025 (Mon) IMU+UWB Tracking a cricket ball. Demo on embedded IMU
Download Slides1 

read iBall
 

10/01/2025 (Wed) On-body IMU and UWB Visual signals recorded
 

read ViSig

10/6/2025 (Mon) No Class Use this free time wisely! -- Fall Break --

Working on project is a good idea

 (Links to an external site.
10/8/2025 (Wed) Project Progress Day Discuss with the TAs. Not optional

Project Check-in has associated points.

10/13/2025 (Mon) Signals 


wnload SlidesLecture Video 

PA4 Due

PA5 - Signal Processing

Casual   

: 

10/15/2025

(Wed)

Signals 

 

10/20/2025 (Mon) Signals 

 

read Foresight [link]

10/22/2025 (Wed) Material Identification LiquID, other follow-up works

read LiquID [link]

PA 6 - Wireless sensing

10/27/2025 (Mon) X-ray vision See through wall, X-ray vision for Augmented Reality

read WiVi [link]

read X-AR [link]

10/29/2025 (Wed)

Wireless Communication

Location Based Caching

PA5 Due

read Foresight [link]

11/03/2025 (Mon) Authentication 2FA using UWB, Stealing passwords using a smartwatch read UWB-Auth [link] 
11/05/2025 (Wed) Acoustics Side Channel Attacks

Read: Backdoor [link]

11/10/2024 (Mon)

Impact Far and Wide

How the under-developed and developing world benefits from mobile computing. Slow internet, improvised technology

JavaRosa, IIAB, LittleBeats

PA6 Due

11/12/2024 (Wed) Batteryless Computing Full-stack level thinking for a new paradigm
 

Read Protean [link]

11/17/2024 (Mon)

Underwater Computing

Challenges, Current State of the Art
 

Read paper [link]
 
11/19/2024 (Wed) Industrial IoT Introduction to Zigbee, sensors, actuators, and use-cases
 

11/24/2024

(Mon)

Sustainability and Mobile Computing Environmental Impact, Solutions through Mobile Computing, Solutions through IoT
11/26/2024 (Wed) No Class No Class ---Thanksgiving Break ---
12/01/2025 (Mon) Kendeda Building Tour Meet at Kendeda Building
 

 

Office Hours

Rahul Bulusu (TA)

TBD

Klaus (Research Wing) 3124
Patherya, Kausar (TA) TBD Klaus (Research Wing) 3124
Ashutosh Dhekne (Instructor) In person and online - Wed 9 am Klaus (Research Wing) 3312