% INF5111 — Notions de base pour l'utilisation des plateformes de la science des données d'affaires % UQAM — Département d'informatique % Plan de cours — Été 2023 * Horaires, locaux et enseignants: Responsable(s) du cours ======================= Coordination ------------ Laforest, Louise PK-4725 Enseignement ------------- Leblanc, Hugo Groupes: 020 Description officielle ====================== Objectifs --------- Ce cours vise à familiariser les étudiants avec les outils et méthodes leur permettant de développer et présenter des projets en sciences des données destinés à résoudre des problèmes en gestion. Au terme du cours, l'étudiant sera en mesure de : - Reconnaître les enjeux relatifs à l'utilisation des outils et méthodes liés à la science de données par les gestionnaires à des fins de résolution de problème et de prise de décision; - Comprendre les différentes étapes de développement et de conception d'un projet en sciences des données; - Communiquer et collaborer avec des équipes de développeurs sur des projets en sciences des données; - Être familiarisé avec les notions de base pour l'utilisation des plateformes de la science des données, telles que celles permettant de; - Concevoir et exploiter une base de données - Comprendre les différences entre les bases de données SQL et NoSQL; - Développer, à l'aide d'un langage orienté-objet (ex. Python), des applications de gestion (ex. : tableau de bord de gestion, commerce électronique, workflow, etc.). Sommaire du contenu ------------------- Ce cours aborde les principales connaissances et compétences liées à la science des données et aux plateformes qui s'y rattachent. Les aspects suivants sont expliqués et mis en pratique dans des cas d'application en gestion: 1. Les étapes de conception et de développement d'un projet en sciences des données, le rôle des gestionnaires; 2. Une introduction au langage Python pour la gestion des données d'affaires. 3. Le diagramme de classe du Langage de Modélisation Unifié (UML) ainsi que le Modèle relationnel de données; 4. Le langage SQL; 5. Les bases de données non-relationnelles (NoSQL). Modalité d'enseignement ----------------------- Approches pédagogiques : Exposés magistraux, séances de laboratoire, exercices pratiques. Méthodes d'évaluation : Projet de session (analyse, modélisation, structure, développement d'une application de gestion), examen, exposé oral. Préalables académiques ---------------------- - AOT5100 - Introduction aux technologies d'affaires Calendrier détaillé =================== Le calendrier est donné à titre indicatif seulement. Cours 1 - Intro et présentation du cours ---------------------------------------- - Introduction à la science des données - Rôle de concepteur, développeur, DBA - Utilisation des bases de données - Famille des bases de données (SQL/NoSQL) - Présentation des objectifs du cours - Visualisation, Dashboard, décisions à partir de données - Présentation des données et leurs types Cours 2 - Fondements de la programmation scientifique ----------------------------------------------------- - Fondement de programmation - Instructions - Notebook/Script et leurs exécutions - Variables - Utilisation de fonctions en programmations - Paramètres - Appels imbriqués - Appel de méthodes - Structure de données des sciences de la donnée - Listes Cours 3 - Base de données relationnelle --------------------------------------- - Introduction aux Bases de données (BD) relationnelles SQL - Tables et leurs formes - Intérogation de données d'une BD SQL - SELECT - DISTINCT - ORDER BY - WHERE - GROUP BY - Fonctions d'agrégations Cours 4 - Relations entre les données ------------------------------------- - Relations entre les tables de BD relationnelles - Jointure de tables - INNER JOIN et autres - L'utilisation de librairies d'analyse de données (NumPy & Pandas) - Représentation scientifique avec NumPy - Series - Dataframe Cours 5 - Exploitations de sources de données --------------------------------------------- - Principe ETL en science des données - Lecture/Écriture de fichiers externes (avec pandas) - CSV - JSON - SQLite - Excel - Présentation des principes des SGBD - Présentation du TP1 Cours 6 ------- - Révision pour l'examen Intra Cours 7 ------- - Examen Intra / Remise TP1 Cours 8 - Structure de contrôles -------------------------------- - Structure de contrôle conditionnel en programmation - If - Structure de contrôle itérative - While - For - Ajout des données dans les DataFrame de Pandas Cours 9 - Diagrammes de base de données --------------------------------------- - Diagramme de classe UML - Diagramme relationnel pour une BD - Traduction à partir d'un diagramme de classe UML Cours 10 - Fonctions et conceptions ----------------------------------- - Conception de fonctions en programmation - Conception de la fonction - Choix de paramètres et de retour - Conception de DB SQL avec les diagrammes de classes et diagrammes relationnels Cours 11 - Visualisation de données et tableau de bord ------------------------------------------------------ - Visualisation de données - matplotlib (avec pandas) - Création de tableaux de bord de gestion (ex: pyWidgets, Python Dash) Cours 12 - Base de données NoSQL -------------------------------- - Bases de données NoSQL sur des documents - MongoDB - Bases de données Clé-valeur - redis - Présentation du TP2 Cours 13 - Base de données NoSQL (2) ------------------------------------ - Bases de données sur les graphes - Neo4J - Bases de données sur colonne-famille - Cassandra - Tour d'horizon sur les domaines informatiques - Machine Learning/AI - Statistiques - Programmation orientée objet Cours 14 -------- - Révision pour l'examen final Cours 15 -------- - Examen final Formule pédagogique =================== - Ce cours comporte une séance obligatoire de laboratoire (2 heures par séance de 3 heures de cours). Modalités d'évaluation ====================== Description sommaire Date Pondération ---------------------- ------------- ------------- Travail pratique 1 8e semaine 15% Travail pratique 2 15e semaine 15% Examen intra 8e semaine 35% Examen final 15e semaine 35% L'étudiant doit obtenir une moyenne cumulée de 50% aux examens et une moyenne cumulée de 50% aux travaux pratiques; dans le cas contraire, il se verra attribuer un échec. L'étudiant ne remettant aucun des travaux se verra attribuer un échec pour le cours. En cas de retard dans la remise des travaux, une pénalité de 10 points sur 100 par journée entamée sera appliquée. Après 5 jours de retard, le travail sera considéré comme non remis, entraînant la note 0 pour ce travail. La qualité du français est un critère d'évaluation des travaux. Les règlements concernant le plagiat seront strictement appliqués. Pour plus de renseignements, consultez le site suivant : Détails sur les travaux pratiques --------------------------------- - Le TP1 portera sur l'exploitation d'une base de données SQL avec un programme en Python - Le TP2 consistera à l'exploitation d'un tableau de bord utilisant comme source une base de données NoSQL Médiagraphie ============ VanderPlas, J. (2016), Python data science handbook : essential tools for working with data , O'Reilly Media, Inc , Sebastopol, CA . Dabbas, E. (2021), Interactive Dashboards and Data Apps with Plotly and Dash, Packt Publishing, Birmingham, Mumbai . Sadalage, P. J. & Fowler, M. (2013), NoSQL distilled: a brief guide to the emerging world of polyglot persistence , Addison-Wesley , Upper Saddle River, NJ . Silberschatz, A.; Korth, H. F. & Sudarshan, S. (2019), Database system concepts , 7th Edition, McGraw-Hill , New York .