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 94785 | Automne 2016 Mode d'enseignement : À distance Temps consacré : 3-33 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 6 sept. 2016 au 16 déc. 2016 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=73492 Coordonnées et disponibilités Marc Parizeau Professeur PLT-1138.B [email protected] Tél. : 418-656-2131 poste 7912 © Université Laval Page 1 de 8 Soutien technique Pour recevoir du soutien technique relatif à l'utilisation de monPortail, contactez : Comptoir LiberT (FSG) Pavillon Adrien-Pouliot, Local 3709 [email protected] 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 8 Sommaire Description du cours .......................................................................................................................... 4 Objectifs ................................................................................................................................................................................................................................. 4 Contenu du cours ................................................................................................................................................................................................................ 4 Déroulement du cours ........................................................................................................................................................................................................ 4 É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 ............................................................................................................................................................................................................... 5 Examen final ................................................................................................................................................................................................................... 6 Projet de fin de session ................................................................................................................................................................................................ 6 Participation au forum de discussion ....................................................................................................................................................................... 6 Détails sur les modalités d'évaluation ............................................................................................................................................................................. 6 Consignes sur les travaux ................................................................................................................................................................................................... 6 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 ................................................................................................ 7 Matériel didactique ............................................................................................................................ 7 Matériel obligatoire ............................................................................................................................................................................................................. 7 Logiciels ................................................................................................................................................................................................................................. 8 Médiagraphie et annexes ................................................................................................................... 8 © Université Laval Page 3 de 8 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 déroulement des © Université Laval Page 4 de 8 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. É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 Titre Date Mode de travail Pondération Exercices hebdomadaires À déterminer Individuel 20 % Examen partiel Le 22 oct. 2016 de 09h30 à 16h30 Individuel 25 % Examen final Le 17 déc. 2016 de 09h30 à 16h30 Individuel 40 % Projet de fin de session Dû le 19 déc. 2016 à 23h59 En équipe 10 % Participation au forum de discussion Dû le 16 déc. 2016 à 23h59 Individuel 5% Informations détaillées sur les évaluations sommatives Exercices hebdomadaires Date de remise : À déterminer Des exercices sont associés à la plupart des semaines. En général, ils doivent être complétés au plus tard deux semaines après l'introduction de la matière correspondante. Mode de travail : Individuel Pondération : 20 % Remise de l'évaluation : https://python.gel.ulaval.ca Examen partiel Date et lieu : © Université Laval Le 22 oct. 2016 de 09h30 à 16h30 , PLT-2370,PLT-3920,PLT-3928,PLT-3966 Page 5 de 8 Date et lieu : Le 22 oct. 2016 de 09h30 à 16h30 , PLT-2370,PLT-3920,PLT-3928,PLT-3966 Il y aura deux périodes d'examen le samedi 22 octobre 2016. Une première section de 9:30 à 12:30 et une deuxième section de 13:30 à 16:30. Mode de travail : Individuel Pondération : 25 % Remise de l'évaluation : https://python.gel.ulaval.ca Matériel autorisé : Ordinateur et accès au site web du cours. Examen final Date et lieu : Le 17 déc. 2016 de 09h30 à 16h30 , PLT-3928,PLT-3966,PLT-2370,PLT-3920 Il y aura deux périodes d'examen le samedi 17 décembre 2016. Une première section de 9:30 à 12:30 et une deuxième section de 13:30 à 16:30. Mode de travail : Individuel Pondération : 40 % 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. Projet de fin de session Date de remise : 19 déc. 2016 à 23h59 Mode de travail : En équipe Pondération : 10 % Remise de l'évaluation : https://python.gel.ulaval.ca Participation au forum de discussion Date de remise : 16 déc. 2016 à 23h59 Le forum de discussion est accessible via le site web de cours (pas celui de l'ENA). Mode de travail : Individuel Pondération : 5% Remise de l'évaluation : piazza.com/ulaval.ca/fall2016/glo1901 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, un projet à faire 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. © Université Laval Page 6 de 8 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 un projet de fin de session à réaliser en équipe de 2 ou 3. La réalisation 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 28 à 32 du Règlement disciplinaire. Celui-ci peut être consulté à l'adresse suivante: http://www2.ulaval.ca/fileadmin/Secretaire_general/Reglements/Reglement_disciplinaire.pdf 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; 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. © Université Laval Page 7 de 8 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 Cette section ne contient aucune information. © Université Laval Page 8 de 8