About the Course

This course is all about making the IoT ‘work’, and as such, involves substantial software development using Python, Java, Git source code management, and Linux shell scripting.
Course Lab Modules
Connected Devices assignments (lab modules) are different than what you might normally see in a course. Each assignment serves as the basis for the next one, so it’s VERY IMPORTANT that you start working on each as soon as possible, as they get progressively more difficult and can take many days to implement.
Connected Devices Lab Module Main Site (with Kanban Board link)
Systems Information
Although specialized device hardware (e.g., an SBC with attached sensors and actuators) is NOT required for the course, you will need a modern computing workstation or laptop for software development and application execution. For those interested in trying their solution out on actual hardware, you may want to consider the Raspberry Pi SBC for testing and experimentation (I’ve run some lab modules on Raspberry Pi 0W, 3, and 4).
All required lab modules can technically be developed and executed on a single system running Windows 11 (WSL 2), macOS, or Linux. I’ll mostly be teaching and demonstrating code using either Windows 11 / WSL 2 or macOS. That said, one of the optional lab module exercises in Lab Module 4 is specific to Raspberry Pi SBC’s, although it is not required for the course. As a side note, the emulator in Lab Module 04 is generally easier to run in a native Linux environment, as are the exercises in Lab Modules 08 and 09.
See Programming the IoT – README for the Lab Module roadmap.
Course Organization and Syllabus (subject to change)
| Week | Part | Topic | Format |
|---|---|---|---|
| 1 | 01 | Foundational Concepts and DevOps: IoT Systems Concepts | Lecture/Lab |
| 2 | IoT Architectures and Edge Computing Basics | Lecture/Lab | |
| 3 | Quiz No. 1 (Part 01) | Lecture/Quiz | |
| 4 | 02 | Data Simulation and Data Emulation | Lecture/Lab |
| 5 | Data Management and Integration | Lecture/Lab | |
| 6 | Quiz No. 2 (Part 02) | Lecture/Quiz | |
| 7 | 03 | MQTT Client – Part 01 of 02 | Lecture/Lab |
| 8 | MQTT Client – Part 02 of 02 | Lecture/Lab | |
| 9 | CoAP Server | Lecture/Lab | |
| 10 | CoAP Client | Lecture/Lab | |
| 11 | Edge Integration | Lecture/Lab | |
| 12 | Quiz No. 3 (Part 03) | Lecture/Quiz | |
| 13 | 04 | Cloud Integration | Lecture/Lab |
| 14 | Quiz No. 4 (Part 04) | Lecture/Quiz | |
| 15 | Final Project Completion and Presentation | Project Presentations |
