Carnegie Mellon University

Electrical and Computer Engineering

College of Engineering

Course Information

18-747SV: How to Write Low Power Code for the IoT




The Internet of Things (IoT) may well become the next computing platform, overshadowing mobile and desktop computing. Developing applications for the IoT - such as for smart cities or smart environments - necessitates a thoughtful approach to a new set of questions: How does the software engineer arrange for these devices to time-coordinate their actions? Should computing be done in the cloud or on the device? And perhaps most importantly, how is software to be developed so that battery-operated devices will last for years? Seeking answers to these questions motivates a model-based approach. Since IoT devices compute and communicate - with each of these requiring power - how can we model battery-powered IoT devices to let us reason about programming them and, additionally, optimally using their scarce energy resources? In this course, we will examine some of the core characteristics of the communications and computing capabilities of IoT devices (including low-power, on-device machine learning), develop models of these, create IoT software, and evaluate its performance. Students will have the opportunity to use a purpose-built IoT software development platform called PowerDué that enables deep exploration of IoT device characteristics in realistic applications. The class is structured around lectures, analyzing papers from the literature, and lab exercises. No prior experience with embedded systems is required.

Last Modified: 2020-07-24 1:08PM

Semesters offered:

  • Fall 2020
  • Fall 2019
  • Fall 2018
  • Fall 2017
  • Fall 2016