COMP 418/518 - IoT Programming and Data Analysis

Instructor: Konstantinos Mamouras
Class meetings: Mondays, Wednesday and Fridays at 8:30am-9:25am (Keck Hall 100 and over Zoom)
Office hours: Tuesdays 10:00am-11:00am over Zoom

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

Tentative list of course topics:
Date Topic Readings
August 24 Introduction Notes on Canvas
August 26 Streaming Model of Computation Notes on Canvas
August 28 Streaming Model of Computation Notes on Canvas
August 31 Streaming Algorithms and Approximation Notes on Canvas
September 2 Streaming Algorithms and Approximation Notes on Canvas
September 4 Streaming Algorithms and Approximation Notes on Canvas
September 9 IoT Data Processing Notes on Canvas
September 11 Introduction to the Dataflow Model Notes on Canvas
September 14 Deterministic Dataflow Model (Process Networks) Notes on Canvas
September 16 Deterministic Dataflow Model (Process Networks) Notes on Canvas
September 18 Dataflow Graphs with Cycles (Process Networks) Notes on Canvas
September 21 TUTORIAL: Implementing Streaming Algorithms Notes on Canvas
September 23 TUTORIAL: Benchmarking Streaming Algorithms Notes on Canvas
September 25 Mathematical Semantics of Dataflow Graphs Notes on Canvas
September 28 Mathematical Semantics of Dataflow Graphs Notes on Canvas
September 30 Review of Order-theoretic Concepts Notes on Canvas
October 2 Formal Semantics of Feedback Notes on Canvas
October 5 Formal Semantics of Feedback Notes on Canvas
October 7 IoT Application: Medical Monitoring Notes on Canvas
October 9 IoT Application: Medical Monitoring Notes on Canvas
October 12 IoT Application: Medical Monitoring Notes on Canvas
October 14 Query Languages for Static Data Notes on Canvas
October 16 Query Languages for Real-time Data Notes on Canvas
October 19 Query Languages for Real-time Data Notes on Canvas
October 21 Programming Model of Spark Streaming Notes on Canvas
October 23 Programming Model of Spark Streaming Notes on Canvas
October 26 TUTORIAL: Homework Solutions Notes on Canvas
October 28 Streaming Linear Regression Notes on Canvas
October 30 Hidden Markov Models for Healthcare Applications Notes on Canvas
November 2 Hidden Markov Models: Viterbi Algorithm Notes on Canvas
November 4 Hidden Markov Models: Forward/Backward Algorithm Notes on Canvas
November 6 Hidden Markov Models: Forward/Backward Algorithm Notes on Canvas
November 9 The "Things" of the IoT Notes on Canvas
November 11 Embedded Programming for Microcontrollers Notes on Canvas
November 13 Programming the STM32F407 Microcontroller (Arm Cortex-M4) Notes on Canvas
November 16 Programming the STM32F407 Microcontroller (Arm Cortex-M4) Notes on Canvas
November 18 Single-board Computers (Raspberry Pi) Notes on Canvas
November 20 Course Review and Further 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.