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.
Connected Devices assignments 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.
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. While not required, we have used the Raspberry Pi 3 or 4 as the hardware platform for testing in the past, so it’s an option for you as well. All required lab modules can technically be developed and run 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 is specific to Raspberry Pi SBC’s, although it is not required for the course. Lastly, 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 | TYPE |
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 |