Logo ÉTS
Session
Cours
Responsable(s) Catherine Laporte, Pascal Giard

Se connecter
 

Sauvegarde réussie
Echec de sauvegarde
Avertissement
École de technologie supérieure

Responsable(s) de cours : Catherine Laporte, Pascal Giard


PLAN DE COURS

Été 2022
ELE216 : Développement de logiciels en génie électrique (4 crédits)


Modalités de la session d’été 2022


Vous trouverez ci-dessous les modalités de la session d’été 2022. Vous devez les lire attentivement.


Pour assurer la tenue de la session d’été 2022, les modalités suivantes seront appliquées :


  • Les activités d’enseignement de la session d’été 2022 comprendront des activités en présence et à distance, lesquelles seront ajustées en fonction de l’évolution de la situation socio-sanitaire.
  • Pour les cours (ou séances de cours) donnés à distance, l’étudiant doit avoir accès à un ordinateur, un micro, une caméra et un accès à internet, idéalement de 10Mb/s ou plus. L’étudiant doit ouvrir sa caméra et/ou son micro lorsque requis, notamment pour des fins d’identification ou d’évaluation.
  • Les cours (ou séances de cours) donnés à distance pourraient être enregistrés, afin de les rendre disponibles aux étudiants inscrits au cours.
  • La notation des cours sera la notation régulière prévue aux règlements des études de l’ÉTS.
  • Les examens (intra, finaux) se feront en présence, tant que la situation socio-sanitaire le permet.
  • Le contexte actuel oblige bien sûr l’ÉTS à suivre de près l’évolution de la pandémie de COVID-19, laquelle pourrait entraîner, avant ou après le début de la session d’été 2022, un resserrement des directives et recommandations gouvernementales. Nous vous assurons que l’ÉTS se conformera aux règles en vigueur afin de préserver la santé publique et que, si requis, elle pourrait aller jusqu’à interdire l’accès physique au campus universitaire et ordonner que toutes les activités d’enseignement et d’évaluation soient exclusivement données à distance pour tout ou partie de la session d’été 2022. Ainsi, si les examens (intra, finaux) devaient se faire à distance, leur surveillance se fera à l’aide de la caméra et du micro de l’ordinateur et pourrait être enregistrée. Ceci est nécessaire pour se conformer aux exigences du Bureau canadien d’agrément des programmes de génie (BCAPG) afin d’assurer la validité des évaluations.
  • Des exigences additionnelles pourraient être spécifiées par l’ÉTS ou votre département, suivant les particularités propres à votre programme.

En vous inscrivant ou en demeurant inscrit à la session d’été 2022, vous acceptez les modalités particulières de la session d’été 2022.


Nous vous rappelons que vous avez jusqu’au 17 mai 2022 pour vous désinscrire de vos cours et être remboursé.


Pour les nouveaux étudiants inscrits au programme de baccalauréat uniquement, vous avez jusqu’au 31 mai 2022 pour vous désinscrire de vos cours et être remboursé.




Préalables
Programme(s) : 7694
             
  Profils(s) : Tous profils  
             
    INF147    
             
Unités d'agrément
Total d'unités d'agrément : 64,8 66,7 % 33,3 %




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

Acquérir les bases de la programmation multitâches. Se familiariser avec un environnement de développement moderne de logiciels et les concepts ainsi que les outils de déverminage, de mise au point, de validation, de vérification et de contrôle de version. Acquérir les bases de programmation défensive.

Concepts de processus, de tâches et d’ordonnancement. Concepts et mécanismes de synchronisation, de protection d’accès, de partage de ressources et de communication avec le matériel. Méthodes de programmation défensive, de développement piloté par tests et de tests unitaires. Outils et méthodologies de vérification et de validation tels que la mesure de couverture de code et le profilage.

Méthodes et outils de contrôle de version. Séances de laboratoire : réalisation en équipe de projets de conception de logiciels sur des problèmes spécifiques au génie électrique.




Objectifs du cours

A la fin de ce cours, l’étudiant(e) sera capable de :
-    Maitriser l’environnement de développement moderne de logiciels ainsi que les outils de déverminage, de mise au point, de validation, de vérification, et de contrôle de version;
-    Appliquer les principes de conception des logiciels de qualité;
-    Acquérir les bases de programmation défensive;
-    Proposer des solutions pour des problèmes dans le développement des logiciels comme la synchronisation, la protection d’accès, le partage de ressources, et la communication avec le matériel.
 




Stratégies pédagogiques

Un (1) cours magistral par semaine (3 heures). Des exercices réalisés par l'étudiant.e seront faits en classe pour permettre d’assimiler les concepts théoriques. Une participation importante de l'étudiant.e est attendue et requise pendant les séances de cours.

Une (1) séance de laboratoire par semaine (3 heures).  Au laboratoire, les étudiant.e.s travaillent en équipe de deux sauf pour la première séance. 

Des séances de laboratoire pourraient être interverties avec des séances de cours afin de mieux arrimer le contenu des laboratoires à la progression des notions vues en cours.
 




Utilisation d’appareils électroniques

Ordinateur portable requis.




Horaire
Groupe Jour Heure Activité
01 Lundi 18:00 - 21:30 Activité de cours
Jeudi 18:00 - 21:00 Laboratoire (Groupe A)
Vendredi 18:00 - 21:00 Laboratoire (Groupe B)



Coordonnées de l’enseignant
Groupe Nom Activité Courriel Local Disponibilité
01 Georges Matar Activité de cours cc-Georges.Matar@etsmtl.ca
01 Houssem Eddine Gueziri Activité de cours cc-Houssem-Eddine.Gueziri@etsmtl.ca A-2608
01 Sébastien Champoux Laboratoire (Groupe A) sebs.champoux@gmail.com
01 Benjamin Lapointe Laboratoire (Groupe A) benjamin.lapointe.1@ens.etsmtl.ca
01 Carlos Cesar Fallaque Beltran Laboratoire (Groupe B) carlos-cesar.fallaque-beltran.1@ens.etsmtl.ca
01 Rachel Takla Laboratoire (Groupe B) rachel.takla.1@ens.etsmtl.ca
01 Sébastien Champoux Laboratoire (Groupe B) sebs.champoux@gmail.com



Cours
Semaine Contenus traités dans le cours Heures
 

Introduction:

Introduction à Linux; Système d’exploitation; Unix et Linux; Introduction aux notions muti-tâche, multi-utilisateur, multithread; Outils de Linux; Environnement de développement Visual Studio Code; Gestion de code et documentation dans Eclipse.  Introduction au contrôle de révisions et à Git.
1.5
 

Système d’exploitation Linux:

Système d’exploitation; Fichiers; Terminal; Mode noyau et mode utilisateur; Processus et threads; Appels systèmes; Entrée/Sortie; Socket; Horloge.
3
 

Programmation multi-processus sous Linux :

Programmation sous Linux; Processus; Création et terminaison de processus; Environnement de processus; Changement de contexte; Gestion du temps du processeur; Communication inter-processus; signaux et gestion d'erreurs.
3
 

Programmation multi-thread sous Linux :

Threads; Création et terminaison de threads; Environnement de threads; Synchronisation, sémaphores et mutex.

6
 

Déverminage et détection d’erreurs:

Gestion de mémoire; Déverminage; Erreurs dans la programmation; Saisie d’erreur; Déverminage au niveau de code source; Déverminage au niveau binaire; Rapport d’erreurs.
3
 

Programmation d’entrée/sortie:

Gestion d’entrée/sortie sous Linux; Système de fichiers; Droits d’accès; Descripteurs d’entrée/sortie; Système de fichiers virtuel; Appels de système; Sérialisation et désérialisation de données
3
 

Programmation réseau et modèle client-serveur;

Communication réseau par sockets; Programmation client-serveur; Serveurs itératifs et concurrentiels
3
 

Méthode de développement Agile:

Gestion de projets; Spécifications de logiciel; Méthode de développement Agile; Scrum.

1.5
 

UML et Patrons de conception

Introduction à la modélisation UML et à différents types de diagrammes UML.  Introduction aux patrons de conception.
6
 

Test et validation de logiciels

Tests; Test unitaire et intégration; Boîte noire et boîte blanche; Top-down et bottom-up.

3
 

Révision et réusinage de code :

Révision de code; Révision de code dans l’industrie; Réusinage de code; Maintenance de code.

1.5
 

Profilage et optimisation de performance :

Mesure de performance; Métriques; Profilage; Outils de profilage logiciels et matériels; Échantillonnage et instrumentation; Optimisation de performance.

1.5
  TOTAL  39

Remarque: la matière peut être vue dans un ordre différent de celui présenté au plan de cours pour faciliter l'assimilation des concepts et l'arrimage avec les laboratoires.




Laboratoires et travaux pratiques

Les laboratoires sont réalisés en langage C dans l’environnement GNU/Linux, sur les ordinateurs personnels des étudiant.e.s ou en accès distant aux ordinateurs d'un laboratoire GNU/Linux.

Séance Activité

Heures (lab/maison)

1 Laboratoire 1 3/4
2-4 Laboratoire 2 9/12
5-8 Laboratoire 3 12/16
9-12 Laboratoire 4 12/16
  TOTAL  36/48



Utilisation d'outils d'ingénierie

-    Environnement de développement Visual Studio Code pour le langage C;
-    Périphériques d’entrée/sortie et le réseau local;
-    Environnement de gestion de sources git et serveur de gestion de projet Gitlab.




Évaluation
Activité Valeur (%)
Examen de mi-session 28
Examen final 28

Laboratoires:

  • Travail pratique 1 (5%)
  • Travail pratique 2 (13%)
  • Travail pratique 3 (13%)
  • Travail pratique 4 (13%)
44

Remarque: Les examens et les laboratoires se font sur les ordinateurs des étudiant.e.s ou en accès distant sur des ordinateurs de laboratoire GNU/Linux. Les remises se font sur le serveur gitlab du département.




Double seuil
Note minimale : 50



Dates des examens intra
Groupe(s) Date
1 20 juin 2022



Date de l'examen final
Votre examen final aura lieu pendant la période des examens finaux, veuillez consulter l'horaire à l'adresse suivante : http://etsmtl.ca/Etudiants-actuels/Baccalaureat/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.7 b / cycles supérieurs, article 6.5.4 b) se verra attribuer la note zéro, à moins que d’autres dispositions ne soient communiquées par écrit par l’enseignant dans les consignes de chaque travail à remettre ou dans le plan de cours pour l’ensemble des travaux.

Dispositions additionnelles

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.7 b / cycles supérieurs, article 6.5.4 b) se verra attribuer la note zéro, à moins que d’autres dispositions ne soient communiquées par écrit par l’enseignant dans les consignes de chaque travail à remettre ou dans le plan de cours pour l’ensemble des travaux.
 




Absence à un examen
Dans les cinq (5) jours ouvrables suivants, la tenue de son examen, l’étudiant devra justifier son absence d’un examen durant le trimestre auprès de la coordonnatrice – Affaires départementales qui en référera au directeur du département ou du SEG. Pour un examen final, l’étudiant devra justifier son absence auprès du Bureau du registraire. Dans tous les cas, l’étudiant doit effectuer sa demande en complétant le formulaire prévu à cet effet qui se trouve dans son portail Mon ÉTS/Formulaires. Toute absence non justifiée par un motif majeur (maladie certifiée par un billet de médecin, décès d’un parent immédiat, Activité compétitive d’un étudiant appartenant à un club scientifique ou un club sportif d’élite de l’ÉTS ou au programme « Alliance sport étude » ou autre) à un examen entraînera l’attribution de la note zéro (0).



Plagiat et fraude
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 étudiants doivent consulter le Règlement sur les infractions de nature académique (https://www.etsmtl.ca/docs/ETS/Gouvernance/Secretariat-general/Cadre-reglementaire/Documents/Infractions-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 les étudiants sont invités à consulter la page Citer, pas plagier ! (https://www.etsmtl.ca/Etudiants-actuels/Baccalaureat/Citer-pas-plagier).



Documentation obligatoire

Notes de cours préparées par les enseignants (disponibles sur le site Moodle du cours).




Ouvrages de références

1.    Programmation sous Linux

  • GNU/Linux Application Programming, 2nd Edition by M. Tim Jones, 2008

2.    Déverminage

  • Linux Debugging and Performance Tuning: Tips and Techniques, by Steve Best, 2005 (suggérée)
  • Debugging With GDB: The Gnu Source-Level Debugger, by Richard M. Stallman, Roland H. Pesch, Stan Shebs, 2002 (complémentaire)

3.    Tests

  • Test Driven Development for Embedded C Paperback by James W. Grenning, 2011

4.    Contrôle de révisions

  • Version Control with Git: Powerful tools and techniques for collaborative software development by Jon Loeliger, Matthew McCullough, 2012

5.    Programmation multitâche

  • PThreads Programming: A POSIX Standard for Better Multiprocessing (A Nutshell Handbook) 1st Edition by Dick Buttlar, Jacqueline Farrell, Bradford Nichols, 1996 (suggérée)
  • PThreads Primer - A Guide to Multithreaded Programming, by Bil Lewis, Daniel J. Berg, 1996 (alternative)
  • The Art of Concurrency: A Thread Monkey's Guide to Writing Parallel Applications by Clay Breshears, 2009 (alternative)

6.    Patrons de conception

  • Patterns in C: Patterns, Idioms and Design Principles, Adam Tornhill, 2015 (suggérée)

7.    Programmation défensive

  • Secure Programming HOWTO by David A. Wheeler, 2015

8.    Profilage

  • Valgrind 3.3 - Advanced Debugging and Profiling for Gnu/Linux Applications, by J Seward, N Nethercote, J Weidendorfer, 2008 (suggérée)
  • Get Started with Intel® VTune™ Amplifier 2019, 2018 (complémentaire)



Adresse internet du site de cours et autres liens utiles

http://ena.etsmtl.ca/