Carnegie Mellon University

Electrical and Computer Engineering

College of Engineering

Course Information

18-747: 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:20PM

Semesters offered:

  • Fall 2020
  • Fall 2005
  • Fall 2002
  • Fall 2001
  • Spring 2001
  • Fall 1999