Vous êtes sur la page 1sur 9

Faculté des sciences et de génie

Département de génie électrique et de génie informatique

PLAN DE COURS
GLO-1901 : Introduction à la programmation avec Python
NRC 91437 | Automne 2018

Mode d'enseignement : À distance


Temps consacré : 3-3-3 Crédit(s) : 3

Ce cours introduit les principaux paradigmes de programmation servant à la résolution de problèmes en informatique. Il
couvre notamment les programmations procédurale, fonctionnelle, orientée objet et événementielle. Pour illustrer ces
paradigmes, il utilise le langage Python.

Plage horaire
Sur Internet
- 00h00 à 00h00 Du 4 sept. 2018 au 14 déc. 2018

Il se peut que l'horaire du cours ait été modifié depuis la dernière synchronisation avec Capsule. Vérifier l'horaire dans Capsule

Site de cours
https://sitescours.monportail.ulaval.ca/ena/site/accueil?idSite=99128

Coordonnées et disponibilités
Marc Parizeau
Professeur
PLT-1138.B
marc.parizeau@gel.ulaval.ca
Tél. : 418-656-2131 poste 7912

© Université Laval Page 1 de 9


Soutien technique
Pour recevoir du soutien technique relatif à l'utilisation de monPortail, contactez :
Comptoir LiberT (FSG)
Pavillon Adrien-Pouliot, Local 3709
aide@fsg.ulaval.ca
418-656-2131 poste 4651

Session d'automne et hiver


Lundi 08h00 à 18h45
Mardi 08h00 à 18h45
Mercredi 08h00 à 18h45
Jeudi 08h00 à 18h45
Vendredi 08h00 à 16h45

Session d'été
Lundi 08h00 à 16h00
Mardi 08h00 à 16h00
Mercredi 08h00 à 16h00
Jeudi 08h00 à 16h00
Vendredi 08h00 à 16h45

© Université Laval Page 2 de 9


Sommaire
Description du cours ........................................................................................................... 4
Objectifs ................................................................................................................................................................................ 4
Contenu du cours ................................................................................................................................................................. 4
Déroulement du cours .......................................................................................................................................................... 4

Contenu et activités ............................................................................................................ 5

Évaluations et résultats ....................................................................................................... 5


Échelle des cotes .................................................................................................................................................................. 5
Modalités d'évaluation .......................................................................................................................................................... 5
Informations détaillées sur les évaluations sommatives ....................................................................................................... 5
Exercices hebdomadaires ............................................................................................................................................... 5
Examen partiel ................................................................................................................................................................ 6
Examen final ................................................................................................................................................................... 6
Travaux pratiques ........................................................................................................................................................... 6
Participation au forum de discussion .............................................................................................................................. 6
Détails sur les modalités d'évaluation ................................................................................................................................... 7
Consignes sur les travaux .................................................................................................................................................... 7
Politique sur l'utilisation d'appareils électroniques ................................................................................................................ 7
Politique sur le plagiat et la fraude académique ................................................................................................................... 7
Étudiants ayant un handicap, un trouble d’apprentissage ou un trouble mental .................................................................. 8

Matériel didactique .............................................................................................................. 8


Matériel obligatoire ............................................................................................................................................................... 8
Logiciels ................................................................................................................................................................................ 8

Médiagraphie et annexes ................................................................................................... 8


Bibliographie ......................................................................................................................................................................... 8
Logiciels ................................................................................................................................................................................ 9

© Université Laval Page 3 de 9


Description du cours

Objectifs
L'objectif principal de ce cours est de former l'étudiant aux notions de base de la programmation par objets avec comme
support le langage Python. À l'issue de ce cours, l'étudiant sera en mesure de:

1. résoudre des problèmes de programmation en maniant efficacement les éléments fondamentaux de procédure:
les blocs séquentiels,
conditionnels,
et répétitifs;
2. effectuer la décomposition fonctionnelle d'un problème;
3. intégrer les concepts orientés objets dans la résolution d'un problème:
notion de classe et d'objet,
d'encapsulation,
de méthode et passage de message,
d'héritage,
et de polymorphisme;
4. écrire des programmes Python pour entre autres réaliser:
des interfaces graphiques,
du calcul scientifique.

Contenu du cours
1. Types de données et opérations: nombres, chaînes de caractères, listes, dictionnaires, tuples et fichiers.
2. Énoncés et syntaxe de base: affectation, expressions, énoncés séquentiels, conditionnels et répétitifs, entrées/sorties,
documentation du code; notion de complexité algorithmique.
3. Fonctions: décomposition fonctionnelle, pré- et post conditions, arguments, itérateurs, fonction lambda, fonctions
génératrice; notion de récursion
4. Classes et objets: notions d'encapsulation, d'héritage, de composition, de surdéfinition d'opérateurs, d'espace de noms
et de polymorphisme; portée des identifieurs.
5. Modules: architecture d'un programme Python, création et usage d'un module, espaces de noms, importation de
modules; aperçu de la librairie standard: dates et heure, nombres aléatoires, encodage unicode, expressions
régulières, sérialisation, journalisation, itérateurs, etc.
6. Exceptions: mécanismes de traitement des erreurs et tests unitaires.
7. Interfaces graphiques: notion de programmation événementielle; introduction à «tkinter».
8. Programmation orientée objet: retour sur les classes et les hiérarchies de classes; notion de «design pattern»;
introduction à UML.
9. Programmation fonctionnelle: retour sur les «lambda», les fonctions génératrices et les «itertools».
10. Calcul scientifique: tableaux multidimensionnels, matrices et calcul matriciel; introduction à «numpy/matplotlib».
11. Python vs C/C++: processus de compilation et d'édition des liens; typage statique des données, expression, pointeur,
fonction et arguments; énoncés séquentiels, conditionnels et répétitifs; classes et objets.

Déroulement du cours
Chaque semaine, l'étudiant doit procéder de façon autonome à trois types d'activités:

1. Étudier des notes de cours thématiques qui lui permettent non seulement d'exécuter les exemples illustrant les
concepts théoriques, mais également de les modifier afin de pouvoir répondre lui-même à des questions de type « que
se passerait-il si je faisais ceci au lieu de cela? ».
2. Faire des exercices interactifs qui permettent d'assimiler les notions présentées dans les notes de cours. Ces exercices
s'effectuent via une interface web spécialement conçue à cette fin. L'étudiant résoud le problème posé en écrivant ses
énoncés Python dans l'interface web, puis il exécute son code dans cette interface afin de le tester. En pressant
simplement un bouton, il peut ensuite soumettre sa solution à un serveur qui la corrigera automatiquement en lui
fournissant, le cas échéant, des indications sur la nature de ses erreurs. L'étudiant peut alors modifier sa solution puis
la soumettre de nouveau jusqu'à la satisfaction des exigences de l'exercice.
3. Tester ses connaissances avec des épreuves chronométrées (quiz) qui simulent sur une durée plus courte le
© Université Laval Page 4 de 9
3. Tester ses connaissances avec des épreuves chronométrées (quiz) qui simulent sur une durée plus courte le
déroulement des examens en ligne.

En tout temps, les étudiants peuvent poser des questions via un forum de discussion. Les exercices et les quiz peuvent être
complétés à n'importe quelle heure du jour ou de la nuit.

Contenu et activités
Le tableau ci-dessous présente les semaines d'activités prévues dans le cadre du cours.

Titre Date
Contenu et activités du cours 
Tout le contenu du cours est accessible directement sur son site web spécialisé.

Note : Veuillez vous référer à la section Contenu et activités de votre site de cours pour de plus amples détails.

Évaluations et résultats

Échelle des cotes

Cote % minimum % maximum Cote % minimum % maximum


A+ 92 100 C+ 66 69,99
A 87 91,99 C 62 65,99
A- 82 86,99 C- 58 61,99
B+ 78 81,99 D+ 54 57,99
B 74 77,99 D 50 53,99
B- 70 73,99 E 0 49,99

Modalités d'évaluation

Sommatives
Mode de
Titre Date Pondération
travail
Exercices hebdomadaires À déterminer Individuel 20 %
Examen partiel Le 20 oct. 2018 de Individuel 25 %
13h30 à 16h30
Examen final Le 15 déc. 2018 de Individuel 35 %
13h30 à 16h30
Travaux pratiques À déterminer En équipe 15 %
Participation au forum de discussion Dû le 7 déc. 2018 à Individuel 5%
23h59

Informations détaillées sur les évaluations sommatives

© Université Laval Page 5 de 9


Exercices hebdomadaires
Date de remise : À déterminer

Les dates limites pour compléter les exercices sont spécifiées sur le site web du cours.
Mode de travail : Individuel
Pondération : 20 %
Remise de l'évaluation : https://python.gel.ulaval.ca
Directives de l'évaluation :
Toutes les directives pour la réalisation des exercices se trouvent sur le site web du cours.

Examen partiel
Date et lieu : Le 20 oct. 2018 de 13h30 à 16h30 , ---
Mode de travail : Individuel
Pondération : 25 %
Remise de l'évaluation : https://python.gel.ulaval.ca

L'examen se déroule en ligne sur le site web du cours.


Matériel autorisé : Ordinateur et accès au site web du cours.

Examen final
Date et lieu : Le 15 déc. 2018 de 13h30 à 16h30 , ---
Mode de travail : Individuel
Pondération : 35 %
Remise de l'évaluation : https://python.gel.ulaval.ca

L'examen se déroule en ligne sur le site web du cours.


Matériel autorisé : Ordinateur et accès au site web du cours.

Travaux pratiques
Date de remise : À déterminer

Les dates limites pour les travaux pratiques sont spécifiées sur le site du cours.
Mode de travail : En équipe
Pondération : 15 %
Remise de l'évaluation : https://python.gel.ulaval.ca
Directives de l'évaluation :
Toutes les directives pour la réalisation des travaux pratiques se trouvent sur le site web du
cours.

Participation au forum de discussion


Date de remise : 7 déc. 2018 à 23h59

La participation au forum doit être continue tout au long de la session.


Mode de travail : Individuel
Pondération : 5%

© Université Laval Page 6 de 9


Pondération : 5%
Remise de l'évaluation : https://python.gel.ulaval.ca
Directives de l'évaluation :
Les étudiants doivent fréquenter régulièrement le forum, idéalement tous les jours, y lire
tous les messages et, parfois, y faire des contributions originales (poser des questions ou
répondre à celles des autres). Le site web compile automatiquement différentes métriques
de participation. Le professeur utilisera ces métriques afin de quantifier la participation de
chaque étudiant.

Détails sur les modalités d'évaluation


Le cours comporte deux examens en ligne (partiel + final), effectués avec ordinateur dans un environnement contrôlé. Lors
de ces examens, l'étudiant pourra soit utiliser son ordinateur portatif personnel, soit un ordinateur fixe de l'université. Dans
les deux cas, l'ordinateur devra être démarré dans un environnement Linux contrôlé, à partir d'une clé USB spécialement
conçue à cette fin. Cette clé USB sera fournie à l'étudiant juste avant le début de l'examen.

Outre les examens, l'évaluation sommative du cours comporte des exercices interactifs, des travaux pratiques à faire en
individuellement ou en équipe, et une composante de participation au forum de discussion. Il est attendu que les étudiants
non seulement utilisent le forum pour poser des questions, mais également qu'ils répondent à certaines des questions de
leurs camarades.

Notez bien que la note de passage est fixée à 50 % et qu'elle s'applique autant à la note totale qu'à la moyenne des deux
examens.

Consignes sur les travaux


Le cours comporte une série d'exercices interactifs à faire en ligne (https://python.gel.ulaval.ca  ). Les étudiants sont
encouragés à travailler en équipe afin de s'entraider, mais chaque étudiant doit compléter lui-même chaque exercice. Le
cours inclut également une série de travaux pratiques à réaliser seul ou en équipe.

La réalisation de l'ensemble des travaux fait appel au langage Python 3. Ils peuvent être effectués à l'université ou à la
maison, avec un ordinateur au choix de l'étudiant. L'étudiant devra cependant tenir compte des consignes particulières
pouvant limiter le choix de l'environnement logiciel.

La présence à l'université n'est pas obligatoire ni pour réaliser, ni pour soumettre les travaux. Elle est cependant nécessaire
pour les examens.

Politique sur l'utilisation d'appareils électroniques


La politique sur l'utilisation d'appareils électroniques de la Faculté des sciences et de génie peut être consultée à l'adresse :
http://www.fsg.ulaval.ca/fileadmin/fsg/documents/PDF/Calculatrices-autorisees-FSG.pdf  .

Politique sur le plagiat et la fraude académique


Règles disciplinaires

Tout étudiant qui commet une infraction au Règlement disciplinaire à l'intention des étudiants de l'Université Laval dans le
cadre du présent cours, notamment en matière de plagiat, est passible des sanctions qui sont prévues dans ce règlement. Il
est très important pour tout étudiant de prendre connaissance des articles 23 à 46 du Règlement disciplinaire. Celui-ci peut
être consulté à l'adresse suivante:

http://ulaval.ca/reglement-disciplinaire

Plagiat

Tout étudiant est tenu de respecter les règles relatives au plagiat. Constitue notamment du plagiat le fait de:

i. copier textuellement un ou plusieurs passages provenant d'un ouvrage sous format papier ou électronique sans mettre
ces passages entre guillemets et sans en mentionner la source;

ii. résumer l'idée originale d'un auteur en l'exprimant dans ses propres mots (paraphraser) sans en mentionner la source;
© Université Laval Page 7 de 9
ii. résumer l'idée originale d'un auteur en l'exprimant dans ses propres mots (paraphraser) sans en mentionner la source;
iii. traduire partiellement ou totalement un texte sans en mentionner la provenance;
iv. remettre un travail copié d'un autre étudiant (avec ou sans l'accord de cet autre étudiant);
v. remettre un travail téléchargé d'un site d'achat ou d'échange de travaux scolaires.

L'Université Laval étant abonnée à un service de détection de plagiat, il est possible que l'enseignant soumette vos travaux
pour analyse.

Étudiants ayant un handicap, un trouble d’apprentissage ou un trouble mental


Les étudiants qui ont une lettre d'Attestation d'accommodations scolaires obtenue auprès d'un conseiller du secteur Accueil
et soutien aux étudiants en situation de handicap (ACSESH) doivent impérativement se conformer à la politique
d'Accommodations scolaires aux examens de la Faculté des sciences et de génie qui peut être consultée à l'adresse :
http://www.fsg.ulaval.ca/fileadmin/fsg/documents/PDF/Politique-Facultaire-Accommodements.pdf

Matériel didactique

Matériel obligatoire
Tout le matériel didactique nécessaire est disponible sur le site web du cours.
URL : Tout le matériel didactique nécessaire est disponible sur le site web du cours.
Aucun manuel n'est obligatoire pour ce cours, mais un livre de référence sur le langage Python serait néanmoins utile. De
nombreuses alternatives existent en librairie ou en-ligne sur Internet.

Logiciels
Tous les logiciels nécessaires pour compléter les travaux du cours sont libres et disponibles gratuitement sur Internet. Voir
le site web du cours pour de plus amples détails.

Médiagraphie et annexes

Bibliographie
De très nombreux ouvrages existent sur la programmation et le langage Python, dont certains sont disponibles gratuitement
sur Internet.

Les notes de cours thématiques et la documentation en ligne disponible sur le site web du cours  suffisent généralement
pour bien réussir ; aucun manuel n'est obligatoire pour ce cours.

Le site web suivant est la référence qui définit et documente le langage :

Langage Python, http://python.org

Par ailleurs, voici quelques références qui ont servi initialement à la préparation des notes de cours :

Gérard Swinnen, Apprendre à programmer avec Python 3, 2012.


Mark Pilgrim, Dive into Python 3.
Mark Lutz, Learning Python 3, 4th Edition, O'Reilly, 2009 (1200 pages).
David M. Beazley, Python - Essential reference, 4e édition, Addison Westley.
James Payne, Beginning Python, Wiley Publishing, 2010.
Kenneth A. Lambert, Fundamentals of Python - First Programs, Course Technology, 2012.

Voici finalement quelques pointeurs pour le calcul scientifique avec Python :

modules Numpy et Scipy, http://scipy.org


© Université Laval Page 8 de 9
modules Numpy et Scipy, http://scipy.org
module Matplotlib, http://matplotlib.org
module sympy, http://sympy.org

Logiciels
De nombreux outils logiciels sont disponibles pour programmer en Python. Voici la liste des outils recommandés pour le
cours:

Un éditeur de programme  multiplateforme (VS code)


Un environnement de développement  spécialisé pour le Python (pycharm)
Une distribution Python  pour le calcul scientifique (anaconda)
Un gestionnaire de versions  pour gérer le code source (mercurial)
Une interface graphique  pour utiliser mercurial ou git (SourceTree)

© Université Laval Page 9 de 9

Vous aimerez peut-être aussi