Topics in Embedded Systems & The Internet of Things
CSE291 A00 - Spring 2021
Meets Tu/Thr from 15:30 to 16:50 in WARR WEST (tent on the Warren mall!).
→ Zoom link for remote participants (Note: Requires UCSD login).
Pat Pannuto is the instructor, and their office is CSE 3202 (right in the corner).
→ Office hours: Fridays, 12-1:30, via Zoom
Nishant Bhaskar is the TA for the course.
Additional office hours available by appointment, generally afternoons are preferred.
Quick Links: Paper Reviews | Participation | Class Project | Schedule | Final Exam / Presentations
→ Click here for the UCSD Embedded Lunch Seminar (Thr 12:30-1:30) – All are welcome!
Overview
Researchers, policy makers, citizen scientists, and curious individuals have an innumerable array of questions about the world around them. How does physical proximity affect disease transmission? What changes would have the greatest impact on the carbon footprint of an urban environment? What is the historical air quality like for asthmatics in the neighborhoods where I am shopping for houses? This course is about the design and implementation of platforms and systems capable of capturing the data to answer such questions.
Formally, this is the study of embedded systems and wireless sensor networks. These are computing systems that are deployed widely in the physical world, which creates unique constraints in their physical size, deployment, management, communication, energy availability, and operation. We will begin with a history of impactful deployments, then study each of the pieces in turn, both traditional sensor architectures and more exotic designs such as energy harvesting systems, synchronous wirelss communication, and how to do machine learning with less than 1 MB of memory.
Target Audience
The intended audience of this course is PhD students or masters students who are interested in pursuing a PhD in the future. This is a research-oriented class. It's designed to bring people up to speed on the history as well as the state of the art in mobile computing and to gain experience with the design, early implementation, and evaluation of a research idea.
Syllabus
This class is made of three co-equal components: pre-class reviews, in-class participation, and a quarter-long project.
Paper Reviews
Before each class you must read each paper and then write a short review. This should be more than a simple summary of the paper. Here are some questions to consider while reading and writing your reviews to help guide you:
- What is the problem this paper addresses, and why is it important?
- What is the hypothesis of this paper?
- How was this hypothesis evaluated? What supported it, what refuted it?
- What are the limits of this system (when does it fail)?
- What is this most similar to that you are already familiar with; how does it compare, differ?
- At what point did you decide you liked – or didn't like – the paper, why?
Submitting Reviews
We will use the HotCRP review system – the same tool used by many conferences to review papers.
Reviews are due the day before class. HotCRP will automatically cut off submissions at 12:01am on the morning of class. We will create accounts for all enrolled students during the first week of classes. If you need an account or have other issues, please e-mail me.
Participation
We will rotate through class members to lead discussion each session. Leads should be prepared to give an overview of the paper's key ideas and to guide a discussion about the strengths and weaknesses of the paper, how it relates to prior and/or subsequent work, and what the core takeaway(s) of the paper may be.
When not the lead, everyone else is expected to have read the papers and to actively participate in the class discussions.
Discussion Lead
Each paper has roughly 35 minutes of class time. For discussions, this should generally allow for a 5 minute introduction followed by 30 minutes of discussion.
Updated May 4: When you are leading discussion, you have three primary responsibilities:
-
Prepare a summary presentation of the paper. This summary should be reasonably polished / prepared in advance. The summary should recount the major concepts introduced in the paper, give an overview of the core technical details, and crisply identify any hypotheses presented in the work, how they were evaluated, and any conclusions that can be drawn.
-
Prepare and share a summary others' paper reviews. Try to first identify any points of confusion or desired clarifications, so that we can start the discussion by getting everyone up to speed. Then propose (at least) three topics of discussion from the paper. Try to include (at least) one that looks at the paper's strengths, one that looks at potential weaknesses, and one that looks beyond the ideas directly discussed in the paper. Share this summary and discussion prompts in the class slack before the start of class.
-
Lead discussion! Start with your summary presentation, then any remaining clarifications, and then the more open-ended discussion segment.
When you are discussion lead, you do not need to submit reviews for either your paper or the other paper (though you should still read it!).
Class Project
This class will feature a quarter long project of your own choosing. Project scope should be commensurate with group size – an individual project is acceptable, though advised against. A core goal of the project is to demonstrate mastery of the scientific method: namely to clearly articulate a hypothesis and to design and implement experiments that (in)validate the hypothesis (note: a project with a negative result may still be a highly successful project!). The goal of the project is to learn how to propose a research idea, to then collect preliminary data to probe the viability of that idea, and finally to practice communicating this process in writing.
Here is a document with some project ideas to help seed your thinking.
The project will have three milestones:
- Week 3
- Monday, April 12: One to two page proposal writeup that includes your hypothesis, motivation, and at least one experiment you intend to run.
- Week 6
- Monday, May 3: Three to four page draft that includes a literature review ("Related Work"), proposed experiments, and their expected outcomes.
- Week 10
- Tuesday, June 1: Final five to six page paper that includes outcome of small-scale experiments / prototype / etc. This should resemble an early-to-mature draft of an academic workshop paper.
Schedule
Date | Topic | Lead | Pre-Class Assignment |
---|---|---|---|
Week 1: Introduction, Motivation, Potential, and Pitfalls | |||
Mar 30 | Introduction | Pannuto | |
Apr 1 | Ubiquitous Computing | Pannuto | No paper reviews this week, just read and think about these: |
Week 2: Great Deployments Past | |||
Apr 5 | Project Group Formation Deadline | Work with Nishant to register your project group. | |
Apr 6 |
Early Lessons
Pre-reading questions:
|
Pannuto |
Sign up for to lead discussion by submitting a pull request. Conflicts resolved by timestamp (first come, first serve).
Read and review:
For those wanting more... |
Apr 8 |
Scale
Pre-reading questions:
|
Pannuto |
Read and review:
For those wanting more... |
Week 3: Everything is an Energy Problem | |||
Apr 12 | Project Milestone 1 Deadline | One page proposal writeup that includes your hypothesis, motivation, and at least one experiment you intend to run. | |
Apr 13 |
Early Insights in Low Power Systems
Pre-reading questions:
|
Gabriel Marcano - Virtual Battery Pannuto - TinyDB |
Read and review:
For those wanting more... |
Apr 15 |
Energy Harvesting
Pre-reading questions:
|
Jennifer - GameBoy (Sections 6-7 are optional) Dhananjay - Capacitance |
Read and review:
For those wanting more... |
Apr 16 | Project Milestone 1 Feedback Deadline | This is a course staff commitment – we will have feedback on each project proposal back to you by end of day. | |
Week 4: Communication (Part I) | |||
Apr 20 |
Great Ideas in Traditional Communication
Pre-reading questions:
|
Bili Dong - Long Live IP Pannuto - RI-MAC |
Read and review:
For those wanting more... |
Apr 22 | Project Workshop Day | Pannuto | Bring printed copies of revised project proposal drafts to class. |
Week 5: Communication (Part 2) | Apr 27 |
Synchronous communication protocols
Pre-reading questions:
|
Alex - TunnelScatter Nishant - IT Backscatter |
Read and review:
For those wanting more...
|
Apr 29 | Spectrum
Pre-reading questions:
|
Yeswanth - Unlicensed LPWANs Raghav - SparSDR |
Read and review:
For those wanting more... |
Week 6: Platforms | |||
May 3 | Project Milestone 2 Deadline | Three to four page draft that includes a literature review ("Related Work"), proposed experiments, and their expected outcomes. | |
May 4 |
Hardware Platform Design
Pre-reading questions:
|
Shanti - Firestorm Nishant - Telos |
Read and review:
For those wanting more... |
Keep-Quit-Start feedback
|
|||
May 6 |
Software Platform Design (aka Embedded OSes)
Pre-reading questions:
|
Olivia - TinyOS decade John - ContikiOS |
Read and review:
For those wanting more... |
Week 7: Actual, computer-y things | |||
May 10 | Project Milestone 2 Feedback Deadline | This is a course staff commitment – we will have feedback on each project proposal back to you by end of day. | |
May 11 |
ML at the Very Edge
Pre-reading questions:
|
Colin - TinyTL Ronald - MCUNet |
Read and review:
For those wanting more...
|
May 13 | Writing workshop | Pannuto |
I strongly, strongly encourage you to check out the Writing Hub, which is where these resources came from, and where there are many more resources, both for day-to-day and workshop-style events, available.
For the second half, recall these are just opinions on just one type of technical writing: |
Week 8: CPS-IoT Week | |||
May 18 | Workshop Day | Signup Sheet | Pick a workshop to attend; come to class prepared to give highlights of interesting ideas and conversations from one session (or equivalent) of the workshop. |
May 20 | Conference Day(s) | Signup Sheet | Pick one session to attend; come to class prepared to give highlights of interesting ideas and conversations from the session. |
Week 9: Security | |||
May 25 |
Individual Device Security
Pre-reading questions:
|
Huanlei - Dolphin Attack Nishant - Pacemaker/ICD |
Read and review:
For those wanting more... |
May 27 |
Security for systems of devices
Pre-reading questions:
|
Xiaohan - WAVE Nishant - Automobile |
Read and review:
For those wanting more... |
Week 10: Special Topics | |||
Jun 1 | In-person class is cancelled. You’re encouraged to check out Dhanajay and Nishant's presentation at HotOS, which starts just before the normal during class period (and to participate in the discussion there!). Otherwise, please use the time to improve your projects and writeups. |
Due by Midnight Submit a draft of your final project report to HotCRP. Reviews will be assigned at this time. |
|
Jun 3 | Smart Cities in the Real World | Lilly Irani |
Due by Midnight Each person will be assigned to review two other project papers, similar to how we have reviewed papers from class. The goal is to provide constructive feedback to your peers for their final reports. |
Finals Week | |||
Jun 7 3–6 PM |
Final Presentations | Pannuto |
Submit final papers via HotCRP. See presentation details below. |
Final Exam / Presentations
Instead of a final exam, we will have a "mini-conference" where each project will give a conference-style presentation on their research project.
Presentation Details
We will use the final exam slot for presentations. The class has been assigned a final exam timeslot of 3-6pm, Monday, June 7th.
Some guidelines for your presentation:
- Length:
- For 1-person teams, target around 8:00 minutes in length (no shorter than 6:00, no longer than 12:00).
- For 2-person teams, target around 10:00 minutes in length (no shorter than 8:00, no longer than 15:00).
- Ideally should include a demo component that highlights the system you have built in operation. Take some time with this (around 2:00)! Show off your hard work and all the cool things it does!
- Try to tell a story with your presentation. Here is one rough template (you do not have to follow this precisely, it is simply an example of how to organize such a presentation):
- Begin with an introduction that lays out the problem and why it is important [about 1:00]
- Then, succinctly explain what you actually built/did [about 0:30]
- What is the hypothesis you are exploring in this work?
- [Demo opportunity here]
- Next, look at some of the related work in this problem space, how does your solution differ from what came before? What ideas do you build on? [about 1:00]
- After that, look at how you designed your system. What tradeoffs did you have to consider in your design, what choices did you make in how to build your system and why did your make those choices? [about 2:00]
- Now, answer the question does it work. Talk about how you evaluated your system (and why that is a reasonable evaluation); compare this with prior systems if appropriate [about 2:30]
- [Demo opportunity here]
- Finally, what is the impact and result of this work? Tie back to your hypothesis. What questions might someone interested in this want to explore further? [about 1:00]
- [Demo opportunity here]
Final Paper Details
Final writeups are due on Monday, June 7th. Ideally, these would be submitted before your presentations, but we will leave the paper submission system open until midnight.
A friendly reminder: It is easy to focus on experiments and results, but the primary goal of this writing exercise is to learn how to motivate, frame, and present your work in the broader corpus of scientific literature.
The milestones are very much intended to build up this document. You have already written 1-2 pages of introduction and motivation as well as 1-2 pages of background and related work (both of which have feedback you should incorporate!). The final experimental push is just 1-2 pages on top of this. The final document is only one-third experimental results, do not let that take up too much more than one-third of your focus in writing.
Finally, to be very clear: Your project does not have to work. Negative results are healthy and to be expected, particularly in projects that encourage probing the question of whether something is possible and whether it is an idea worth pursuing further. If you do have negative results, what is important is to articulate why. Did you find something fundamental about why your proposed idea will not work, or does it seem an engineering shortcoming (if so, what evidence do you have that future work could solve this)? Note here that even for negative results, the motivation for the work should still be compelling and well-articulated (why was this something worth trying?).
Format?
I would have written a shorter letter, but I did not have the time.
I am generally reticent to put a hard cap on things, as that just encourages space games. At the same time, submission venues do have limits, and learning to write succinctly is a very valuable skill. Target 5-6 pages, do not go over 7. References don't count towards the limit. If you find you are using 7 pages, it should be figures pushing you towards the limit, not text.
For format, please use sigconf
from acmart
.
Coda
For those projects who are willing, we'll post final papers and presentations here on the course website.
This work is licensed under a Creative Commons Attribution 4.0 International License. Copyright Pat Pannuto, 2021.