Course Overview

The vision of the Internet of Things (IoT) is a future where microprocessors and wireless radios are embedded into everyday objects, bestowing intelligent behavior on inanimate objects and enabling them to automatically and intelligently serve people in a collaborative manner. IoT is expected to revolutionize many areas of our lives, including healthcare, manufacturing, transportation, robotics, and agriculture. Engineers of all backgrounds and disciplines will be involved in the design of future IoT products for a diverse set of applications. The focus of this course is to explore the basic building blocks that make the Internet of Things possible, including the underlying core hardware components, basic input/output operations, wireless radio technologies, and sensing/actuation devices. We will discuss fundamental concepts of IoT systems and their use in a wide range of applications and also address various aspects of the wider IoT ecosystems such as security, privacy, and ethical considerations. The course will be a hands-on course with various skill building lab modules and projects. We will first learn the basics of Python programming and then work through various IoT components, such as sensing, actuation, and networking, using Raspberry Pi (and potentially Arduino) devices.

By the end of the course, a student this class will be able to demonstrate, among other things, the following:
  • An understanding of how microprocessors, sensors, and radio hardware are integrated into an embedded/IoT hardware platform.
  • An understanding of how low power wireless links behave in terms of metrics such as signal quality, error rates, throughput, as a function of link distance, channel and power settings.
  • An understanding of how medium access control (MAC) protocols such as carrier sense multiple access allow multiple devices to share a medium.
  • An understanding of how to prolong the battery lifetime of an embedded device by using sleep cycling and asynchronous MAC protocols.
  • An understanding of how to process raw data and signals from sensors to minimize noise and to estimate useful parameters such as a device’s location.
  • An understanding of the TCP/IP protocol suite and how to program one device to talk over the Internet to other devices.
  • How to program mobile devices to access their sensors and communication capabilities.
  • An understanding how to store and process information in the cloud using databases and computing frameworks such as Hadoop or Google’s Cloud Data Flow.
  • The ability to learn new emerging distributed system technologies in the field of IoT.

Course Information:

  • Instructor: Christian Poellabauer
  • - Office hours: Before and after lectures, Friday 9-10.30am, and by appointment
  • - Office: Stadtkloster lecture hall
  • - Email: cpoellab@nd.edu

  • TA: Jessica Cioffi
  • Class location: Stadtkloster lecture hall
  • Lecture times: Monday/Wednesday 2-5pm