Logo ÉTS
Session
Cours
Responsable(s)

Se connecter
 

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

Responsable(s) de cours :


PLAN DE COURS

Hiver 2024
MGA802 : Sujets spéciaux I en aéronautique (3 crédits)
Programmation Python pour les projets et stages 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.

Cours offert à la session d’automne 2024, hiver 2025 :

Cours offert à la session d'hiver 2024 et d’été 2024 :

Cours offert à la session d'automne 2023 :




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



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 Mardi 13:30 - 17:00 Activité de cours
Mercredi 13:30 - 17:00 Deuxième activité de cours



Coordonnées de l’enseignant
Groupe Nom Activité Courriel Local Disponibilité
01 Ilyass Tabiai Activité de cours Ilyass.Tabiai@etsmtl.ca A-2114
01 Ilyass Tabiai Deuxième 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
4 - Notions de performance

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 - Chaînes de caractères
6 - Ensembles
7 – Dictionnaires
8 - 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

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
5 – Historique et gestion : stash, rebase, reset, revert

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

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

2 – Présentation des requis (fonction) du programme et du rendu avec Git

5

Programmation scientifique

1 – Notions de performance

Exercices d’utilisation de numpy, vectorisation de code

2 – Introduction à Numpy : création de tableaux, indexation
3 – Numpy : calculs mathématiques
4 – Numpy : recherche, filtrage, sélection de données

6

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
3- Période dédiée à l'avancement du projet

7

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

8

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

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 – Manipulation avancées de données statistiques
5 - RegEx

9

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
Projet de session Suivi projets Vérification de l'avancement des équipes

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 Période de disponibilité pour les projets spéciaux
12 Projet de session Période dédiée à l'avancement du projet 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.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 suivant 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 de département. Pour un examen final, l’étudiant devra justifier son absence auprès du Bureau du registraire. 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 ou autre) à un examen entraînera l’attribution de la note (0).



Infractions de nature académique
À 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/Etudes/citer-pas-plagier). Les clauses du règlement sur les infractions de nature académique de l’ÉTS (« Règlement ») 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 qui constituent des infractions de nature académique au sens du Règlement ainsi que prendre connaissance des sanctions prévues à cet effet.

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’enseignant(e) du cours.

Dispositions additionnelles

Les outils de Systèmes d'Intelligence Artificielle Générative (SIAG) sont des outils utiles pour l'apprentissage d'un langage de programmation, toutefois il est important de noter que ces outils demandent un certain niveau de compréhension des concepts et du langage impliqué de la part de l'utilisateur pour une utilisation pertinente et un regard critique sur les réponses fournies qui peuvent souvent être erronées.

Dans ce but, aucun outil de SIAG (chatGPT, Copilot et autre) ne doit être utilisé pour les remises de Quiz et Exercices notés. Leur utilisation sera toléré pour les mini-projet et projet final à condition de fournir en annexe des projets les requêtes et réponses échangées avec l'outil de SIAG utilisées par l'étudiant pour permettre une meilleure évaluation du travail de l'étudiant.




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