Logo ÉTS
Session
Cours
Responsable(s) Iannick Gagnon

Se connecter
 

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

Responsable(s) de cours : Iannick Gagnon


PLAN DE COURS

Hiver 2024
INF136 : Introduction à la programmation en Python (4 crédits)





Préalables
Aucun préalable requis
Unités d'agrément
Total d'unités d'agrément : 64,8 100,0 %




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

Au terme de ce cours, l’étudiant ou l'étudiante sera en mesure :

  • d'expliquer le fonctionnement d’un programme informatique et décrire l’architecture de base d’un micro-ordinateur;
  • de résoudre des problèmes de nature scientifique et liés au génie en décomposant le problème en sous-problèmes et en proposant des algorithmes de résolution;
  • d'implémenter des opérations matricielles et vectorielles;
  • développer et implémenter des algorithmes simples.

Structure d’un programme, types de base, variables et constantes, entrées/sorties, expressions et opérateurs, contrôle du flux d’exécution d’un programme, sous-programmes, passage de paramètres, structures de données de bases du langage, encapsulation, modules de représentation graphique des données et manipulation de fichiers.

Séances de laboratoire axées sur l’application des notions de programmation.




Objectifs du cours

Le cours a pour objectif d'initier l'étudiante ou l'étudiant à la programmation et à l'algorithmique pour résoudre des problèmes généraux liés à leur discipline. Plus généralement, le cours permet à l'étudiante ou l'étudiant de s'initier aux techniques de résolution de problèmes scientifiques à l'aide d'un micro-ordinateur. Le langage de programmation utilisé est le Python.




Stratégies pédagogiques

3 heures de cours magistral par semaine
3 heures de laboratoire par semaine
 

Le matériel (c.-à-d. notes de cours, carnets, etc.) sont disponibles sur la page Moodle du cours à l'adresse : https://ena.etsmtl.ca. Du matériel pédagogique supplémentaire pourrait vous être fourni par l'enseignante ou l'enseignant.
 

Les objectifs principaux des laboratoires sont :

  • l’assimilation par l’expérience des notions vues en cours, à travers des exercices proposés par l'enseignante ou l'enseignant;
  • le développement de programmes donnés en travaux pratiques.



Utilisation d’appareils électroniques

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 Mercredi 09:00 - 12:30 Activité de cours
Vendredi 09:00 - 12:00 Laboratoire
02 Mardi 18:00 - 21:30 Activité de cours
Jeudi 18:00 - 21:00 Laboratoire
03 Mercredi 09:00 - 12:00 Laboratoire
Vendredi 09:00 - 12:30 Activité de cours



Coordonnées de l’enseignant
Groupe Nom Activité Courriel Local Disponibilité
01 Lazhar Khelifi Activité de cours lazhar.khelifi@etsmtl.ca
01 Nessrine Hammami Laboratoire nessrine.hammami.1@ens.etsmtl.ca
02 Lazhar Khelifi Activité de cours lazhar.khelifi@etsmtl.ca
02 Nessrine Hammami Laboratoire nessrine.hammami.1@ens.etsmtl.ca
03 Lazhar Khelifi Activité de cours lazhar.khelifi@etsmtl.ca
03 Nessrine Hammami Laboratoire nessrine.hammami.1@ens.etsmtl.ca



Cours
BLOCS MATIÈRE

 

 

 

 

 

 

 

 

 

 

 

1


NORMES DE PROGRAMMATION

Choix et syntaxe des identificateurs de variables et de constantes, indentation, commentaires et en-têtes de sous-programmes, annotations de types.
 

NOTIONS DE BASE

Notions générales reliées à la programmation, notion d'algorithme, pseudo-code, architecture du micro-ordinateur, notion de variable et de type, types primitifs du langage Python, conversions de types, notions d'opérateurs et d'expressions, opérateurs mathématiques, relationnels et logiques, règles de priorité des opérateurs, entrées et sorties de base.

CONTRÔLE DU FLUX D'EXÉCUTION

Notion d'expression booléenne, instructions de choix, instructions de répétition et imbrication.
 

SOUS-PROGRAMMES

Découpage en sous-programmes accessibles par des interfaces de modules, notions de fonctions et de procédures, paramètres formels et effectifs, paramètres optionnels, portée des variables et des sous-programmes, modes de passage.
 

COLLECTIONS

Utilisation des collections natives, introduction aux listes, aux tuples et aux dictionnaires, opérations courantes (accès, découpage, mutation, suppression et parcours), tests d'appartenance, tests d'identité, introduction aux notions d'objets et de méthodes.
 

 

 

 

 

 


2


DÉBOGAGE ET TESTS

Introduction aux techniques de base en débogage, analyse statique et dynamique, points d'arrêt, traçage d'algorithmes, tests unitaires.
 

TABLEAUX

Notion de tableau informatique, tableaux à une et deux dimensions, opérations courantes (accès, découpage et mutation), parcours, librairie NumPy. 
 

APPLICATIONS

Mise en oeuvre des tableaux par l'application : polynômes, vecteurs et matrices. Notions d'algorithmique : tris (bulle, sélection, insertion) et fouilles (séquentielle, dichotomique).
 

 

 

 

 



3


CHAÎNES DE CARACTÈRES

Notions d'encodage et de décodage (ASCII), opérations courantes (accès, découpage, parcours), formatage et méthodes spécifiques aux chaînes de caractères. Introduction aux expressions régulières.
 

LECTURE ET ÉCRITURE DE FICHIERS

Ouverture, lecture-écriture et fermeture de fichiers textes, modes d'ouverture et gestionnaires de contexte,  chemins relatifs et absolus.
 

GRAPHIQUES

Introduction à l'interface Pyplot de la librairie Matplotlib, graphiques (x,y), nuages de points, histogrammes, superpositions de graphes, manipulations courantes (axes, titre, grille, légende, etc.).
 

 




Laboratoires et travaux pratiques

Trois heures de laboratoire par semaine (total de 36 heures).




Utilisation d'outils d'ingénierie

S.O.




Évaluation

Ce tableau est donné à titre indicatif. En cours de session, votre enseignante ou votre enseignant vous fera part à l’avance de tout changement à l’horaire d’évaluation.
 

Évaluation Pondération Groupe 1 Groupe 2 Groupe 3
Intra 1 20 % 7 février 6 février 2 février
Intra 2 20 % 13 mars 12 mars 15 mars
Projet 30 % 12 avril 12 avril 12 avril

Final

30 %

Semaine d'examens finaux


Le projet de session vise à mettre en application, dans le cadre d'un problème réaliste, les concepts et les méthodes de programmation enseignés pendant les cours théoriques. Il est attendu des étudiantes et étudiants qu'ils produisent un travail permettant de résoudre le problème de l'énoncé, MAIS SURTOUT de le réaliser selon les standards de qualité et les bonnes pratiques enseignés (respect des normes, décomposition en sous-programme/modules, etc.). La cohérence et l'optimalité des algorithmes implémentés constituent également des critères importants qui seront considérés. En tout état de cause, la note attribuée à l'exécution correcte du programme ne pourra excéder 40% de la note globale d'un travail pratique.

À propos du projet de session :

  • Se fait en équipe de deux dans la mesure du possible. Une équipe ne doit remettre qu’un seul rapport.
  • L'enseignante ou l'enseignant peut diviser la pondération en étapes avec des remises partielles. Cette information vous sera communiquée lors de la présentation du projet.
  • Chaque membre recevra une note inférieure ou égale à la note obtenue par l'équipe. Cette note individuelle est directement proportionnelle à l'implication de l'individu. La méthode d’évaluation de vos coéquipiers est laissée à la discrétion de l’enseignante ou de l'enseignant.
  • Le code et les commentaires de code doivent être principalement en français et d'une qualité de français acceptable, tel que c'est le cas pour tous les exemples qui seront fournis aux étudiantes et étudiants.

À propos des examens intra-trimestriels :

  • Leurs durées sont de 2 heures.
  • Ils se font sur papier.
  • Aucune documentation n'est permise sauf l'aide-mémoire qui est fourni en annexe.
  • Ils se tiennent durant une séance de cours ou de laboratoire.
  • S'il y a des dispositions supplémentaires, l'enseignante ou l'enseignant vous en informera.

À propos de l'examen final :

  • L'examen final est d'une durée de 3 heures.
  • L'examen final se fait sur papier.
  • Il se tient durant la période des examens finaux.
  • Aucune documentation n'est permise sauf l'aide-mémoire qui est fourni en annexe.

Double seuil :

  • Une note moyenne pondérée de 50% est exigée pour l’ensemble des évaluations à caractère individuel. Ce seuil est une condition nécessaire à la réussite du cours, mais ne la garantit pas.



Double seuil
Note minimale : 50



Dates des examens intra
# Intra Groupe(s) Date
1 1 7 février 2024
1 2 6 février 2024
1 3 2 février 2024
2 1 13 mars 2024
2 2 12 mars 2024
2 3 15 mars 2024



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.



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).



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.



Documentation obligatoire

Aucune.




Ouvrages de références

RÉFÉRENCE OPTIONNELLE

  • Langtangen, Hans Petter, and Hans Petter Langtangen. A primer on scientific programming with Python. 5th ed., Berlin/Heidelberg: Springer, 2016.
     

RÉFÉRENCES UTILES

  • Guttag, John V. Introduction to Computation and Programming Using Python: With Application to Computational Modeling and Understanding Data. MIT Press, 2021.
  • Lutz, Mark. Learning python: Powerful object-oriented programming. O'Reilly Media, Inc., 2013.
  • Lutz, Mark. Python Pocket Reference: Python In Your Pocket. O'Reilly Media, Inc., 2014.



Adresse internet du site de cours et autres liens utiles

LIENS INTERNET
 

Les liens proposés ci-dessous sont des versions web de deux références qui, en plus d'être excellentes, sont gratuites :

  • Livre web sur les bases de la programmation en Python intitulé Foundations of Python Programming : cliquez ici
  • Livre web plus avancé qui met l'emphase sur la résolution de problèmes concrets intitulé Problem Solving with Algorithms and Data Structures using Python : cliquez ici



Autres informations

Les séances de cours et de travaux pratiques des cours-groupes dont le mode d'enseignement est hybride sont offertes entièrement à distance. L'étudiante ou l'étudiant inscrit à un tel cours-groupe n'a donc pas besoin de se déplacer à l'école durant la session, sauf lors des évaluations en présence identifiées à la section "Évaluation".