% INF1035 — Informatique pour les sciences : Programmation simulation et exploitation de données % UQAM — Département d'informatique % Plan de cours — Hiver 2023 * Horaires, locaux et enseignants: * Site web du cours: Enseignement ============ Taoufiki, Manal Groupes: 010 Les étudiant.e.s doivent consulter régulièrement le site Moodle du cours, moyen de communication du professeur avec le groupe-cours. Les annonces officielles seront publiées sur le forum de nouvelles du site Moodle. Description du cours ==================== Ce cours vise à familiariser les étudiants à l'utilisation de langages de programmation pour effectuer des analyses de données scientifiques. Il s'adresse aux étudiants qui n'ont aucune expérience en programmation. Il permettra aux étudiants de comprendre le rôle de la programmation dans la résolution de problèmes en sciences, et ce, en utilisant des logiciels libres. Introduction à la programmation avec un langage de script évolué (ex. Python) : représentation des données et principales structures de contrôle, algorithmes, méthodologie de programmation, utilisation de bibliothèques. Développement de simulation. Gestion des données à l'aide d'une base de données légère (ex. : SQLite) :création de tables et requêtes simples. Exploitation statistique de données à l'aide d'un langage d'analyse, interface de présentation de résultats. Modalités d'enseignement ------------------------ Les travaux pratiques (séance hebdomadaire de deux heures) ainsi qu'une partie des cours magistraux ont lieu au laboratoire de micro-informatique. Ce cours ne requiert aucune connaissance en programmation, mais requiert toutefois des connaissances de base d'utilisation d'un ordinateur. Objectifs du cours ================== - Apprendre à utiliser un langage de haut niveau pour exécuter des modélisations et simulations afin de répondre à des questions scientifiques. - Acquérir les notions de programmation pour développer des applications de bases à caractère scientifique. Le langage utilisé dans ce cours est Python. Contenu du cours ================ - Concepts de base : ordinateurs, systèmes d'exploitation, langages de programmation - Introduction aux algorithmes : analyse et conception - Variables, opérateurs et expressions de base, Entrées et sorties - Structures de contrôle - Structures itératives - Modularisation du code : fonctions, utilisation des bibliothèques - Structures de données de base : les listes - Manipulation de fichiers et de chaînes de caractères - Les dictionnaires Python - Bibliothèques Numpy et Pandas - Analyse et exploitation de données avec Python - Visualisation de données Formule pédagogique =================== Les exposés magistraux (3h) et les séances de laboratoires (2h) se dérouleront en mode présentiel suivant les directives de l'UQAM pour cet automne. Il est possible qu'il y'ait changement vers le mode virtuel et synchrone avec le logiciel Zoom, dépendemment de la situation sanitaire et des directives de l'UQAM. Modalités d'évaluation ====================== Outil d'évaluation Pondération Échéance -------------------- ------------- ----------------- Travail pratique 1 10% Semaine 3 à 6 Examen (Intra) 35% Semaine 7 Travail pratique 2 10% Semaine 7 à 10 Travail pratique 3 10% Semaine 10 à 13 Examen (Final) 35% Semaine 15 La note finale (en lettre, A+, A, etc.) pour le trimestre sera attribuée en fonction de l'atteinte des objectifs spécifiques à travers les évaluations. La distribution des résultats dans le groupe pourrait aussi être utilisée. Aucune autre opportunité (travail supplémentaire, etc.) d'augmenter le nombre de points ne sera accordée. Modalité d'examen ----------------- - Les examens se dérouleront en classe. Modalité de travaux pratiques ----------------------------- - Les remises des TP se font électroniquement sur Moodle (les détails techniques seront donnés en classe). - Plusieurs remises peuvent être faites, seule la plus récente sera considérée. - Aucun retard ne sera accepté pour les TP. Règles concernant le seuil de passage ------------------------------------- L'étudiant.e doit obtenir - Une moyenne cumulée et pondérée aux examens supérieure ou égale à 50% - **et** une moyenne générale pondérée (TP et examens) supérieure ou égale à 50% Si ces seuils ne sont pas atteints, la mention échec sera automatiquement attribuée au cours. Matériel et logiciels utilisés ============================== Des environnements de dévelopement de Python Notebooks en ligne seront fournis en début de session. Des procédures pour faires des installations locales seront données durant la session. Médiagraphie ============ Obligatoire ----------- - Notes de cours disponibles sur le site Moodle du cours Ressources complémentaires -------------------------- - Swinnen, Gérard (2012). *Apprendre à programmer avec Python 3*. 3e édition, Eyrolles. ([Biblio](https://uqam-bib.on.worldcat.org/oclc/795445252), [Coop](https://www.coopuqam.com/267659-Livres--produit.html)) - **Note**: Un version numérique de ce livre est aussi disponible sur le site web de l'auteur : [URL](https://inforef.be/swi/python.htm). - Tony Gaddis (2018). "Starting out with Python". 4th edition. Pearson. ([Biblio](https://uqam-bib.on.worldcat.org/oclc/1031409787)) - Guttag, John V. (2016). *Introduction to Computation and Programming Using Python*. 2e édition, MIT Press. ([Biblio](https://uqam-bib.on.worldcat.org/oclc/863139608)) - Lutz, Mark (2013). *Learning Python*. 5e édition, O'Reilly Media. ([Biblio](https://uqam-bib.on.worldcat.org/oclc/861767143))