COMP 418/518 - IoT Programming and Data Analysis (Spring 2023)

Instructor: Konstantinos Mamouras
Class meetings: Monday, Wednesday and Friday at 10:00 am - 10:50 am
Office hours: TBA (see Canvas)

Course Description

COMP 418/518 is an introduction to the Internet of Things (IoT). It will present tools and techniques needed to develop complex IoT applications that encompass interaction with the physical world and data analysis across the IoT computing infrastructure. The topics range from programming microcontrollers and single-board computers to IoT automation and the efficient analysis of real-time IoT data.

Required Texts and Materials

There is no required textbook for the course. Notes and other materials will be distributed.

Grade Policies

The grade will be based on homework assignments.

Course Schedule

Date Topic Readings
January 9 Introduction Notes on Canvas
January 11 Streaming Model of Computation Notes on Canvas
January 13 Streaming Model of Computation Notes on Canvas
January 16 NO CLASS
January 18 Streaming Model of Computation - Resource Lower Bounds Notes on Canvas
January 20 Streaming Model of Computation - Resource Lower Bounds Notes on Canvas
January 23 Streaming Algorithms Notes on Canvas
January 25 Streaming Algorithms Notes on Canvas
January 27 Streaming Algorithms and Approximation Notes on Canvas
January 30 Streaming Algorithms and Approximation Notes on Canvas
February 1 More Streaming Algorithms Notes on Canvas
February 3 More Streaming Algorithms Notes on Canvas
February 6 More Streaming Algorithms Notes on Canvas
February 8 TUTORIAL: Implementing Streaming Algorithms Notes on Canvas
February 10 NO CLASS
February 13 Overview (Algorithms) Notes on Canvas
February 15 IoT Data Processing Notes on Canvas
February 17 Dataflow Model Notes on Canvas
February 20 Dataflow Model Notes on Canvas
February 22 Dataflow Model Notes on Canvas
February 24 Deterministic Dataflow (Process Networks) Notes on Canvas
February 27 Deterministic Dataflow (Process Networks) Notes on Canvas
March 1 Deterministic Dataflow (Process Networks) Notes on Canvas
March 3 TUTORIAL: Semantics and Proofs Notes on Canvas
March 6 Dataflow Cycles (Feedback) Notes on Canvas
March 8 Formal Semantics of Feedback Notes on Canvas
March 10 Formal Semantics of Feedback Notes on Canvas
March 13 NO CLASS Notes on Canvas
March 15 NO CLASS Notes on Canvas
March 17 NO CLASS Notes on Canvas
March 20 Query Languages Notes on Canvas
March 22 Query Languages Notes on Canvas
March 24 TUTORIAL: Dataflow DSL Notes on Canvas
March 27 Query Languages & Overview (Programming) Notes on Canvas
March 29 IoT Application: Cardiac Monitoring Notes on Canvas
March 31 IoT Application: Cardiac Monitoring Notes on Canvas
April 3 IoT Application: Cardiac Monitoring Notes on Canvas
April 5 IoT Devices Notes on Canvas
April 7 IoT Devices Notes on Canvas
April 10 Programming the STM32F407 Microcontroller (Arm Cortex-M4) Notes on Canvas
April 12 Programming the STM32F407 Microcontroller (Arm Cortex-M4) Notes on Canvas
April 14 Data Reduction for IoT Streams Notes on Canvas
April 17 TUTORIAL: Final Assignment Notes on Canvas
April 19 TUTORIAL: Final Assignment Notes on Canvas
April 21 Overview & Research Topics Notes on Canvas

Absence Policies

If a student misses a course meeting, they are expected to review the corresponding material on their own.

Rice Honor Code

In this course, all students will be held to the standards of the Rice Honor Code, a code that you pledged to honor when you matriculated at this institution. If you are unfamiliar with the details of this code and how it is administered, you should consult the Honor System Handbook. This handbook outlines the University's expectations for the integrity of your academic work, the procedures for resolving alleged violations of those expectations, and the rights and responsibilities of students and faculty members throughout the process.

Disability Support Services

If you have a documented disability or other condition that may affect academic performance you should: 1) make sure this documentation is on file with Disability Support Services (Allen Center, Room 111 / adarice@rice.edu / x5841) to determine the accommodations you need; and 2) talk with the instructor to discuss your accommodation needs.