Intelligent and connected devices are growing at an unprecedented rate. These devices range from smart assistants to low-resource health or environmental monitoring systems. These devices interact with multiple levels of the technological stack, but often, students do not get the breadth of experience these applications require. We present the design and implementation of a Full Stack Internet of Things(IoT) course for undergraduate computer science majors, which addresses this need by integrating multiple technological layers. Unlike some other IoT courses, this course covered several technological layers for building an IoT system and students interact with industry professionals. Students explore trade-offs and challenges at every level of the IoT stack, including devices, communication, web development, security, privacy, and machine learning cloud integration.
The course emphasizes the importance of interlayer interactions, introducing research concepts and connections between AI/ML and IoT. Hands-on experience with simulation and physical devices is provided, allowing students to combine core competencies from software engineering, computer architecture, networking, and operating systems courses in a meaningful way. Our pedagogical approaches and selected assignments are presented, demonstrating tools for scaffolding CS students to develop hardware-based skills and create an experiential learning environment. Positive student learning outcomes were observed, and a retrospective survey quantifies knowledge gained in Full-Stack development. Recommendations for future IoT courses are provided, highlighting the value of experiential learning and interdisciplinary integration in developing well-rounded computer science professionals.
The full paper will be available to logged in and registered conference attendees once the conference starts on June 22, 2025, and to all visitors after the conference ends on June 25, 2025