Logo ÉTS
Session
Cours
Responsable(s) Julien Gascon-Samson, Patrick Cardinal

Se connecter
 

Sauvegarde réussie
La notification a été envoyée
Echec de sauvegarde
Avertissement
École de technologie supérieure

Responsable(s) de cours : Julien Gascon-Samson, Patrick Cardinal


PLAN DE COURS

Été 2025
IND520 : Réalisation d’une solution IdO (6 crédits)





Préalables
Aucun préalable requis
Unités d'agrément




Qualités de l'ingénieur

Qn
Qualité visée dans ce cours  
Qn
  Qualité visée dans un autre cours  
  Indicateur enseigné
  Indicateur évalué
  Indicateur enseigné et évalué



Descriptif du cours
Ce cours vise à développer une solution IdO (Internet des objets/IoT) d’envergure distribuée qui intégrera différentes plateformes logicielles et matérielles.

Au terme de ce cours, l’étudiante ou l’étudiant sera en mesure de : appliquer les principes de gestion de projet, de communication et de travail d’équipe ; modéliser les éléments architecturaux et logiciels d’un système IdO ; implémenter les composants d’un système IdO ; déployer un système IdO distribué.

Architecture. Conception. Implémentation. Déploiement. Applications dorsale (backend), frontale (front-end) et en périphérie (edge). Interaction avec l’environnement. Gestion de projet. Travail d’équipe.



Objectifs du cours

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.




Stratégies pédagogiques

Syllabus & Course Structure

The course is divided into seven core modules:

  1. Project Overview & Goal Definition
  2. Introduction to IoT Concepts
  3. Embedded System Design and Development
  4. Communication Protocols in IoT
  5. Application Development (Web and mobile UI, local system logic, and data handling)
  6. AI and Machine Learning Integration
  7. Communication Security
  8. Fault tolerance in IoT systems
  9. System Integration and Optimization

Each module is aligned with the immediate needs of the project. While each module focuses on a distinct domain, they are all connected through the ongoing implementation of the central project.

For each module, students attend 1 to 2 sessions (1.5 hours each) per week dedicated to theoretical learning and at least 3 hours of lab work. During lab sessions, students are given a set of practical deliverables designed as mini-projects to be integrated into the final system. Some modules (e.g., 3 and 6) are divided into parts.

 

Delivery and Workflow

  • The course begins with some introductory materials in modules 1 and 2, which include defining the project scope and introducing IoT fundamentals. Immediately afterward, students begin lab-based practical work.
     
  • Between theoretical sessions, students continue implementation using knowledge from the last module.
     
  • During some lab sessions, students are asked to demo some interim deliverables, which show how much they have progressed in realizing the main project.
     
  • Students also take quizzes and report to evaluate their understanding of the theory
     
  • Modules 7, 8, and 9 do not have quizzes or interim deliverables. Instead, they are evaluated during the final exam and the project demonstration.

 

Practical Deliverables

  • Deliverable_1: System Design, Control Logic, and Communication --> Students should show their progress in designing their ecosystem and the control logic, how much they have progressed in the basic logic of the surveillance system, such as reading/storing/transmitting biometric data, and how they have established their network communication. Students should also show the potential constraints in the system, the security risks, and how they manage to handle them.
  • Deliverable_2: Web and Mobile App --> Students should show their progress in creating their web and/or mobile app. The app should contain key UI components for two key features: user enrollment and user authentication.
  • Deliverable_3: Facial Recognition --> Students should show their progress in creating, training, and testing (evaluating) the model, which they’d use at the core of the surveillance project logic.



Utilisation d’appareils électroniques

The class will be provided with the necessary equipment to realise their IoT project. This includes both hardware and software materials. Some of the hardware materials that will be provided for the students include Raspberry Pi boards, sensor modules, camera modules, actuators, LED, breadboard, and jumper wires.

Aside from the hardware materials mentioned above, students need to bring their own laptop to perform research, coding, implementation, debugging, deployment, and the final demo.

Students are allowed to use their personal computers during the course (theory and lab) as long as they are using them to work on their projects and deliverables, and take notes.

Students are not authorized to record (audio, video) the sessions with their systems. If needed, the recording should happen with the consent of their instructor and should abide by the guidelines provided by the university.




Horaire
Groupe Jour Heure Activité
01 Lundi 13:30 - 17:00 Activité de cours
Mercredi 08:30 - 10:30 Laboratoire



Coordonnées du personnel enseignant le cours
Groupe Nom Activité Courriel Local Disponibilité
01 Amir Ali Pour Activité de cours amir.ali-pour@etsmtl.ca



Cours

Week_1 (May 7):

  • Module 1: Project overview and goal 

    • Theories (1.5 hours)

      • Course introduction and project expectations
      • A walk through the course plan
      • Surveillance use-case overview
      • Defining project functional and non-functional requirements
      •  Introduction to TinyML concepts (high level)

 

Week_2 (May 12 & 14):

  • Module 2: IoT concepts

    • Theories (1.5 hours)

      • IoT definitions, vision, and evolution
      • Basic IoT architecture and layers
      • IoT constraints: power, memory, bandwidth
      • Common use cases in IoT (industrial, medical, personal)
      • Common use cases of surveillance systems
      • Challenges in IoT systems (scalability, latency, reliability, security)
      • Comparison between Cloud, Fog, and Edge computing
      • Getting started with the Raspberry Pi boards
  • Lab (4.5 hours)

 

Week_3 (May 21):

  • Module 3: Embedded System Design (part 1)

    • Theories  (1.5 hours)

      • Introduction to Microcontrollers and Microprocessors
      • System architecture: CPU, memory, I/O buses, and Raspberry Pi system specifications
      • GPIO interfaces and analog digital I/O
      • Working with sensors and actuators( camera modules, sensors, relays)
      • Basic system programming (Python, C) for IoT control Logic
  • Lab (1.5 hours)

Week_4 (May 26 & 28):

  • Lab (6 hours)

Week_5 (June 2 & 4):

  • Module 4: IoT Communication Protocols

    • Theories (June 4*, 2 hours)

      • Overview of device-to-device and device-to-cloud communication
      • Wireless technologies for IoT (WiFi, Bluetooth Low Energy, LoRa, Zigbee)
      • Introduction to Communication Protocols: MQTT, HTTP, Websocket
      • Publish/Subscribe model explained
      • MQTT setup between the devices and the Cloud
  • Lab (June 2, 3 hours)

 

Week_6 (June 9 and 11):

  • Quiz (June 9*, 1 hour)
  • Module 5: Application Development

    • Theories (2 hours)

      • Web Front-end basics for IoT: HTML, JavaScript basics
      • Mobile app basics
      • Introduction to Kivy-based mobile applications
      • Building Enrollment and Authentication
      • Back-end basics: lightweight server using Flask or Node.js
      • Data management: storing, retrieving, and transmitting user data
      • User management and authentication in IoT Apps (Web, Mobile)
  • Lab (4 hours)


 

Week_7 (June 16 and 18):

  • Module 6: AI and machine learning integration Part-1

    • Theories (2 hours)

      • Introduction to machine learning
      • Different ML and DL model architectures
      • Training and Evaluation Workflow
  • Lab (3 hours)

    • Including evaluation of Deliverable_1

 

Week_8 (June 23 and 25):

  • Quiz (June 23*, 1 hour)
  • Module 6: AI and machine learning integration Part-2

    • Theories (3 hours)

      • Existing ML frameworks and APIs
      • Common ML-enabled distributed system architectures
      • Introduction to TinyML and OpenCV for embedded systems
      • Understanding ML model constraints for microcontrollers
  • Lab (3 hours)

 

Week_9 (June 30 and July 2):

  • Module 6: AI and machine learning integration Part-3 

    • Theories (2 hours)

      • Using pre-trained ML models (face/person detection)
      • Deploying and optimizing TensorFlow Lite models on Raspberry Pi
      • Designing a real-time inference workflow
      • Using a Cloud-based Model Training and Evaluation Microservice
  • Lab (4 hours)

    • Including evaluation of Deliverable_2

 

Week_10 (July 7 and 9):

  • Quiz (July 7*, 1 hour)

  • Module 7: Communication Security

    • Theories (2 hours)

      • Security Challenges in IoT
      • Basics of Cryptography: symmetric vs asymmetric encryption
      • Example of Diffie-Hellman key exchange protocol
      • Light-weight authentication mechanisms for IoT devices (T2S & T2T-MAKEP, LAPIC, BLAP-SHS, PLAKE) 
      • Secure communication protocols (TLS, HTTPS)
      • Privacy considerations in biometric surveillance systems
  • Lab (3 hours)

 

Week 11 (July 14 and 16):

  • Module 8: Fault Tolerance in IoT Systems

    • Theories (1.5 hours)

      • Fault types in IoT systems and HW/SW redundancy techniques
      • Watchdog timers and self-recovery strategies
      • Designing resilient IoT architectures 
  • Lab (4.5 hours)

    • Including evaluation of Deliverable_3

 

Week_12 (July 21 and 23):

  • Module 9: System Integration and Optimization

    • Lab (5.5 hours)

      • Integrating communication, control logic, security, and AI modules
      • Optimizing system resource usage (CPU, memory, power)
      • Debugging common issues in embedded environments

Week_13 (July 28 and 30):

  • Project finalization (3 hours):

    • Final integration and full system testing
    • Functionality validation and benchmarking
    • Final report preparation and guidelines
    • Preparing for full system demonstration

Week_14 (August 6):

  • Live presentation and Project Demo (3 hours)

Final Exam (3 hours)




Laboratoires et travaux pratiques

Students are expected to attend the lab sessions at least 2 sessions per week to work on their project and deliverables. Recalling that each session is 1.5 hours. Students can attend more hours of the lab sessions as is convenient to them.




Utilisation d'outils d'ingénierie

Five Raspberry Pi 5 boards with starting kits will be provided.

Each student will get one board + an SD card + a power suply + HDMI cable + a starter kit.

Some additional sensors and modules can be provided if needed to deliver the core functionalities of the project.




Évaluation

Student performance will be assessed across theoretical knowledge and practical implementation:

  • Quizzes: Short assessments to ensure conceptual understanding.
     
  • Deliverables: Ensure students progress in realizing the final project.
     
  • Project Demonstration: Students must demonstrate a fully working IoT system by the end of the course. Functionality, completeness, and innovation will be evaluated.
     
  • Project Report: A detailed technical report documenting design, implementation, challenges, and results. This serves as a backup assessment for students who encounter critical demo issues.
     
  • Final Exam: Comprehensive test covering all modules, to assess high-level understanding and synthesis.
     

Grading Breakdown

  • Theoretical Knowledge (Quizzes + Final Exam): 40%

    • Quizzes -> 15% (5% per quiz)
    • Final exam -> 25%
  • Project Demonstration and Report: 60%

    • Milestone 1 -> 5% -> a short report of 2 to 3 pages (list of everything done for deliverable_1)
    • Milestone 2 -> 5% -> a short report of 2 to 3 pages (list of everything done for deliverable_2)
    • Milestone 3 -> 5% -> a short report of 2 to 3 pages (list of everything done for deliverable_3)
    • Final Project -> 15%
    • Final Report -> 20%
    • Oral presentation -> 10%



Date de l'examen final
Votre examen final aura lieu pendant la période des examens finaux, veuillez consulter l'horaire à l'adresse suivante : https://www.etsmtl.ca/programmes-et-formations/horaire-des-examens-finaux


Politique de retard des travaux
Tout travail (devoir pratique, rapport de laboratoire, rapport de projet, etc.) remis en retard sans motif valable, c’est-à-dire autre que ceux mentionnés dans le Règlement des études (1er cycle, article 7.2.5/ cycles supérieurs, article 6.5.2) se verra attribuer la note zéro, à moins que d’autres dispositions ne soient communiquées par écrit par l’enseignante ou l’enseignant dans les consignes de chaque travail à remettre ou dans le plan de cours pour l’ensemble des travaux.

Dispositions additionnelles

N/A




Absence à une évaluation

Afin de faire valider une absence à une évaluation en vue d’obtenir un examen de compensation, l’étudiante ou l’étudiant doit utiliser le formulaire prévu à cet effet dans son portail MonÉTS pour un examen final qui se déroule durant la période des examens finaux ou pour tout autre élément d’évaluation surveillé de 15% et plus durant la session. Si l’absence concerne un élément d’évaluation de moins de 15% durant la session, l’étudiant ou l’étudiante doit soumettre une demande par écrit à son enseignante ou enseignant.

Toute demande de validation d’absence doit se faire dans les cinq (5) jours ouvrables suivant la tenue de l’évaluation, sauf dans les cas d’une absence pour participation à une activité prévue aux règlements des études où la demande doit être soumise dans les cinq (5) jours ouvrables avant le jour de départ de l’ÉTS pour se rendre à l’activité.

Toute absence non justifiée par un motif majeur (voir articles 7.2.6.1 du RÉPC et 6.5.2 du RÉCS) entraînera l’attribution de la note zéro (0).




Infractions de nature académique
Les clauses du « Règlement sur les infractions de nature académique de l’ÉTS » s’appliquent dans ce cours ainsi que dans tous les cours du département. Les étudiantes et les étudiants doivent consulter le Règlement sur les infractions de nature académique (www.etsmtl.ca/a-propos/gouvernance/secretariat-general/cadre-reglementaire/reglement-sur-les-infractions-de-nature-academique) pour identifier les actes considérés comme étant des infractions de nature académique ainsi que prendre connaissance des sanctions prévues à cet effet. À l’ÉTS, le respect de la propriété intellectuelle est une valeur essentielle et tous les membres de la communauté étudiante sont invités à consulter la page Citer, pas plagier ! (www.etsmtl.ca/Etudiants-actuels/Baccalaureat/Citer-pas-plagier).

Systèmes d’intelligence artificielle générative (SIAG)
L’utilisation des systèmes d’intelligence artificielle générative (SIAG) dans les activités d’évaluation constitue une infraction de nature académique au sens du Règlement sur les infractions de nature académique, sauf si elle est explicitement autorisée par l’enseignante ou l’enseignant du cours.



Documentation obligatoire

Book:

  • TinyML: Machine Learning with TensorFlow Lite on Arduino and Ultra-Low-Power Microcontrollers

Some papers and external slides will be provided as well which will be shared with students through the Moodle platform.




Ouvrages de références

N/A




Adresse internet du site de cours et autres liens utiles

https://ena.etsmtl.ca/course/view.php?id=26563#section-1




Autres informations

Important notes:

1- The durations indicated for each topic are approximate teaching hours. These hours are subject to variation depending on the course schedule. 

2- Since the course is evolving, there may be variations in some of the elements and secondary topics presented (e.g., protocols, frameworks, technologies) as well as in the order of presentation. However, all of the main topics listed will be covered in this course.