This course introduces the foundational concepts and technologies underlying Artificial Intelligence of Things (AIoT) systems, with an emphasis on the role of containerization in the development and prototyping of distributed intelligent applications. Containerization provides portable, efficient, and reproducible execution environments that support modular design and scalable deployment across heterogeneous computing platforms, including cloud servers, edge nodes, and resource-constrained IoT devices. While Docker is used as the primary tool to illustrate these principles, the course frames containerization more broadly as a key abstraction for modern software systems.
The course adopts a predominantly practical approach. Core IoT principles are taught through hands-on examples that integrate communication protocols and data services commonly used in contemporary IoT architectures. These include LoRaWAN for low-power wide-area connectivity, MQTT and REST for device communication and API interactions, time-series databases such as InfluxDB for data persistence, and telemetry agents such as Telegraf for system monitoring. Through these examples, students develop a comprehensive understanding of data acquisition, processing, and transport in distributed IoT environments.
The concluding part of the course introduces the foundational concepts of Tiny Machine Learning (TinyML) as an enabling technology within the broader AIoT ecosystem. TinyML focuses on machine learning techniques tailored for ultra-low-power microcontrollers and embedded devices. Students examine how on-device inference enables real-time analytics, reduces bandwidth consumption, and minimizes dependence on cloud services. By situating TinyML within the AIoT paradigm and linking it to containerized development workflows, the course provides students with an integrated perspective on how edge intelligence and scalable containerized services form modern end-to-end AIoT systems.