Internet Of Things

Instructor: Andrew Lukefahr
Time: 8:00am - 9:15am M/W
Location: TDB

NOTE: This is tentative, and subject to change


From servers to smartphones, our world has been revolutionized by the modern computer. The Internet of Things (IoT) promises to again revolutionize how we interact with computing, this time embedding compute deep within our urban environments, in homes, in ourselves, and many other places. These devices must be reliable, networked, and self-powered, enabling them to go unmaintained for decades, allowing for computation that seamlessly fades into the background of everyday life.

This class will be a mix of topical discussions and hands-on programming. It will focus on topics IoT-scale systems, including:

A large portion of this class will focus on designing and implimenting software solutions for IoT-scale problems. Due to time constraints, we will be using standardized hardware.


This class assumes you are familiar with embedded systems (P-442 or equivalent). As such, we will assume basic familiarity with topics such as low-level programming for embedded processors (C/assembly), basic hardware structures (ADCs, DACs, timers, etc), and basic familiarity with testbench equipment (multimeter/oscilloscope).

Students without such background are advised to consult the instructor.



We will read on average two papers per week (mostly in the second half of the semester). You will need to read and write a short review of the assigned paper and submit it via Canvas.

The review should answer the following questions:


We will have two short assignments at the beginning of the semester. These will involve well-defined problems and solutions. You will be given the hardware.

The (tentative) assignments include:

You will be allowed to work in teams of two.


This class will also feature a half-semester project focused on designing and implementing solutions for an energy-constrained IoT system. You will need to explore potential solutions, research their feasibility, produce a theoretical design, and implement your solution on the provided hardware.

You will be allowed to work in teams of two or three for the projects.

The project will involve a milestone review, a final written report, and a presentation/demonstration to the class.

In-class Participation

You are expected to participate in the in-class discussions. As such, attendance is mandatory. Unexcused absences will impact your final grade.

Grading Policy

Your grade for the course will be based on:

Late Policy

I do not accept any late work, except in cases of documentable personal or medical emergencies.

Piazza CSCI B49

The bulk of communication outside of class will be through Piazza. Please sign up for the class, and check it regularly.


There is a Canvas site. This will be used to post grades only.

Google Drive

Note: A ‘references’ folder will be visible only for those signed into Google Drive with an IU account.

Schedule of Topics