% INF1035 — Informatique pour les sciences : Programmation simulation et exploitation de données % UQAM — Département d'informatique % Plan de cours — Automne 2020 * Horaires, locaux et enseignants: * Site web du cours: Responsable(s) du cours ======================= Coordination ------------ Bouguessa, Mohamed PK-4915 Enseignement ------------- Lefebvre, Joël PK-4840 Groupes: 020 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. Un canal de discussion en ligne (Teams) est l'outil pour interagir avec le professeur, démonstrateurs et les autres étudiants. Pour les questions d'ordre général, utilisez cette équipe Teams, attendez quelques jours avant de relancer. Pour des questions plus spécifiques, personnelles ou pour relancer, contactez le professeur par courriel en ajoutant le libellé **\[INF1035-A2020\]** dans le sujet de votre courriel. Aucune remise de TP par courriel n'est acceptée. Le site web officiel du cours est sur Moodle, il contient le matériel du cours(diapositives, vidéos, etc.) et servira pour les évaluations en ligne (examens, quiz, remises de TP, etc.). 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 (**voir la note**). Ce cours ne requiert aucune connaissance en programmation, mais requiert toutefois des connaissances de base d'utilisation d'un ordinateur. **Note**: En raison de la COVID-19, les cours se dérouleront à distance. Les étudiant.e.s devront réaliser les exercices sur leur ordinateur personnel plutôt qu'au laboratoire de micro-informatique. 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 - Interface graphique - Analyse et exploitation de données avec Python Formule pédagogique =================== - Le cours sera donné entièrement en ligne pour la session d'automne 2020. - Le premier cours de la session sera en mode synchrone (avec Zoom ou Teams) - Les cours suivants seront en mode synchrone, mais en alternant le temps entre visionnements de capsules préenregistrées et des démonstrations et périodes de questions en direct. - Les cours synchrones seront enregistrés et partagés par la suite sur Moodle. - Le matériel pédagogique (présentations, capsules vidéos, énoncés de laboratoire, ...) sera partagé sur le site Moodle du cours. - **Les informations techniques concernant la première séance de cours et les modalités vidéos (lien Zoom ou Teams) seront partagées par courriel aux étudiant.e.s inscrit.e.s dans la semaine précédant le premier cours.** 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 Modalité d'examen ----------------- - Les examens se dérouleront en ligne sur Moodle. - Les examens seront accessibles à partir du début du cours (mardi à 18h) et le demeureront pour une durée de 24h (mercredi à 17h59). - À partir de l'ouverture du questionnaire par l'étudiant.e, l'examen devra être complété dans un délai de 3h30. - Une seule tentative d'examen sera permise. - **Aucune consultation entre étudiant.e.s n'est permise**. 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 ============================== En raison du COVID-19, les laboratoires s'effectueront à distance. Les étudiant.e.s devront donc disposer d'un ordinateur personnel sur lequel sera effectué les démonstrations, les TPs, et les autres tâches de programmation. Le langage de programmation Python sera utilisé pour ce cours. Une distribution Python fournie par Anaconda comprenant les modules et dépendances nécessaires au cours et un environnement de développement (Spyder) devront être installés sur l'ordinateur des étudiant.e.s. Ananconda est disponible pour les principaux systèmes d'exploitation (Windows, Mac, Linux). Le premier laboratoire aura pour objectif de démontrer le processus d'installation des outils informatiques nécessaires à la réalisation des travaux pour le reste du cours. Médiagraphie ============ Obligatoire ----------- - Notes de cours disponibles sur le site Moodle du cours - 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). Ressources complémentaires -------------------------- - 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))