This course is designed as a project-oriented, 6-credit course aimed at engaging computer engineering students with the end-to-end process of designing, developing, and deploying an IoT system and application. Emphasizing hands-on experience, the course integrates practical workloads with targeted theoretical content that provides essential knowledge on the key components of the IoT ecosystem.
The core objective is for students to develop a small-scale, functioning IoT ecosystem for surveillance and user action-based authentication, all while coordinating project deliverables and managing a cohesive and productive teamwork.
Project Theme
The central project revolves around a biometric surveillance application, which provides a concrete, real-world context for learning. This system will:
- Collect and process biometric data (e.g., facial images)
- React to this data in real time using embedded control logic
- Integrate AI and image processing to demonstrate intelligent decision-making
- Address basic security and privacy concerns relevant to sensitive data
- Respect hardware limitations through efficient, optimized design
- Operate robustly against potential flaws and outages
This project showcases the growing importance of AI in IoT and prepares students to design systems that are functional, secure, and intelligent, even under the constraints of edge hardware. Since ML in embedded systems can easily introduce bottlenecks, to avoid them, this course specifically aims to follow the Tiny-ML guidelines on how an ML model should be employed in a constrained system.
Learning Outcomes
By the end of the course, students will be able to:
- Design and implement edge systems for real-world IoT applications.
- Understand and apply basic communication protocols used in IoT.
- Develop essential security for communication channels for IoT devices.
- Build interactive applications that respond to data from IoT systems.
- Develop basic web and mobile backend and frontend for IoT data monitoring and control.
- Deploy lightweight AI models on embedded devices for real-time inference.
- Employ some basic fault-tolerance techniques to create a robust small-scale IoT ecosystem
- Integrate components into a cohesive IoT system that balances performance, security, and usability.
- Troubleshooting and debugging
- Task management and timing in a small-scale team
- Project management and teamwork
Prerequisites
Students who will attend this course should have attended:
- GTI700: Principles and fundamentals of IoT
- GTI525: Basics of web development.
Students should also have basic programming knowledge with JavaScript, Python, and C. No advanced knowledge of embedded systems is required. However, students should have a basic understanding of the theories in computing systems and their constituent components. For instance, they should know what a microcontroller is, how it is powered and functions, and how it can be programmed. Also, they should know the basic theories of the central computing architecture, which comprises the central processing unit, memory, system I/O, and system bus.