INF7161 — Prog. d’outils d’int. d’aff. (UQAM)

INF7161 - Prog. d’outils d’int. d’aff.

Plan de cours Automne 2026

Horaires et enseignants
Version PDF du plan de cours

Responsable(s) du cours

Coordination

Beaudry, Eric
PK-4170
beaudry.eric@uqam.ca
http://ericbeaudry.uqam.ca/

Enseignement

Lavallée, Eric
lavallee.eric@uqam.ca
Groupes: 010

Description officielle

Objectifs

Ce cours initie les étudiants à la programmation de scripts et d’outils simples pour la collecte, la manipulation et d’analyse de données. Par le biais de bibliothèques existantes dans des langages de programmation de haut niveau, tel que Python et Javascript, l’étudiant sera en mesure d’extraire de l’information utile à partir de données.

Le cours propose également une introduction aux concepts de développement logiciel afin de fournir aux étudiants les bases nécessaires pour programmer des outils simples d’intelligence d’affaires.

À la fin du cours, l’étudiant sera en mesure de produire un tableau de bord (dashboard) mettant en lumière des informations utiles en lien avec les différentes sources de données ci-haut citées. Aussi, l’étudiant.e aura compris les éléments entourant la production d’un logiciel d’intelligence d’affaires.

Sommaire du contenu

Pour le développements d’outils d’affaires, les étudiants seront initiés aux concepts suivants :

Ce cours introduit aussi des bases nécessaires pour développer des outils d’intelligence d’affaires dont:

Le cours initie les étudiants à l’utilisation de bibliothèques logicielles pour la présentation et la visualisation de données.

Modalité d’enseignement

En plus des cours magistraux (3h), ce cours comporte des séances de laboratoire (2h). Certaines des séances de laboratoires peuvent être notées. Programmes associés à ce cours

Diplôme d’études supérieures spécialisées en marketing numérique et intelligence artificielle intégrée au marketing Microprogramme de deuxième cycle en intelligence artificielle intégrée au marketing Microprogramme de deuxième cycle en marketing numérique

Approche pédagogique

Le cours est divisé en deux sections, la première vous initie aux concepts de programmation de base, la deuxième vous invite à pousser vos nouvelles connaissances en créant des parties d’une application d’intelligence d’affaires.

À travers ce cours, qui se rapproche d’un cours-atelier, vous aurez des présentations sur des concepts théoriques et des démonstrations pratiques.

Chaque cours se déroule en deux parties, la première partie est théorique et la deuxième est hybride, avec les démonstrations et des mini-exercices qui soutiennent les concepts développés dans la première partie.

Présentiel diffusé (comodal)

Le cours est offert en comodal. Cependant, le cours est offert en présentiel, comme le veut la politique générale des cours du département d’informatique. Ce cours est très dynamique et favorise l’échange entre les étudiants et l’enseignant. Par conséquent, l’enseignant vous encourage fortement à venir en présentiel. Cependant, pour accommoder la clientèle de l’ESG visée par le cours, le cours est aussi diffusé.

zoom du cours

Équipement recommendé

Vous pouvez bien sûr suivre le cours et prendre des notes à l’ancienne avec papier et crayon. Cependant, pour tirer le maximum, nous vous recommendons d’avoir un portable avec Jupyter d’installé ou avec l’accès de la version web. Si vous avez une tablette, avec la version web, vous devriez être en mesure de suivre, cependant, l’enseignant vous recommande fortement d’avoir un clavier physique.

Plan général de la session

semaine Partie 1 Partie 2
1 Introduction Outils de développement
2 Structure d’un programme et composants Variable
3 Survol de la représentation binaire Fonctions et procédures
4 Introduction aux collections, concept d’algorithme Tableau et dictionnaires
5 Packages de bases (String, Math et Random) Utilisation concrète des packages présentés
6 Survol des concepts associés à l’Internet Exploration du code source d’une page web et des différents composants
7 Survol des concepts de gestion des projets informatique Retour sur la matière vue depuis
8 Examen intra —
9 Retour sur l’examen, concept de cadriciels Présentation de Flask, développement web en local, principe de base de Git.
10 Détails de l’interaction entre HTML et CSS Tours d’horizon des fonctionnalités de CSS5, présentation du dernier TP
11 Découpage de code, concepts de classes et d’objet Série d’exemples et constructions d’une classe avec le concept d’héritage
12 Modules Python, structure, documentation, style (PEP 8) Analyse du code source de module Python
13 Les classes, les objets et abstraction Suite de l’analyse et lien avec les concepts du cours
14 Le JavaScript, outils dynamiques Retour sur l’ensemble du cours, révision pour l’examen
15 Examen final

Plan détaillé

Séance 1

Introduction générale et premier contact. Présentation de l’outil principal.

Partie 1 Rencontre initiale, établissement du format, présentation des grandes lignes, discutent visant à établir le niveau du groupe, entente d’évaluation.

Partie 2 Présentation générale le l’interface de Jupyter. Concept d’environnement virtuel et utilité. Survol du concept des packages. Présentation de Gitlab et de git comme outils de visionnement et de transfert de fichiers.

Séance 2

Structure générale d’un programme et variables.

Partie 1 Présentation de la structure d’un programme, les langages de programmation, les langages compilés vs les langages interprétés, comment un programme est stocké en mémoire, tours d’horizon des différents composants d’un programme (variables, fonctions, opérateurs, collections, constantes, point d’entrée d’un programme, packages, affichage, lectures et écritures de fichiers, etc.)

Partie 2 Les variables, les types (int, float, string) et l’affichage simple.

Séance 3

Représentation générale d’un programme en mémoire. Fonctions et procédures.

Partie 1 Retour sur les variables, le stockage en mémoire sous forme binaire, les nombres entiers et les nombres réels, particularités de certaines problématiques de stockages (imprécisions et anomalies des nombres réels). Retour sur la structure d’un programme et introduction du concept de fonctions et des procédures.

Partie 2 Les fonctions, la signature d’une fonction, les paramètres et les valeurs de retour.

Séance 4

Définition du concept d’algorithme. Survol du module string et des collections.

Partie 1

Retour sur les fonctions et les variables. Introduction aux packages (string) Introductions aux collections. Les types de collections et leurs utilités. Survol du concept d’algorithmes, comparaisons des performances des algorithmes de mise en ordre pour comprendre que différentes solutions pour un même problème ne sont pas nécessairement égales. Concepts des boucles. Concept des branchements (if, switch).

Partie 2

Utilisation des collections, méthodes associés au collections, comment choisir la bonne collection pour la tâche. Utilisation de boucle pour naviguer dans les collections. Concepts des branchements.

Séance 5

Détails des modules strings, math et random.

Partie 1

Retour sur les collections et plongeons en détails dans les packages principaux (String, Math et Random) de python. Importation globale et sélective. Disponibilité du package, gestion des packages, module PIP. Concepts de base du pseudo-aléatoire associé aux ordinateurs. Exploration des différentes applications des fonctions et procédures de la classe string, math et random de Python.

Partie 2

Gestion de lecture et d’écriture de fichiers avec Python. Parsing versus sérialisation.

Séance 6

Introductions aux concepts web.

Partie 1

Survol de l’espace web, la structure et les termes, “backend”, “frontend”, ui, protocoles UDP et TCP, certificats, HTML, Json, XML, CSS.

Partie 2

Exploration du code source d’une page web via le navigateur. Composants essentiels d’une page web (head, body) et de leurs contenus. Concepts de gabarits, base de données, liens entre la base de données et le site web.

Séance 7

Semaine de lecture à l’ESG, cependant, le département d’informatique donne tout de même des cours.

Survol des concepts de gestion de projets informatiques.

Partie 1

Concepts généraux de productions logiciels, concepts waterfall et agile. Présentation des différents rôles d’une équipe de production logicielle.

Partie 3

Révision éclair en vue de l’examen, en fonction des besoins.

Séance 8

Examen Intra

Séance 9

Préparation à la production de l’application d’intelligence d’affaires.

Partie 1

Retour sur l’examen, concept de cadriciel, présentation en survol de différents cadriciels pour différents projets (Unity3d, Django, Flask). Cadriciel de tests.

Concepts de Tests automatisés. Différence entre les différents types de tests.

Partie 2

Flask, votre cadriciel. Comment l’installer et le gérer. Concepts associés IP, localhost, 127.0.0.1, 0.0.0.0, port et serveur local. Structure d’un site web en local pour le développement.

Introduction à git comme logiciel de visionnement et comment se procurer le squelette du travail pratique.

Séance 10

Couverture de la gestion du code source d’une page web et remise de l’énoncé du TP2.

Partie 1

Retour sur HTML (structure globale, balise, diviseurs, break, etc.) et CSS (concepts de classes, id, propriétés, etc.). Présentation en détails du concept de fichier de type template dans un cadriciel web afin de créer des pages dynamiques.

Partie 2

Exploration des options de CSS et particularités. Présentation du TP2.

Séance 11

Survol des concepts de découpage et des structures de code.

Partie 1

Concept de classe et d’objet, survol de différents paradigmes de programmation (orienté objet, procédural, logique). Utilité des classes, encapsulation, abstraction. Survol du concept d’héritage.

Partie 2

Séries d’exemples de classe. Construction d’une classe et héritage.

Séance 12

Modules et réutilisation de code.

Partie 1

Création de modules en python. Structure d’un module. Utilité. Commentaires versus documentation de code.

Partie 2

Analyse de certains modules python et de leurs documentations. Comment bien consulter la documentation informatique. Comment bien documenter son code.

Séance 13

Détails sur les classes, les objets et le concept d’abstraction.

Partie 1

Retour sur les classes. Analyse de modules et de classe de python.

Partie 2

Suite de l’analyse et association des concepts précédemment présentés en classe.

Partie 3

Retour sur le travail pratique et discussion ouverte sur les difficultés.

Séance 14

Le secret d’une page web dynamique : JavaScript

Partie 1

Présentation de JavaScript (langage de programmation pour les navigateurs) et comparaison avec python. Utilisation de JavaScript dans une page web. Modification du contenu dynamique de la page web.

Partie 2

Retour global sur l’ensemble du cours. Couverture éclair des concepts présentés. Discussion, question, revisions et conclusion.

Séance 15

Examen final

Évaluations

Description Semaine Pourcentage
TP1 7 - 28 oct. 25%
Examen mi-session 8 - 4 nov. 25%
TP2 15 - 23 déc 25%
Examen fin de session 15 - 20 déc 25%

Travaux pratiques

L’énoncé du premier travail pratique sera remis à la semaine 3. Vous aurez donc quatre semaines pour le compléter.

Les travaux pourront être effectués en équipe de deux ou seuls, à votre choix.

Cependant, dans le cas d’un travail en duo, les deux étudiant.e.s doivent couvrir l’ensemble des parties du code à être complété. En d’autres mots, séparément, chacun.e doit pouvoir expliquer l’ensemble du code.

Utilisation de l’IA

Il sera facile pour vous d’utiliser l’intelligence artificielle pour faire vos travaux. Cependant, les travaux sont là pour renforcir les concepts appris en classe et lors des examens, si vous utilisez l’IA, vous aurez de sérieux problèmes, comme l’examen est en classe.

Notes littérales et barème de passage

note moyenne
A+ >= 95%
A >= 90%
A- >= 85%
B+ >= 80%
B >= 75%
B- >= 70%
C+ >= 65%
C >= 60%
C- >= 55%
D+ >= 53%
D >= 50%
E < 50%

Pour passer le cours, vous devez avoir une moyenne de 50% dans vos travaux ET une moyenne de 50% dans vos examens. c.-à-d. si vous avez 80% dans vos travaux et 45% dans vos examens, même si la moyenne globale est de 62.5%, la mention E apparaîtra à votre dossier.

Laboratoires

Les laboratoires sont une occasion pour vous d’effectuer des exercices supervisés. Les mardis, de 19h à 21h, un moniteur est à votre disposition pour répondre à vos questions sur les laboratoires fournis les dimanches soir que vous pouvez compléter à votre guise ou les faire lors du laboratoire.

Nous vous recommandons fortement de faire vos laboratoires. Ils vous aideront pour les examens et les travaux.

zoom du laboratoire Les mardis de 19h à 21h

Sites web utiles

Jupyter en ligne

Python.org

Consultation des encarts

Ci-joint des encarts importants sur les politiques de l’UQAM et du département. Toutes ces politiques s’appliquent à ce cours.

Information sur les Services à la vie étudiante

Services

Les services à la vie étudiante accompagnent les étudiantes et les étudiants dans la réussite de leur parcours universitaire.

Ensemble des services offerts

Gagner du temps et réaliser de meilleurs travaux

Politiques associées à votre réussites

Bureau

Bureau des services-conseils (soutien psychologique, bien-être aux études, information scolaire et insertion professionnelle, orientation, emploi): pour prendre rendez-vous, communiquez au 514 987-3185 ou par courriel à services-conseil@uqam.ca

Aide financière

Bureau de l’aide financière: pour prendre rendez-vous, écrivez à aidefinanciere@uqam.ca

Bourses d’études

Concernant les bourses, pensez à consulter Le Répertoire institutionnel des bourses d’études (RIBÉ) et écrivez à bourse@uqam.ca pour toute question.

Informations générales

Consultez les informations et l’ensemble des coordonnées et services offerts par les Services à la vie étudiante à l’adresse suivante: vie-etudiante@uqam.ca.

Politique d’absence aux examens

Reprise d’examen

L’autorisation de reprendre un examen en cas d’absence est de caractère exceptionnel. Pour obtenir un tel privilège, l’étudiant-e doit avoir des motifs sérieux et bien justifiés.

Conflits d’horaire

Il est de la responsabilité de l’étudiant.e de ne pas s’inscrire à des cours qui sont en conflit d’horaire, tant en ce qui concerne les séances de cours ou d’exercices que les examens. De tels conflits d’horaire ne constituent pas un motif justifiant une demande d’examen de reprise.

Procédure

L’étudiant.e absent.e lors d’un examen doit, dans les cinq (5) jours ouvrables suivant la date de l’examen, présenter une demande de reprise en utilisant le formulaire prévu, disponible sur https://info.uqam.ca/repriseexamen/.

Pièces justificatives

Dans le cas d’une absence de moins de cinq (5) jours pour raison médicale, l’étudiant.e doit joindre une déclaration sur l’honneur. Lors d’une absence de cinq (5) jours et plus, un billet médical est exigé. Les dates d’invalidité doivent être clairement indiquées sur le billet original. L’authenticité du billet pourrait être vérifiée.

Dans le cas d’une absence pour une raison non médicale, l’étudiant.e doit fournir les documents originaux expliquant et justifiant l’absence à l’examen ; par exemple, lettre de la Cour en cas de participation à un jury, copie du certificat de décès en cas de décès d’un proche, etc. Toute demande incomplète sera refusée. Si la direction du programme d’études de l’étudiant.e constate qu’un.e étudiant.e a un comportement récurrent d’absence aux examens, l’étudiant.e peut se voir refuser une reprise d’examen.

Pour plus d’informations

Consulter la page https://info.uqam.ca/repriseexamen/.

Règlement no 18 sur les infractions de nature académique. (extraits)

Lien vers la page originale de ce contenu

Tout acte de plagiat, fraude, copiage, tricherie ou falsification de document commis par une étudiante, un étudiant, de même que toute participation à ces actes ou tentative de les commettre, à l’occasion d’un examen ou d’un travail faisant l’objet d’une évaluation ou dans toute autre circonstance, constituent une infraction au sens de ce règlement. (R18, art. 2.1, définition d’une infraction)

Liste non limitative des infractions mentionnées dans le R18 :

Les sanctions reliées à ces infractions sont précisées aux articles 3 et 5 du Règlement no 18 sur les infractions de nature académique.

Pour éviter de vous exposer à des sanctions :

  1. Consultez le site r18.uqam.ca pour plus d’information sur l’intégrité académique et le R18;
  2. Développez les bonnes pratiques en matière de recherche documentaire et de rédaction des travaux via l’outil Infosphère et les formations offertes par le Service des bibliothèques

Politique no 2

Le droit à la liberté académique universitaire est le droit de toute personne d’exercer librement et sans contrainte doctrinale, idéologique ou morale, telle la censure institutionnelle, une activité par laquelle elle contribue à l’accomplissement de la mission de l’Université.

Ce droit comprend la liberté :

  1. d’enseignement et de discussion;
  2. de recherche, de création et de publication;
  3. d’exprimer son opinion sur la société et sur une institution, y compris l’établissement duquel la personne relève, ainsi que sur toute doctrine, tout dogme ou toute opinion;
  4. de participer librement aux activités d’organisations professionnelles ou d’organisations académiques.

Il doit s’exercer en conformité avec les normes d’éthique et de rigueur scientifique généralement reconnues par le milieu universitaire et en tenant compte des droits des autres membres de la communauté universitaire.

En reconnaissant, en promouvant et en protégeant la liberté académique universitaire, cette politique soutient la mission de l’Université, laquelle comprend la production et la transmission de connaissances par des activités de recherche, de création et d’enseignement et par des services à la collectivité.

Pour plus d’information, vous pouvez consulter la section Liberté académique universitaire.

Politique no 16 visant à prévenir et combattre le sexisme et les violences à caractère sexuel

Les violences à caractère sexuel se définissent comme étant des comportements, propos et attitudes à caractère sexuel non consentis ou non désirés, avec ou sans contact physique, incluant ceux exercés ou exprimés par un moyen technologique, tels les médias sociaux ou autres médias numériques. Les violences à caractère sexuel peuvent se manifester par un geste unique ou s’inscrire dans un continuum de manifestations et peuvent comprendre la manipulation, l’intimidation, le chantage, la menace implicite ou explicite, la contrainte ou l’usage de force.

Les violences à caractère sexuel incluent, notamment :

Pour consulter la politique no 16

https://instances.uqam.ca/wp-content/uploads/sites/47/2019/04/Politique_no_16_2.pdf

Pour obtenir de l’aide, faire une divulgation ou une plainte

Bureau d’intervention et de prévention en matière de harcèlement
514-987-3000, poste 0886

Pour obtenir la liste des services offerts à l’UQAM et à l’extérieur de l’UQAM

https://harcelement.uqam.ca

Soutien psychologique (Services à la vie étudiante)

514-987-3185
Local DS-2110

CALACS Trêve pour Elles – point de services UQAM

514 987-0348
calacs@uqam.ca
https://trevepourelles.org

Service de la prévention et de la sécurité

514-987-3131

Politique no 44 d’accueil et de soutien des étudiant.e.s en situation de handicap 

Politique

Par sa politique, l’Université reconnait, en toute égalité des chances, sans discrimination ni privilège, aux étudiant.e.s en situation de handicap, le droit de bénéficier de l’ensemble des ressources du campus et de la communauté universitaire, afin d’assurer la réussite de leurs projets d’études, et ce, dans les meilleures conditions possibles. L’exercice de ce droit est, par ailleurs, tributaire du cadre réglementaire régissant l’ensemble des activités de l’Université.

Responsabilité de l’étudiant.e

Il incombe aux étudiant.e.s en situation de handicap de rencontrer les intervenant.e.s (conseiller.ère.s à l’accueil et à l’intégration du Service d’accueil et de soutien des étudiant.e.s en situation de handicap, professeur.e.s, chargé.e.s de cours, direction de programmes, associations étudiantes concernées, etc.) qui pourront faciliter leur intégration à la communauté universitaire ou les assister et les soutenir dans la résolution de problèmes particuliers en lien avec les limitations entraînées par leur déficience.

Service d’accueil et de soutien aux étudiant.e.s en situation de handicap

Le Service d’accueil et de soutien aux étudiant.e.s en situation de handicap (SASESH) offre des mesures d’aménagement dont peuvent bénéficier certains étudiant.e.s. Il est fortement recommandé aux de se prévaloir de ces services afin de réussir ses études, sans discrimination. Pour plus d’information, visiter le site de ce service : https://services.uqam.ca/services-offerts/soutien-aux-etudiants-en-de-situation-handicap/ et celui de la politique institutionnelle d’accueil et de soutien aux étudiant.e.s en situation de handicap : https://instances.uqam.ca/wp-content/uploads/sites/47/2018/05/Politique_no_44.pdf

Il est important d’informer le SASESH de votre situation le plus tôt possible :

Politique no 42 sur le harcelement

L’Université du Québec à Montréal (ci-après, l’« Université ») reconnaît à toutes les personnes membres de la communauté universitaire le droit d’être traitées avec dignité, équité et respect mutuel.

Toutes, tous sont susceptibles de subir du harcèlement. L’Université reconnaît que le harcèlement est majoritairement dirigé à l’endroit de certains groupes. Il s’agit notamment des femmes, plus particulièrement lorsque leur vécu se situe à l’entrecroisement de plusieurs formes de discrimination, des personnes issues des minorités sexuelles ou de genre, des communautés racisées ou ethnicisées, des communautés autochtones, des étudiantes, étudiants internationaux, ainsi que des personnes en situation de handicap. L’Université s’engage donc à tenir compte de leurs besoins spécifiques.

L’Université considère le respect mutuel, l’égalité, l’écoute et l’entraide comme des valeurs importantes qui favorisent l’épanouissement personnel ainsi que l’établissement de rapports harmonieux entre les personnes et entre les groupes, et qui permettent la mise en place d’un milieu sain et propice à la réalisation individuelle ou collective de sa mission universitaire.

L’Université croit que la collaboration de chaque personne et de chaque groupe de la communauté universitaire est essentielle pour favoriser la création d’un tel milieu et, en ce sens, elle compte sur la contribution de chaque personne.

L’Université juge que toute forme de harcèlement porte atteinte à la dignité et à l’intégrité physique ou psychologique d’une personne.

L’Université reconnaît sa responsabilité d’assurer un milieu de travail et d’études exempt de toute forme de harcèlement et veille à ce qu’aucune forme de harcèlement ne soit tolérée, quelle qu’en soit la source.

Pour plus de détails, consultez la politique complète : https://instances.uqam.ca/wp-content/uploads/sites/47/2018/05/Politique_no_42.pdf