Logo ÉTS
Session
Cours
Responsable(s) François Morency

Se connecter
 

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

Responsable(s) de cours : François Morency


PLAN DE COURS

Hiver 2025
MGA802 : Sujets spéciaux I en aéronautique (3 crédits)
Programmation Python pour les projets et stage aux cycles supérieurs





Préalables
Aucun préalable requis




Descriptif du cours
Sujets d’intérêt majeur et à la fine pointe de la technologie. Deux sujets sont offerts en alternance (un par année).




Objectifs du cours

Le cours d'introduction à Python pour les étudiants de génie aéronautique a pour but de fournir une base solide dans la programmation en Python aux étudiants de maîtrise qui n'ont pas étudié Python auparavant. Ce cours vise à aider les étudiants à acquérir des compétences en programmation qui seront utiles pour leur future carrière dans le domaine de l'aéronautique ou pour leur projet de recherche universitaire. 

À la fin de cours, l'étudiant aura acquis des connaissances sur:

  • Les bases de la syntaxe et du fonctionnement du language de programmation python
  • Les bases de la programmation procédurale en python
  • Les bases de la programmation orientée en python
  • Les principaux outils scientifiques disponibles à l'aide du language python
  • Une panoplie d'outils connexes (git, documentation du code, ...) utile pour l'écriture d'applications scientifiques à l'aide de python
  • Apprentissage par projets à travers la session
  • Introduction à la programmation avec des "LLM" (grand modèle linguistique) et leur intégration dans un programme python
  • Développement d'interface web basiques pour supporter des applications python



Stratégies pédagogiques

Le cours se donne sous une forme intensive 1 à 2 demi-journées par semaine (voir calendrier exact en fonction des semaines). L’enseignement se veut interactif, ainsi les périodes magistrales de présentation de notions seront régulièrement entrecoupées de périodes permettant la mise en application des concepts. De plus, plusieurs séances seront entièrement dédiées à la résolution de problèmes du domaine du génie aérospatial pour mettre en oeuvre les notions vues dans les périodes de cours. La réalisation de solutions numériques d’envergure s’appuie sur le travail collaboratif. Ainsi un projet de session devra être réalisé par équipe de 3 à 4 étudiants. Les groupes devront développer leur solution, la valider, la documenter puis la présenter au terme de la session.

  • 8 séances d'enseignement en classe (24h)
  • 5 séances de travaux sur des projets d'applications
    • Possibilité de choisir par vous même un projet lié à un sujet scientifique



Utilisation d’appareils électroniques

Les ordinateurs portables sont autorisés et nécessaires pour ce cours, toutefois, leur utilisation pour un usage qui n'est pas lié au cours est interdite en classe. Chaque étudiante ou étudiant doit disposer d'un ordinateur portable permettant d'exécuter l'environnement de développement du cours.




Horaire
Groupe Jour Heure Activité
01 Jeudi 13:30 - 17:00 Activité de cours



Coordonnées du personnel enseignant le cours
Groupe Nom Activité Courriel Local Disponibilité
01 Ilyass Tabiai Activité de cours Ilyass.Tabiai@etsmtl.ca A-2114



Cours
Sem Cours Contenu Exercices

1

Introduction

1 - Qu'est-ce que Python ?

Usage de Python sur des serveurs en ligne

2 - Pourquoi Python ?
3 - Python en ligne

Notions de base
Spécificités de Python

1 - Syntaxe de base

Exercices d’application directe sur des serveurs

2 - Opérateurs
3 - Types de base
4 - Listes et tuple
5 - Manipulation de listes
6 – Dictionnaires
7 - Modes de transmission

2

Scriptage

1 – Définition d’un script Python et sa structure

Exercices de tests et recherche

2 – Conditions et boucles
3 – Utilisation de liste avancées

Environnement de travail pour Python

1 – Librairies python, installation et environnement de développement

Installation de python sur les ordinateurs des étudiants.

2 - Personalisation de l’environnement dans PyCharms
3 – La console Python, iPython et Jupyter Notebook
4 - Chaînes de caractères (substring, replace, find)

3

Utilisation de Git
Pour la gestion des sources

1 - Notions de base : copie local, dépôt

Exercices interactif en groupe sur des dépôts individuels et communs

2 – Organisation des branches et dépôt en ligne : fork, clone, branch, github
3 – Mise à jour : commit, pull, push
4 – Synchronisation : branch, pull request, merge, conflict

Programmation procédurale

1 - Fonctions

Exercices de base
Améliorer un script grace à des fonctions
Utilisation du debboguer dans PyCharm

2 – Structurer le code en fonctions
3 - Passage de paramètres, arguments optionnels
4 – Debugging: pdb dans PyCharms

4

Mini Projet A

1 – Présentation du mini-projet (intégration des LLMs et interfaces)

Période de disponibilité pour le mini-projet A

2 – Présentation des requis (fonction) du programme et du rendu avec Git avec un README
3 - Présentation des outils nécessaires (read/write, find, replace)

5

Programmation scientifique

1 – Notions de performance

Exercices d’utilisation de numpy, vectorisation de code
Notions d'introduction (tracé de courbe) avec matplotlib

2 – Introduction à Numpy : création de tableaux, indexation
3 - Introduction à Matplotlib pour le tracé de courbes
4 – Numpy : calculs mathématiques
5 – Numpy : recherche, filtrage, sélection de données

6

Analyses de données

1 - Introduction à Matplotlib

Exercices de tracé de courbes, chargement de données, statistiques et fouille dans les fichiers

2 - Traitement de fichiers
3 - Introduction à Pandas
4 - RegEx

7

Analyses de données

1 – Introduction à Scipy

Résolution de problèmes non-linéaires, représentations de solutions

2 - Résolution d'équations
3 - Optimisation
4 - Interpolation
5 - Intégration

8

Mini Projet B

1 – Présentation du mini-projet et des données

Période de disponibilité pour le mini-projet B

2 – Présentation des requis (fonctions+classes) du programme et du rendu avec Git avec un README
3- Période dédiée à l'avancement du projet

9

Projet de session Présentation des projets, requis, rapports … Création des équipes et brainstorming

Programmation orientée object

1 - Introduction à la programmation objet : concept et intérêt

Exercice d’application directe pour transformer un script en classe

2 – Classes et Objects
3 – Interfaces
4 – IO d’instance avec Pickle

10

Documentation de code

1 – Recommendations pour commentaires

Documentation du mini-projet B, convertir son projet B en module et mise en ligne (partage)

2 – Sphinx, Doxygen

Modules

1 – Qu’est qu’un module
2 – Comment créer un module et diffuser son module
3 – Utilisation de pypi and pip
4 – Environnements virtuels
Projet de session Suivi projets Vérification de l'avancement des équipes
11 Projet de session

Période dédiée à l'avancement du projet

Introduction à l'utilisation des LLMs

Période de disponibilité pour les projets spéciaux
12 Projet de session

Période dédiée à l'avancement du projet

Introduction au développement d'interfaces webs basiques pour supporter votre application

Période de disponibilité pour les projets spéciaux
13 Projet de session Présentations finales Remise des rapports



Laboratoires et travaux pratiques

Les séances de laboratoires (mini-projets et projet de session) ont lieu pendant la période régulière du cours.




Évaluation
Quiz 10%
Mini projet A 20%
Mini projet B 20%
Projet final 50%

 




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.



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

Notes de cours disponibles sur Moodle (fichiers de présentation en classe)




Ouvrages de références

Plusieurs ouvrages, site web, seront fournis comme référence additionnelle pour compléter le support des cours.




Adresse internet du site de cours et autres liens utiles

ENA