Topics in Embedded Systems and Communication

CSE291 D00 - Fall 2018

Meets on Tu/Th from 9:30am to 10:50am in CSE 4258.
The instructor is Aaron Schulman (aka Aaron Shalev) and he lives in CSE 3120.
Office hours are Tu/Th from 11:00am to 11:50am in CSE 3120.

Embedded computing devices such as smartphones, wearables, and IoT devices have overtaken PCs as the predominant platform for computation and communication with billions of devices in use. The shift to the embedded platform has brought with it a host of new challenges. Embedded devices have severely constrained energy capacity, their network connectivity is exclusively provided by unreliable bandwidth-constrained wireless links, they carry a standard set of sensors that are seemingly insufficient for certain applications and also can inadvertently leak private information about their users. Also, embedded devices are notoriously difficult to secure because they lack hardware security primitives.

In this course, we will discuss research that addresses the challenges introduced by the mobile platform by inspecting the blurry lines between electrical engineering and computer science.

As with many other research seminars, the course will be predominately a discussion of a set of research papers. However, we will also discuss the origins of these research projects, the impact that they had on the research community, and their impact on industry (spoiler alert: the impact on industry generally is hard to predict). The course will also include a quarter-long project that will result in a draft of a conference-style paper.

Prerequisites

Students must have taken an undergraduate systems course, either networking or operating systems. Some experience with embedded systems (e.g., Arduino hacking) and wireless communication (e.g., Software Defined Radios such as the RTL-SDR) is preferred.

If you would like to quickly spin up on embedded systems, read the following chapters from MIT's 6.02 course from MIT OpenCourseWare: 4, 10, 14, 15. Read the following chapters in "Introduction to Embedded Systems" by Lee & Seshia: 7, 8, 10, 17

Grading Criteria

If you are taking the course for full credit (4 credits - letter grade), grading will be based on the following breakdown: Individual or group project (50%), paper notes and discussion lead (25%), and class participation (25%).

If you are taking the course for partial credit (2 credits - pass/fail), grading will be based on the following breakdown: paper notes and discussion lead (50%) and class participation (50%).

Instructions for Notes Assignment

Your discussion notes should serve the following two purposes: as a quick reference guide for the paper and as an outline of the discussion that you will lead in class.

You should answer the following questions about the paper for the quick reference guide:

  • What is the problem the paper addresses?
  • Why is the problem important?
  • What is the proposed solution?
  • What were the challenges that the authors faced?
  • How did the authors evaluate their solution?
  • What falls outside the scope of this paper?
(some text borrowed from Prabal Dutta's project proposal notes)

Your discussion-lead notes should consist of a list of the questions that you plan to use to seed the in class discussion.

Schedule

Day Topic Preparation for class
Week 1: Introduction to emdedded and mobile research
Th Sep 26 Introduction Lecture
Week 2: How it all started
Tu Oct 2 Defining Ubiquitous (and Mobile) Computing 1. The Computer for the 21st Century
2. Some Computer Science Issues in Ubiquitous Computing
Th Oct 4 1. Defining Internet of Things
2. Discuss project ideas
1. The Internet of Things
2. Project idea selection due next Thu. (Oct 11)
Week 3: Energy efficency
Tu Oct 9 1. Classic work on mobile energy efficiency
2. The pros and cons of energy modeling
1. Energy-aware adaptation for mobile applications
2a. Fine Grained Energy Accounting on Smartphones with Eprof
2b. Evaluating the Effectiveness of Model-Based Power Characterization
Th Oct 11 1. Making sleep less painful
2. Project proposal discussion and finalize paper lead assignments
1. Drowsy Power Management
2. One-page project proposal writeup due Monday at 10:00pm (please email it to schulman@cs.ucsd.edu).
3. Paper lead should be selected before class. Sign-up sheet will be posted here by Tuesday at 10:00pm.
Week 4: Localization
Tu Oct 16 Indoor localization 1. SpotFi: Decimeter Level Localization Using WiFi
2. Luxapose: Indoor Positioning with Mobile Phones and Visible Light
Th Oct 18 Discussion on indoor localization & efficient outdoor localization 1. Indoor Localization: Are We There Yet?
2. Caraoke: An E-Toll Transponder Network for Smart Cities
Week 5: Projects
Tu Oct 23 Discussion of project proposals
Tu Oct 23 No class (CNS Workshop)
Week 6: Movement and Sharing
Tu Oct 30 Sensing human movement 1. LiveTag: Sensing Human-Object Interaction Through Passive Chipless WiFi Tags
2. Wall++: Room-Scale Interactive and Context-Aware Sensing
Th Nov 1 Multi-tasking on embedded systems 1. Multiprogramming a 64 kB Computer Safely and Efficiently
2. Amulet: An Energy-Efficientm Multi-Application Wearale Platform
Week 7: Applications and Security
Tu Nov 6 IoT for Agriculture 1. FarmBeats: An IoT Platform for Data-Driven Agriculture
2.Wi-Wheat: Contact-Free Wheat Moisture Detection with Commodity WiFi
Th Nov 8 Latest IoT Security Issues 1. BlackIoT: IoT Botnet of High Wattage Devices Can Disrupt the Power Grid
2. Skill Squatting Attacks on Amazon Alexa
Week 8: Projects and Humans
Tu Nov 13 Project Hackathon
Th Nov 15 Sensing human emotion and poses 1. Emotion Recognition using Wireless Signals
2. Through-Wall Human Pose Estimation Using Radio Signals
Week 9: Scheduling
Tu Nov 20 Real-Time Garbage Collection 1. Generalized Rate-Monotonic Scheduling Theory: A Framework for Developing Real-Time Systems
2. List Processing in Real Time on a Serial Computer
Th Nov 22 No class (Thanksgiving)
Week 10: Safety
Tu Nov 27 Memory isolation for IoT devices 1. Application Memory Isolation on Ultra-Low-Power MCUs
2. Efficient Memory Safety for TinyOS
Th Dec 4 Hackathon
Week 11: Project presentations