7833

Baccalauréat en informatique

Responsable : Bruno Bouchard
Regroupement de programmes : Module d'informatique et de mathématique
Secrétariat : (418) 545-5011, poste 5273
sm_informatique-mathematique@uqac.ca
Coordonnatrice : Justine Lévesque
Coordonnatrice : Stéphanie Girard
Grade : Bachelier ès sciences appliquées

Présentation du programme

L'informatique est une vaste discipline en constante évolution qui a une influence considérable sur pratiquement tous les secteurs de l'activité humaine. Le Baccalauréat en informatique vise à former des informaticiens ayant une base solide de l'ensemble des notions propres à la discipline et qui détiennent une spécialisation dans l'un des cinq domaines clés que sont : la cybersécurité défensive, le développement et qualité des logiciels, la programmation Web, mobile et en nuage, l'intelligence artificielle, ainsi que la réalité virtuelle et les environnements immersifs. Ce programme unique s'appuie sur les standards internationaux reconnus de l'ACM et l'IEEE tout en intégrant des cours novateurs dans les cinq domaines d'avenir.

L'excellence des étudiants est encouragée par des bourses ainsi que par la présence d'un profil Honor permettant aux étudiants les plus doués de participer aux activités de recherches des professeurs et de choisir deux cours de la maîtrise en informatique.

Objectifs

L'objectif du programme est de former des spécialistes de l'informatique capable de contribuer au développement de leur discipline. L'atteinte des objectifs pédagogiques permettra d'appliquer des méthodes rigoureuses afin d'analyser des problèmes de natures diverses, de concevoir des solutions efficaces et de les mettre en œuvre sur différents supports technologiques.

Au terme de sa formation, l'étudiant sera en mesure d'intégrer le marché du travail ou de poursuivre des études supérieures en informatique.

Plus spécifiquement, le programme vise à :

Clientèle visée

Ce programme s'adresse aux titulaires d'un DEC préuniversitaire en Sciences informatiques et mathématiques ou tout autre DEC . Les personnes ayant une expérience pertinente en informatique et qui souhaitent effectuer une réorientation de carrière.

Conditions d'admission

Base Études collégiales (DEC)

Être titulaire d'un diplôme d'études collégiales (DEC) ou l'équivalent, avoir obtenu une cote R d'au moins 23 et satisfaire les exigences en mathématique (1). Les personnes candidates dont la cote R est inférieure à 23 sont invitées à faire une demande d'admission au Certificat en informatique (4202). Ces personnes candidates pourront par la suite acheminer une demande d'admission au baccalauréat sur la base Études universitaires.

ÉQUIVALENCE DU DEC : Pour les personnes candidates ayant fait leurs études hors Québec, l'équivalence de la base d'études collégiales est établie à la suite de l'examen du dossier d'admission (1) en tenant compte des résultats académiques, notamment aux exigences mathématique (2). Le diplôme d'études collégiales québécois comprend 13 années de scolarité. Les candidats détenant un diplôme obtenu après seulement 12 ans de scolarité (ou ne détenant pas l'équivalent de la treizième (13e) année de scolarité au Québec) pourront être admises, conditionnellement à la réussite de l'Année préparatoire en mathématique et informatique (5719).

Base Études universitaires

Avoir réussi quinze (15) crédits de niveau universitaire, avoir obtenu une moyenne cumulative d'au moins 2,5/4,3 et satisfaire les exigences en mathématique (1).

Base Préparation suffisante

Posséder une expérience jugée pertinente et significative dans un domaine connexe (3) et posséder les exigences de base en mathématique (1). La personne candidate qui demande une admission sur cette base doit fournir un curriculum vitæ à jour. Lorsque requis, une entrevue pourra être demandée pour évaluer ses connaissances. À la suite de l'évaluation, un ou des cours d'appoint pourront être imposés;

ou

Être titulaire d'un AEC dans un domaine de l'informatique et posséder une expérience jugée pertinente (4) et posséder les exigences en mathématique (1). La personne candidate qui demande une admission sur cette base doit fournir un curriculum vitæ à jour. Lorsque requis, une entrevue pourra être demandée pour évaluer ses connaissances. À la suite de l'évaluation, un ou des cours d'appoint pourront être imposés.

(1)Exigences en mathématique:

Toute personne candidate devra avoir réussi, avant l'entrée dans le programme, les cours de mathématique collégiaux suivants:

Note :

Une étudiante ou un étudiant qui ne satisfait pas les exigences en mathématiques peut être admis au programme conditionnellement à la réussite des cours de la structure d'accueil avec une moyenne cumulative d'au moins 2,5/4,3:

Structure d'accueil

(2) Le dossier d'admission comprend :

(3) Expérience pertinente et significative : expérience dans un domaine connexe. Cette expérience doit être d'une durée minimale de trois (3) ans à temps complet et attestée par l'employeur ou la personne responsable de l'organisme par écrit.

(4) Expérience pertinente: expérience dans un domaine connexe. Cette expérience doit être d'une durée minimale de deux (2) ans à temps complet et attestée par l'employeur ou la personne responsable de l'organisme par écrit.

Un tableau des objectifs et standards collégiaux démontrant la correspondance entre les anciens codes de compétences/cours et les codes actuels est disponible en sélectionnant ce lien.

Contingentement

Ce programme n'est pas contingenté.

Règles relatives au français

Les modalités et les règles qui régissent l'attestation de la maîtrise du français telles que résumées ci-dessous, sont définies dans la Politique et la Procédure relative à la valorisation du français.

Règlement relatif aux exigences liées à l'admission pour les candidats dont la langue maternelle n'est pas le français

Toute candidate ou tout candidat a un programme identifié, dont la langue maternelle n'est pas le français, est tenu de se soumettre au Test de français international (TFI) avant le début de son parcours universitaire à l'UQAC. Il est à noter que les candidates et les candidats en protocole d'échange provenant d'une université partenaire et dont la langue d'enseignement est le français, de même que les candidates et les candidats des Premières Nations sont exemptés de cette obligation.

Également, certaines candidates et certains candidats dont la langue maternelle n'est pas le français peuvent être exemptés de cette obligation lorsqu'ils répondent à l'une ou l'autre des exemptions prévues à la procédure ci-haut.

Règlement relatif aux exigences des compétences linguistiques de base liées à ladmission pour tous les candidats

Toute personne soumettant une demande d'admission à un baccalauréat, à un programme de certificat ou de cycles supérieurs identifiés, ou sollicitant un grade de bachelier par cumul de certificats ou de mineures, doit faire la preuve qu'elle possède les compétences linguistiques de base.

Les personnes qui se retrouvent dans les situations d'exemptions définies dans la Procédure relative à la valorisation du français sont réputées avoir fait la preuve qu'elles possèdent les compétences linguistiques de base.

Selon son dossier d'admission, le candidat ou la candidate qui n'a pas cette preuve aura à suivre le cours de français identifié par l'UQAC ou encore sera soumis à la passation du test de français institutionnel, et ce, sous réserve des modalités convenues à la procédure mentionnée ci-haut.

Les candidats internationaux réguliers seront inscrits automatiquement au cours de français identifié par l'UQAC à leur premier trimestre d'inscription. Ils auront l'obligation de réussir le cours pour faire la preuve qu'ils possèdent les compétences linguistiques de base. Seuls les candidats internationaux réguliers provenant d'un lycée français seront soumis au test de français identifié par l'UQAC.

Règles administratives

L'admission au programme se fait aux trimestres d'automne et d'hiver.

Le programme d'études est offert à temps complet et à temps partiel.

Règlement pédagogique particulier

L'inscription aux cours 8INF206 Projet et 8INF700 Sujet spécial nécessite l'accord de la direction de programme et les cours préalables dépendent du sujet choisi par l'étudiant ainsi que de la recommandation de l'enseignant en charge.

Pour s'inscrire aux cours Stage-Projet I, II, III ou IV, l'étudiant devra avoir réussi au moins trente (30) crédits de son programme.

Pour cheminer dans le profil Honor et s'inscrire aux cours Activités de recherche en informatique I et II (Honors Thesis) l'étudiant doit satisfaire aux trois exigences suivantes:

Reconnaissance des acquis

En vertu de l'article 86 du Règlement des études de premier cycle de l'UQ, les études collégiales techniques peuvent conduire à des reconnaissances d'acquis pour certains cours. Pour en savoir plus.

Le candidat qui désire obtenir une reconnaissance de ses acquis sur la base de sa formation antérieure ou de son expérience professionnelle doit faire une demande au Bureau du registraire à la suite de la confirmation de son admission (Formulaire) en conformité avec la Procédure relative à la reconnaissance des acquis et des compétences.

PARTICULARITÉS POUR LE PROGRAMME:

Cheminement DEC-BAC

Des ententes DEC-BAC sont en vigueur pour ce programme et sont applicables aux personnes détentrices de certains DEC techniques. Les cégeps ainsi que les DEC techniques concernés par ces ententes sont les suivants:

Perspectives professionnelles

Les perspectives d'emplois en informatique sont excellentes. Le secteur de l'informatique est en pleine croissance partout dans le monde et le Québec y occupe actuellement une place de choix. Le dernier rapport de TechnoCompétences (comité sectoriel d'Emploi Québec) mentionne que la pénurie de main-d'œuvre dans ce secteur se poursuivra durant un grand nombre d'années. Le diplômé pourra orienter sa carrière selon un éventail étendu de possibilités : programmeur, développeur web ou mobile, expert en bases de données, spécialiste en cybersécurité, spécialiste en intelligence artificielle, administrateur de système (Cloud), concepteur d'environnements virtuels et immersifs, directeur technique, gestionnaire de projets, chef de production ou encore responsable du contrôle de qualité, etc.

Perspectives d'études de cycles supérieurs

Les bacheliers en informatique ont normalement accès à des études de maîtrise et de doctorat dans toutes les universités et, plus particulièrement, à la Maîtrise en informatique de l'Université du Québec à Chicoutimi. Cette dernière offre un profil recherche et professionnel ainsi que trois concentrations: Jeux vidéo, Cybersécurité et Intelligence artificielle.

Environnement pédagogique

Les étudiants au Baccalauréat en informatique bénéficient de matériel et ont accès à plusieurs laboratoires les permettant de réaliser leurs projets. La concentration « Réalité virtuelle et environnements immersifs » dispose d'un laboratoire en réalité virtuelle à la fine pointe de la technologie. La concentration en intelligence artificielle appliquée dispose de l'« Espace innovation en science des données et en intelligence d'affaires Co-operators ».

Les concentrations en « Développement et qualité des logiciels » et en « Programmation Web, mobile et en nuage » sont supportées par des laboratoires informatiques, par des équipements (tablettes, capteurs mobiles, etc.) ainsi que par l'expertise d'une chaire de recherche du Canada. Enfin, la concentration en Cybersécurité défensive est appuyée par des partenariats industriels dans le secteur.

Structure du programme

Ce programme comprend quatre-vingt-dix (90) crédits répartis comme suit:

Profil régulier

Profil Honor

Plan de formation

Tronc commun

Les seize cours obligatoires suivants (quarante-huit crédits)

4ETH236Éthique et informatique
6GEI186Architecture des ordinateurs
6GEN723Réseaux d'ordinateurs (6GIN101 et 8INF259)
8CLD201Environnement de déploiement des applications (8WEB101)
8CLD202Infonuagique (8CLD201)
8INF138Sécurité des réseaux et du Web
8INF257Informatique mobile (8PRO128)
8INF259Structures de données (8PRO107)
8INF342Systèmes d'exploitation (8INF259)
8INF349Technologies Web avancées (8PRO128 et 8WEB101)
8INF435Algorithmique (8INF259 et 8MAT122)
8MAT122Structures discrètes
8PRO107Éléments de programmation
8PRO128Programmation orientée objet (8PRO107)
8TRD151Introduction aux bases de données
8WEB101Conception et programmation de sites Web

CONCENTRATION - Cybersécurité défensive (quinze crédits)

8INF309Stage-projet I
8INF319Stage-projet II
8INF333Sécurité des applications (8INF259)
8SEC201Cybersécurité défensive : vulnérabilités et incidents (8WEB101)
8SEC202Enquêtes numériques et cyber-intelligence (8WEB101)

CONCENTRATION - Programmation Web, mobile et en nuage (quinze crédits)

2MAR210Marketing numérique et réseaux sociaux
7INF517Traitement automatique des langues
8INF242Interface (UI) et Expérience (UX) utilisateur
8INF309Stage-projet I
8INF319Stage-projet II

CONCENTRATION - Développement et qualité des logiciels (quinze crédits)

8INF228Adaptation et qualité des applications (8PRO128)
8INF309Stage-projet I
8INF319Stage-projet II
8INF333Sécurité des applications (8INF259)
8INF334Modélisation et développement objet (8PRO128)

CONCENTRATION - Intelligence artificielle appliquée (quinze crédits)

8IAR403Apprentissage machine pour la science des données (8PRO408)
8INF309Stage-projet I
8INF319Stage-projet II
8INF436Forage de données (8IAR403)
8PRO408Outils de programmation pour la science des données

CONCENTRATION - Réalité virtuelle et environnements immersifs (quinze crédits)

7ARN210Installation, interactivité et vidéo
8INF242Interface (UI) et Expérience (UX) utilisateur
8INF309Stage-projet I
8INF319Stage-projet II
8RVL201Réalité virtuelle et environnements immersifs (8PRO128)

Profil Honor

8INF308Activité de recherche en informatique I (Honours Thesis)
8INF318Activité de recherche en informatique II (Honours Thesis)

Cours optionnels

Six à huit cours parmi les suivants (dix-huit à vingt-quatre crédits)

6GEI264Vérification et validation des logiciels (8PRO128)
6GEI311Architecture des logiciels (8INF334)
6GEI466Applications réseaux et sécurité informatique (6GEN723)
6GEN719Infographie (8INF259)
7ARN360Installations hybrides
7INF517Traitement automatique des langues
8ALG135Algèbre linéaire
8DJV102Fondements théoriques des moteurs de jeu vidéo (8PRO128)
8DJV103Développement avancé avec des moteurs de jeu (8PRO135)
8DJV104Programmation réseau multi-joueurs en ligne (6GEN723 et 8PRO128)
8DJV105Design des systèmes et des mécaniques de jeux
8DJV106Design de l'économie des jeux et monétisation
8DJV107Prototypage de jeux avec un langage de script (8PRO107)
8GIF150Conception de jeux vidéo
8IAR125Intelligence artificielle pour le jeu vidéo (8INF259)
8IFG147Gestion de la production dans l'industrie du numérique
8INF206Projet
8INF329Stage-projet III
8INF339Stage-projet IV
8INF416Visualisation de données et interface (8PRO408)
8INF700Sujet spécial en informatique
8MAP107Calcul avancé I
8PRO135Programmation avec des moteurs de jeu (8INF259 et 8PRO128)
8PRO408Outils de programmation pour la science des données
8ROP530Recherche opérationnelle ((8PRO107) ou (8PRO408))
8STT117Probabilité et statistique
8TRD150Animation et images par ordinateur (8PRO128)
8TRD157Bases de données avancées (8TRD151)

Un cours d'enrichissement (suggestion suivante ou tout autre cours approuvé par la direction du programme) (trois crédits)

7ANG021English Skills I
7ANG022English Skills II (7ANG021)
7ANG023English Skills III (7ANG022)
7ANG024English Skills IV (7ANG023)
7ENL520Critical Reading Skills and Comprehension (7ANG023)
7LNG106Orthographe et grammaire de base
7LNG124Maîtrise du français

Profil Honor

Deux cours de la Maîtrise en informatique avec l'accord de la direction du programme (six crédits)

DESCRIPTION DES COURS

2MAR210 Marketing numérique et réseaux sociaux

Les technologies de l'information et les médias numériques ont eu un impact prononcé sur les comportements de consommation d'une part et les modèles d'affaires organisationnels d'autre part. L'objectif principal de ce cours est de développer les compétences pratiques en marketing interactif afin de permettre de commercialiser efficacement des produits et des services par le biais des plateformes web, mobiles ainsi que les réseaux sociaux.

À l'issue de ce cours, être en mesure de réaliser un diagnostic du marketing numérique d'une organisation et être capable de mettre en œuvre des activités d'optimisation de la présence et des affaires commerciales d'une organisation selon une approche omnicanal à 360 degrés.

La stratégie web, le comportement du consommateur en ligne, la gestion du site Web et des blogs, la recherche d'informations en ligne, la gestion de la mobilité et des objets connectés, la gestion de la relation client en ligne, ainsi que les analytiques Web et mesure omnicanal.

Formule pédagogique : Cours Magistral

(07/2024)

4ETH236 Éthique et informatique

Initier les étudiants aux enjeux éthiques, légaux et sociaux du développement de certains usages de l'informatique dans différents domaines d'activité scientifique, technique ou industriel (nanotechnologies, domotique, télécommunications, etc.) dans les secteurs de la santé, l'éducation et la sécurité. Comprendre le système social des valeurs éthiques et les dispositifs normatifs encadrant les pratiques, notamment les lois, les règlements, les codes d'éthiques, etc. Développer la délibération éthique et le dialogue sur ces enjeux.

Les notions fondamentales de l'éthique appliquée et les principales théories éthiques contemporaines dans l'évaluation des impacts des technologies. Le droit de l'informatique, les principes moraux et les valeurs éthiques du développement des technologies. Acceptabilité sociale et acceptabilité éthique dans les études d'impact. Le processus d'analyse globale d'impacts et d'acceptabilité éthique.

Formule pédagogique : Cours Magistral

(07/2024)

6GEI186 Architecture des ordinateurs

Familiariser avec la structure et le fonctionnement des ordinateurs modernes.

Organisation vs architecture, évolution des ordinateurs et de leur performance, rappel d'arithmétique binaire (virgule fixe, virgule flottante), jeu d'instructions d'un microprocesseur, modes d'adressage, opération d'un ordinateur (composantes et fonctions, interconnexions), fonctionnement des antémémoires («caches»), mémoires vives (DRAM), mémoires de masse (disques, RAID), entrées/sorties (périphériques, DMA), support au système d'exploitation, structure et fonction d'un CPU (registres, pipelines), ordinateurs à jeu d'instructions réduit (RISC), systèmes multi-coeurs, traitement parallèle.

Formule pédagogique : Cours Magistral

(07/2024)

6GEI264 Vérification et validation des logiciels

Donner à l'étudiant les techniques de vérification et de validation requises pour le développement de logiciels de qualité.

Qu'est-ce que la vérification et la validation (V&V). Améliorer la qualité par la V&V. Évaluation et gestion du risque. Coût des défectuosités. Processus de développement: «waterfall», spirale, agile, . V&V selon les étapes du processus de développement: spécification, architecture, codage et test formels. Test unitaires, d'intégration, de régression et d'acceptation. Configuration d'un logiciel pour testabilité. Encapsulation, composants et interfaces. Utilisation de SVN. Règles de codage. Définir les cas de test et les critères d'acceptation. Documents de V&V: plan, procédures et rapports. Outils de V&V: «walk-throught», réunion pour revue, inspection, revue par les pairs, liste d'items, tests. Les techniques de V&V sont appliquées à la spécification, à la conception, au codage et aux tests d'un environnement de développement similaire à Visual Studio, incluant un mini-compilateur C.

Préalable(s): (8PRO128)

Formule pédagogique : Cours Magistral

(07/2024)

6GEI311 Architecture des logiciels

Se donner une méthodologie de conception de logiciel multitâche basé sur les composants et les interfaces. Se rendre capable d'intégrer diverses technologies et des algorithmes efficaces afin d'utiliser de manière optimale les ressources de la machine, tout en maintenant la convivialité de l'interface avec l'utilisateur.

Rappel des méthodologies de conception: "water fall", incrémental, agile, prototypage, spirale. Modélisation par composants et interfaces. COTS « Components Of The Shelf », micro services et services nuagiques. Conception architecturale, patrons et réutilisation. Principes et méthodes de conception multithread et multiprocessus avec contraintes de temps réel. Schéma d'architecture et règles de conception multitâche. Communications et synchronisation: threads et processus. MMF « Memory Mapped File ». Architecture SIMD et conception d'algorithmes. Programmation multi-cœurs. Architectures des GPU (Graphic Processing Unit) et programmation distribuée avec des technologies tel que OpenCL et CUDA. Méthodologie de conception appliquée au développement d'un système de traitement prenant en compte le temps réel. Système utilisant le multithread, multiprocessus et divers mécanismes de synchronisation et de communication. Utilisation de système de bibliothèques basées sur composants et interfaces.

Préalable(s): (8INF334)

Formule pédagogique : Cours Magistral

(07/2024)

6GEI466 Applications réseaux et sécurité informatique

Appliquer la méthodologie propre au génie logiciel afin de développer des applications utilisant les fonctionnalités d'un réseau et améliorer la sécurité dans les échanges d'informations électroniques.

Rappel sur les protocoles de communication: IP, TCP, utilisation des ports. Familiarisation aux différents langages et standards utilisés pour mettre en oeuvre des applications WEB: DHTML, XHTML, XML, Perl, Javascript, ASP, Java, Java Servlets, ActiveX, PHP. Développement d'applications utilisant ces langages. Utilisation de «cookies». Sécurité informatique: gestion du risque, cryptographie, signatures numériques, authentification, vulnérabilités, protocoles sécurisés, configuration des équipements de communication.

Préalable(s): (6GEN723)

Formule pédagogique : Cours Magistral

(07/2024)

6GEN719 Infographie

Maîtriser les concepts du graphisme par ordinateur et pouvoir développer des applications logicielles nécessitant l'utilisation de dessins tridimensionnels (3D) interactifs.

Concept de la caméra synthétique, langages et librairies de programmation graphique, interaction avec l'usager, rappels de notions de base en calcul vectoriel et en géométrie, matrices de transformation (translation, rotation, mise à l'échelle, cisaillement), quaternions, matrices de projection (parallèles et perspective), élimination des surfaces cachées, illumination des objets, création d'objets complexes en utilisant une structure hiérarchique, application de textures, création de courbes et de surfaces en 3D.

Préalable(s): (8INF259)

Formule pédagogique : Atelier

(07/2024)

6GEN723 Réseaux d'ordinateurs

Comprendre le fonctionnement, planifier l'installation et utiliser un réseau d'ordinateurs. Se familiariser aux diverses couches d'implantation d'un réseau d'ordinateurs. S'initier aux principaux protocoles de communication et de routage des messages. Se familiariser avec les principales composantes d'un réseau d'ordinateurs. Utiliser les services de base d'un réseau à l'intérieur d'un programme.

Topologies, modèle de référence OSI, les standards, exemples de réseaux. La couche physique: supports de transmission, propagation des signaux, interfaces standards, transmission de l'information (asynchrone, synchrone, composants de communication). La sous-couche d'accès physique: les protocoles CSMA, anneau à jeton et bus à jeton (norme 802), format des trames, comparaison des performances, les réseaux à fibres optiques (FDDI). La couche liaison de données: reconnaissance de trames, contrôle des erreurs, protocoles élémentaires. La couche réseau: interconnexion (répéteurs, ponts, aiguilleurs), algorithmes de routage, les protocoles d'applications spécifiques. Couche transport: modèle client-serveur, appel de procédure à distance. Couches sessions et présentation, cryptage des données. Couche application, Internet et ses protocoles.

Préalable(s): (6GIN101 et 8INF259)

Formule pédagogique : Cours Magistral

(07/2024)

7ANG021 English Skills I

Développer des stratégies permettant de mieux communiquer dans des situations quotidiennes (pour les étudiants ayant connaissance de base en anglais). Développer la compréhension de l'oral et de l'écrit, et l'expression orale et écrite.

Vocabulaire de base associé à l'exécution des fonctions de la vie courante. Fonctions langagières : se présenter, exprimer ses préférences et ses aversions, décrire son milieu immédiat, parler de ses activités quotidiennes, demander et donner des informations, chercher et proposer de l'aide, donner des indications, etc. Structures grammaticales pertinentes: formes verbales à l'impératif, au présent, au futur proche et au «simple past»; verbes modaux exprimant les requêtes; noms comptables et non comptables; déterminants démonstratifs et possessifs; adverbes de fréquence; questions simples de type «yes / no» et «wh». Mise en situation du lexique et des structures grammaticales à partir de simulations provenant des ressources didactiques en classe et en laboratoire multimédia.

Formule pédagogique : Cours Magistral

(07/2024)

7ANG022 English Skills II

Poursuivre l'acquisition des connaissances langagières de base dans des contextes réels et simulés qui représentent des fonctions sociales et professionnelles. Développer la compréhension de l'oral et de l'écrit, et l'expression orale et écrite.

Vocabulaire associé aux fonctions sociales et professionnelles, expressions idiomatiques, prononciation. Fonctions langagières: donner des informations sur soi-même, décrire un tiers, donner et demander des informations sur des faits, poser des questions concernant des habitudes ou des intérêts personnels et y répondre, décrire des événements passés au moyen du «simple past», donner et suivre des indications, exprimer l'accord et le désaccord, etc. Structures grammaticales pertinentes: révision des questions de type «yes / no» de même que des formes verbales au présent et au futur proche; distinction entre le «simple past» et le «present perfect»; verbes au passé continu et habituel; verbes périphrastiques; verbes modaux exprimant la nécessité et l'obligation; adjectifs comparatifs et superlatifs; adverbes de quantité. Conversations dirigées, courtes discussions, mises en situation du lexique et des structures grammaticales au moyen des ressources didactiques fournies en classe et en laboratoire multimédia.

Préalable(s): (7ANG021)

Formule pédagogique : Cours Magistral

(07/2024)

7ANG023 English Skills III

Permettre d'améliorer sa capacité à tenir une conversation et à produire des textes dans des contextes réels et simulés qui sont caractéristiques des fonctions de la vie académique, sociale et professionnelle (pour les étudiants de niveau intermédiaire/avancé). Développer la compréhension de l'oral et de l'écrit, et l'expression orale et écrite.

Vocabulaire associé aux fonctions de la vie académique, sociale et professionnelle, expressions idiomatiques, prononciation. Fonctions langagières: décrire les personnes, contester face à un désaccord, accepter et refuser les requêtes, laisser des messages, raconter une histoire au passé, exprimer des émotions et des attentes. Structures grammaticales pertinentes: le présent simple, le présent progressif et le «present perfect», formes verbales au présent continu et au «present perfect progressive», «simple past», «past perfect» et «past perfect progressive»; verbes périphrastiques; propositions adjectivales, adverbiales et conditionnelles; pronoms relatifs, rôle adjectival du participe passé, le gérondif en fonction de sujet ou de complément. Conversations dirigées, courtes discussions, mises en situation et exercices grammaticaux en classe et en laboratoire multimédia.

Préalable(s): (7ANG022)

Formule pédagogique : Cours Magistral

(07/2024)

7ANG024 English Skills IV

Permettre de perfectionner sa capacité à communiquer (oralement ou par écrit) dans des contextes réels et simulés qui sont caractéristiques des fonctions de la vie académique, sociale et professionnelle (pour les étudiants de niveau avancé). Développer la compréhension de l'oral et de l'écrit, et l'expression orale et écrite.

Vocabulaire associé aux fonctions de la vie académique, sociale et professionnelle, expressions idiomatiques, prononciation. Fonctions langagières: identifier des problèmes et proposer des solutions, préciser le but d'une proposition, proposer des explications, tirer des conclusions, décrire des événements hypothétiques. Structures grammaticales pertinentes: formes verbales au plus-que-parfait progressif, passif; modaux au passé; propositions conditionnelles; discours rapporté. Conversations dirigées, discussions longues, débats, mises en situation et exercices grammaticaux en classe et en laboratoire multimédia.

Préalable(s): (7ANG023)

Formule pédagogique : Cours Magistral

(07/2024)

7ARN210 Installation, interactivité et vidéo

Initier aux pratiques de construction et de matérialisation de l'espace dérivées de l'installation vidéo. Familiariser aux modes d'intervention vidéographique dans les processus de spatialisation et de temporalité en rapport avec diverses formes d'expressions artistiques: cinéma, arts visuels et théâtre. Étudier les principaux enjeux de la pratique et les bases techniques nécessaires à l'élaboration et à la réalisation d'œuvres interactives, installatives et/ou immersives. Familiariser au contexte historique des arts électroniques, particulièrement la vidéo, en explorant les enjeux conceptuels et processuels liés au développement des systèmes interactifs.

Réalisation de systèmes électroniques simples de plateformes de prototypage (Arduino) et apprentissage d'un environnement de programmation visuelle (TouchDesigner). Mise en situation de l'image-mouvement dans différents espaces et environnements (espace réel, réalité virtuelle). Développement de tactiques de spatialisation de la vidéo (le mapping, la caméra en tant que capteur). Réalisation de projets artistiques caractérisés par l'interactivité, l'image vidéographique, l'image infographique tridimensionnelle et l'espace. Réflexion sur l'interaction en temps réel entre l'image en mouvement, l'espace et le corps. Développement d'un discours sur le potentiel esthétique des œuvres interactives.

Formule pédagogique : Atelier

(07/2024)

7ARN360 Installations hybrides

Explorer les effets d'hybridation obtenus par la création d'environnements qui conjuguent le réel et le virtuel. Approfondir un certain nombre de problèmes plastiques liés à la création d'œuvres cinétiques et robotiques liées aux systèmes de contrôle ou des interfaces interactives. Utiliser des systèmes de contrôle électroniques, mécaniques et informatiques qui seront mis en réseau dans différents contextes.

Apprentissage des utilisations de microcontrôleurs; intégration de périphériques matériels liés à la programmation de dispositifs interactifs et cinétique. Expérimentation avec les systèmes d'impression 3D et les mécanismes de mouvement (moteur et engrenages). Réflexion sur l'ubiquité, l'informatique omniprésente adaptée aux objets, à l'espace et à l'IdO (Internet des objets). Création de dispositifs de contrôle ou d'interfaces interactives. Connaissance des microcontrôleurs (Arduino) et des plateformes de programmation Processing et/ou TouchDesigner.

Formule pédagogique : Atelier

(07/2024)

7ENL520 Critical Reading Skills and Comprehension

Améliorer la compréhension de l'anglais écrit. Développer des techniques de lecture aux niveaux littéral, inférentiel, critique et analytique.

Sensibilisation aux nuances de la langue anglaise dues à des variations lexicales, morphologiques et syntaxiques dans le cadre d'analyses de textes courants. Différences de significations de structures syntaxiques dans des contextes variés. Stratégies de lecture (skimming, scanning). Techniques pour améliorer l'efficacité de lecture.

Préalable(s): (7ANG023)

Formule pédagogique : Cours Magistral

(07/2024)

7INF517 Traitement automatique des langues

Faire découvrir le domaine du traitement automatique des langues (TAL). Amener à maitriser différentes techniques d'analyse automatique des langues. Faire connaitre et comprendre différentes technologies langagières telles que la traduction automatique, la synthèse de parole, la reconnaissance de parole, la correction orthographique, le dialogue homme-machine. Initier à l'utilisation d'un environnement de programmation informatique (Perl, Python, R...) pour la fouille de textes (Text Mining).

Les fondements du TAL. Les unités linguistiques orales et écrites utilisées en TAL (diphones, n-grammes, lemmes...). Les techniques de catégorisation et d'étiquetage des séquences orales et des documents textuels; les outils d'analyse morpho-syntaxique et lexicale. Les techniques d'extraction et d'alignement automatique de séquences orales et de chaines textuelles (Dynamic Time Warping, expressions régulières, Skeleton Key, distance de Levenshtein...). Les techniques de fouille de textes (fréquences, Topic Modeling...). Quelques principes de linguistique statistique (loi de Zipf-Mandelbrot, loi de Menzerath-Altmann...).

Formule pédagogique : Magistral et/ou formation à distance

(07/2024)

7LNG106 Orthographe et grammaire de base

Développer la compréhension du fonctionnement de l'écrit. Développer une capacité d'analyse permettant la détection et la résolution de problèmes orthographiques, syntaxiques et lexicaux courants.

Structure de la phrase simple. Retour sur les classes et les fonctions grammaticales. Manipulations syntaxiques. Système général des accords grammaticaux, dans les groupes et entre les groupes. Forme simple ou composée du verbe, conjugaison, accord; verbes pronominaux, à l'infinitif et au participe. Types et formes de phrases. Structure de la phrase complexe : relative, complétive et circonstancielle; interrogation indirecte, concordance des temps, confusions homophoniques indicatif/ subjonctif, anacoluthes. Principes de coordination. Reprise et progression de l'information. Pronoms personnels, possessifs et démonstratifs. Correction d'erreurs fréquentes. Utilisation des outils de référence.

Formule pédagogique : Magistral et/ou formation à distance

(07/2024)

7LNG124 Maîtrise du français

Approfondir la compréhension des règles de l'écrit et l'habileté à détecter et à résoudre divers problèmes liés à l'orthographe grammaticale, à la construction des phrases, au choix du vocabulaire, à la ponctuation et à l'orthographe d'usage.

Structure et transformations de la phrase de base. Phrases juxtaposées et coordonnées : pronominalisation ou ellipse, ponctuation. Mécanisme de la subordination; choix des pronoms relatifs, choix du mode verbal, concordance des temps, ponctuation. Construction participiale, infinitive, corrélative. Accords grammaticaux dans la phrase complexe. Repérage des anglicismes, impropriétés, barbarismes; choix du mot juste. Zones de régularités et particularités en orthographe d'usage. Utilisation des outils de références (dictionnaires, grammaires, conjugueurs).

Formule pédagogique : Cours Magistral

(07/2024)

8ALG135 Algèbre linéaire

Introduire les concepts et les résultats de base de l'algèbre linéaire et ainsi développer une maîtrise raisonnable des modes de raisonnement, des méthodes de calcul et des heuristiques, propres à ce domaine. Introduire l'aspect historique par l'étude de situations ayant nécessité l'emploi de l'algèbre linéaire.

Matrices. Systèmes d'équations. Systèmes d'inéquations linéaires. Espaces vectoriels réels: dépendance linéaire, indépendance linéaire, bases, dimensions, applications linéaires, représentations matricielles. Déterminants, valeurs et vecteurs propres, diagonalisation.

Formule pédagogique : Cours Magistral

(07/2024)

8CLD201 Environnement de déploiement des applications

Comprendre l'environnement de déploiement et les technologies nécessaires à la mise en service d'applications dans le nouveau contexte dématérialisé.

Introduction au concept de Cloud computing. Survol des grandes plateformes Cloud (AWS, Azure, GCP). Modèle de service (IaaS, PaaS, SaaS). Modèle de consommation (à la demande, réservé et spot). Concepts de séparation des services et leur interopérabilité (Compute, Storage, Network). Migration. Facteurs environnementaux. Monolith vs Microservice. Modèles: Event driven, Circuit breaker, Serverless, Containers, Landing zone, Stateful / Stateless. Disponibilité: RTO (Recovery Time Objective) / RPO (Recovery Point Objective), Haute-disponibilité, Sinistre. Principes et outils de l'infrastructure en tant que code (infrastructure as a code / IaaS), tels que Terraform, Azure Devops et Cloud formation. Cycle de maintenance et de développement en continu. Notions d'authentification. Identité numérique (Clients & Utilisateurs). Secrets, clef d'authentification, certificats, jetons, meilleures pratiques.

Préalable(s): (8WEB101)

Formule pédagogique : Magistral et/ou formation à distance

(07/2024)

8CLD202 Infonuagique

Comprendre l'infrastructure logicielle de l'informatique en nuage et les outils technologiques qui s'y rattachent. Être apte à déployer des applications et à gérer un système en infonuagique.

Introduction au concept de conteneurs. Les technologies conteneurs (ex. Kubernetes vs Docker). Les plateformes de control plane et leur rôle (Openshift, Rancher, Tanzu, etc.). Registre de conteneurs. La gestion des images et le déploiement. Gestions des namespaces. Cycle de maintenance et développement continu (CI/CD). Gestion des politiques. Infrastructure en tant que code dans l'infonuagique avancée (IaaS). Elasticité, ccale in/out, performance et capacité, cycle de vie. IaaS Network. Restriction des flux (security group, firewalls). Privé vs publique. Balanceurs de charge (L3, L4 & L7). WAF, DNS interne vs externe, techniques de balance de charge via DNS (GSLB), NAT/PAT, Interconnexion (VPN / Peering / Connexion privé). Stockage en IaaS. File/block/objects/queue. Encryption. Persistent versus éphémère. Plateforme en tant que service (Platform as a Service - PaaS). Base de données en nuage. Type de BD (NoSQL, SQL, Datalake, ...). Modélisation en nuage. Protection des données. Réplication. Machine Learning / IA en nuage. Robots de clavardage ChatBot. Logiciel en tant que service (Software as a service -SaaS) : Serverless, API Gateway, Vault, etc.

Préalable(s): (8CLD201)

Formule pédagogique : Magistral et/ou formation à distance

(07/2024)

8DJV102 Fondements théoriques des moteurs de jeu vidéo

S'initier aux différentes notions théoriques nécessaires à la programmation des moteurs de jeux vidéo. Exploration de diverses notions mathématiques à l'aide de moteurs de jeux (Unity, Unreal, etc.). Implémentation et utilisation de ces notions à travers divers exemples de la physique mécanique.

Fondements mathématiques des moteurs de jeux: transformations géométriques (rotations, réflexions, homothéties, translations, cisaillements, projections, etc.), trigonométrie, vecteurs, matrices, repères du monde et de l'objet, transformations linéaires et affines, produits scalaire et vectoriel, angles d'Euler, quaternions, interpolation linéaire. Applications de la physique mécanique en jeu vidéo : calcul de la position, vélocité et accélération d'une particule, calcul de trajectoires (mouvement rectiligne et mouvement rectiligne uniformément accéléré), applications de différentes forces à des objets (gravité, ressorts, etc.), calcul de l'accélération à l'aide de la deuxième loi de Newton, initiation à la détection de collisions (volumes englobants, quadtree et octree, etc.), résolutions de collisions à l'aide d'impulsions.

Préalable(s): (8PRO128)

Formule pédagogique : Magistral et/ou formation à distance

(07/2024)

8DJV103 Développement avancé avec des moteurs de jeu

Approfondir ses connaissances concernant le développement structuré de jeux vidéo à l'aide de moteurs de jeu professionnels.

Développement logiciel avec les moteurs de jeu tel que Unreal. Résolution de problèmes liés aux moteurs de jeu à l'aide de logiciels de contrôle de version (ex. Git et Perforce). Utilisation de concepts avancés avec la programmation C# et C++ en lien avec les moteurs de jeu. Utilisation des outils de refactoring de code. Profilage de code et manipulation d'outils afin d'identifier des problèmes de performance. Utiliser la programmation multicœur et l'allocation de ressources afin d'augmenter la vitesse de traitement. Approfondir les connaissances en gestion de la mémoire. Implémentation de patrons de conception applicables aux moteurs de jeu. Exploitation des réseaux dans le cadre de moteurs de jeu. Utiliser le traçage de rayons, les outils de rendu à haute définition et application d'effets post-processing. Programmation de shaders avec la syntaxe ShaderLab et HLSL/Cg. Débogage avancé dans des logiciels réseaux et multicœurs. Apprentissage du cycle de vie des sous-systèmes des moteurs de jeu. Utilisation d'outils d'analyse statique et de calcul de complexité du code. Exercices pratiques d'implémentation de fonctionnalités avancées avec des moteurs de jeu. Rédaction d'outils pour les moteurs de jeu. Développement et implémentation de fonctionnalités à l'intérieur de projets existants. Utilisation de techniques de diffusion et de chargement pour éviter les limites des moteurs de jeu.

Préalable(s): (8PRO135)

Formule pédagogique : Magistral et/ou formation à distance

(07/2024)

8DJV104 Programmation réseau multi-joueurs en ligne

S'initier à la programmation de jeux en réseaux, multi-joueurs et en ligne. Connaître l'architecture des réseaux et les outils de programmation de bas niveau. Se familiariser avec les notions avancées permettant d'assurer la fiabilité, la robustesse et la scalabilité d'un jeu en réseau. Être apte à exploiter les outils logiciels et librairies de programmation réseaux disponibles dans les moteurs de jeu.

Internet: rappel des couches TCP/IP et NAT. Programmation avec des sockets UDP/TCP. Sérialisation et compression. Réplication d'objets et d'états. Implémentation client-serveur et peer-to-peer. Gestion de la latence et de la fiabilité. Interpolation et prédiction côté client. Gestion côté serveur. Notion de scalabilité, partitionnement et priorisation. Sécurité du réseau et tricheries des joueurs. Programmation réseau avec des moteurs (ex. UDK et Unity). Service en nuage et le « streaming » (Cloud gaming). Services aux joueurs (lobbies, auto-pairage, statistiques et badges). Exercices et travaux sur des exemples concrets en C++.

Préalable(s): (6GEN723 et 8PRO128)

Formule pédagogique : Magistral et/ou formation à distance

(07/2024)

8DJV105 Design des systèmes et des mécaniques de jeux

Comprendre l'approche systémique de design des systèmes de jeux d'un point de vue informatique. Développer des compétences avancées dans le design des mécaniques de jeux et des systèmes de jeux. Comprendre l'optimisation de la boucle de jeux. Être apte à concevoir des systèmes de jeux synergiques et balancés.

Approche systémique du design des mécaniques de jeux. Mécanique discrète vs continu. Progression dans le jeu, synergie et interaction des composants. Processus d'idéation rationnel (rational design). Atomisation des mécaniques de jeux. Équilibrage et mesure de l'efficacité. Exploitation des probabilités pour enrichir le gameplay. Systèmes transitifs et non transitifs. La notion d'émergence. Analytique. Intégration du playtesting dans la boucle de conception du système. Organisation spatiale et temporelle des éléments du jeu. Le gameplay comme une suite de choix intéressants. Modélisation de l'engagement chez le joueur. L'émergence et comment la créer. Les cœurs de jeux. Simulation de systèmes de jeux. Approche systémique de l'interactivité. Enjeux et évolution à venir dans les pratiques de la discipline.

Formule pédagogique : Magistral et/ou formation à distance

(07/2024)

8DJV106 Design de l'économie des jeux et monétisation

Comprendre comment modéliser l'économie globale et la boucle de circulation des ressources à l'intérieur d'un système de jeux. Développer des compétences avancées dans le design de l'économie d'un jeu vidéo. Apprendre à utiliser un outil de simulation informatique du cycle économique dans un jeu. Être apte à concevoir des systèmes économiques balancés. Comprendre intégrer de manière synergique les mécaniques de monétisation dans un système de jeux.

Les différents types d'économie dans les jeux. Les éléments internes de l'économie d'un jeu vidéo. Structure de l'économie d'un jeu et comment en faire le design informatique. Les composantes d'une économie de jeux : ressources, sources, drains, échangeurs, convertisseurs, etc. Économie simple versus économie complexe (i.e. incluant du crafting). Modélisation à l'aide de graphes du système économique d'un jeu. Implémentation de l'économie d'un jeu. Simulation de l'économie d'un jeu à l'intérieur d'un outil de simulation informatique (ex. Machinations). Exemples d'économies sur plusieurs jeux connus (ex. Stracraft, Civilization, Minecraft, etc.). La monétisation dans les jeux, microtransactions et comment les intégrer dans la boucle du système de jeux. Économie parallèle des jeux et comment en tirer profit.

Formule pédagogique : Magistral et/ou formation à distance

(07/2024)

8DJV107 Prototypage de jeux avec un langage de script

Être apte à effectuer la programmation d'un prototype de jeux avec un langage de script. Comprendre l'utilisation d'un langage visuel de script à l'intérieur d'un moteur de jeu. Acquérir des compétences en programmation visuelle et scriptée.

Introduction à la programmation avec un langage visuel de script (ex. Blueprint). Processus de prototypage à l'intérieur d'un moteur de jeu professionnel (ex. Unreal Engine). Étapes de création d'un prototype de jeux. Implémentation des mécaniques et systèmes de jeux avec un langage visuel. La boucle de développement itérative centrée sur l'utilisateur. La notion d'interaction et rétroaction. Application pratique et développement de plusieurs petits prototypes avec un langage des scripts. Playtest d'un prototype. Analyse quantitative et qualitative des résultats des tests réalisés sur un prototype de jeux.

Préalable(s): (8PRO107)

Formule pédagogique : Magistral et/ou formation à distance

(07/2024)

8GIF150 Conception de jeux vidéo

Initier la personne étudiante au processus de conception (design) d'un jeu vidéo. Introduire la personne étudiante au contexte et aux pratiques de l'industrie du jeu vidéo ainsi qu'aux exigences pour y œuvrer.

Contexte actuel et histoire de l'industrie du jeux vidéo. Design des règles et des mécaniques d'un jeu vidéo. Relations entre les éléments du jeu, les règles et la jouabilité. Design narratif et design systémique. Tâches du concepteur de jeu. Caractérisation des conditions initiales et de victoire. Étude des stratégies, des tactiques et de leur équilibre. Notions de bases de design : les 3C, la symétrie, la rétroaction, le flow, etc. Étude de cas avec des jeux connus et récents. Outils automatisés pour le design des jeux vidéo. Processus de prototypage et d'idéation. Éthique dans la conception des jeux vidéo.

Formule pédagogique : Magistral et/ou formation à distance

(07/2024)

8IAR125 Intelligence artificielle pour le jeu vidéo

Introduire aux techniques d'intelligence artificielle utilisées dans la conception de jeux vidéo. Utiliser ces techniques pour parvenir à un niveau élevé de réalisme. Mise en œuvre de divers concepts à l'aide d'un langage de programmation orienté objet et leur application dans un moteur de jeu.

Comportement des agents : architecture des agents intelligents, machines à états finis, prises de décision rationnelles et arbres de comportement. Navigation d'un agent intelligent : comportements de conduite, mouvements d'équipes organisées. Algorithmes de navigation (Dijkstra, A*, ligne de visée, algorithme d'entonnoir, etc.). Algorithmes pour la génération de zones de navigation dans les moteurs de jeu (Mesh de navigation). Perception et environnement : système de perception d'un agent intelligent (vision, son, dommages, etc.), perception partielle et omnisciente (équilibrage du gameplay), analyse de l'environnement et comportement contextuel (mise à couvert, exploration, etc.). Apprentissage machine et IA générative : réseaux de neurones, apprentissage supervisé, apprentissage par renforcement. Application des réseaux de neurones dans les moteurs de jeu. Outils et algorithmes de génération pour les jeux vidéo (personnalités des personnages, génération de donjons, etc.).

Chaque concept sera illustré par des exemples tirés du domaine des jeux vidéo.

Préalable(s): (8INF259)

Formule pédagogique : Magistral et/ou formation à distance

(07/2024)

8IAR403 Apprentissage machine pour la science des données

Acquérir les connaissances pour un projet d'apprentissage automatique en sciences des données. S'initier aux algorithmes de base de l'apprentissage supervisé et non-supervisé à partir des données pour l'informatique décisionnelle. Mettre en pratique les connaissances acquises pour l'analyse prédictive sur des cas réels.

Principes de l'apprentissage automatique. Cycle de vie d'un projet d'apprentissage automatique. Algorithmes de base de l'apprentissage supervisé. Arbre de décision. K plus-proches voisins. Réseaux connexionnistes. Apprentissage non-supervisé. K-means. Clustering hiérarchique. Recherche de motifs fréquents et règles d'associations. Apriori. Méthodologie de test et mesures de performance. Sur-apprentissage. Environnement d'apprentissage automatique et utilisation de librairies. Les exercices seront réalisés avec Scikit-Learn et Python.

Préalable(s): (8PRO408)

Formule pédagogique : Magistral et/ou formation à distance

(07/2024)

8IFG147 Gestion de la production dans l'industrie du numérique

Comprendre l'importance d'une bonne gestion de projets dans le domaine du développement de jeu vidéo. Développer la compréhension de la méthodologie Agile et du cadre de référence Scrum. Connaître les rôles, artéfacts et rituels Scrum. Comprendre la planification, le découpage et l'estimation des coûts de projet avec la méthode Agile. S'initier à la gestion d'équipes. Parfaire ses habiletés de communication et de résolution de conflits. Se familiariser avec la gestion de risques.

La production de jeux vidéo avec l'approche Agile/Scrum. Les trois piliers de Scrum : transparence, inspection et adaptation. La notion de rituel/point de contrôle et des « timebox ». L'aspect adaptatif et empirique de l'approche. Organisation du travail. Les rôles : Scrum Master, Product Owner et équipe multidisciplinaire de développement. Les rituels de planification : Release Planning et Sprint planning. Les trois points d'inspection et d'adaptation : rencontre quotidienne, revue de jeu et rétrospective. Les cinq artéfacts. Outils informatisés pour la gestion de projets (ex. Teams, Trello, Jira). Optimisation de la boucle de production Agile/Scrum. Définir le périmètre (scope) d'un projet en Agile/Scrum. Découper les fonctionnalités et estimer en continue en approche adaptative pour une production structurée et efficace. Définir son « backlog » de produit et son « backlog » de Sprint. L'équipe de projet : optimisation du processus de coordination des ressources. La nature d'une équipe de projet : bloquants et spécificités. La communication avec l'équipe et avec les individus : les stratégies. La gestion et la répartition de son temps. La gestion de projets à grande échelle en Agile/Scrum. Problématiques liées aux grandes équipes lors de l'utilisation d'approches Agiles. Modèles de gestion Agile à grande échelle : Nexus, LeSS, Spotify, Scrum of Scrum, Safe, etc. Évolution à venir dans le futur au niveau de la gestion de projets dans le secteur du numérique.

Formule pédagogique : Magistral et/ou formation à distance

(07/2024)

8INF138 Sécurité des réseaux et du Web

Amener à comprendre les concepts de base de la sécurité informatique et de la protection de l'environnement de travail grâce à des logiciels et des protocoles de sécurité. Faire acquérir une approche pratique de la sécurité dans l'environnement de l'Internet.

Concepts de base de la sécurité informatique. Menaces. Vulnérabilité des systèmes. Survol des technologies utilisées en sécurité informatique: cryptographie, cryptanalyse, authentification, confidentialité, codes malicieux, pare-feux, audits, détection d'intrusions, etc. Principes de base pour sécuriser un environnement réseau. La taxonomie d'attaques malicieuses sur les réseaux informatiques. Les faiblesses des protocoles réseaux. Installation et configuration des outils de sécurité réseau. Protocoles de sécurité. Sécurité du Web. Concepts de politique de sécurité pour les réseaux. Étude approfondie des technologies utilisées pour la protection des réseaux informatiques. Sécurité de commerce électronique. Modèles de sécurité des langages de programmation. Vérification des mécanismes de sécurité implantés dans une organisation donnée.

Formule pédagogique : Cours Magistral

(07/2024)

8INF206 Projet

Concevoir, élaborer et réaliser un logiciel, ou adapter un logiciel relié au champ d'intérêt de l'étudiant.

À partir d'une problématique qu'il identifiera, l'étudiant franchira toutes les étapes de réalisation ou d'adaptation d'un logiciel. Il devra analyser le problème, le structurer et en construire une image riche. Il devra le conceptualiser sous forme modulaire et élaborer des solutions de rechange. Il devra traduire la meilleure solution dans un langage de programmation (cours terminal).

Formule pédagogique : Magistral et/ou formation à distance

(07/2024)

8INF228 Adaptation et qualité des applications

Permettre de maîtriser les principes d'adaptation, d'intégration et de composition d'une application selon les approches orientées objets, composants, services, micro-services et hybrides; de la modifier et de l'adapter facilement face à de nouveaux changements et contextes; et d'évaluer sa qualité.

Rappel des principes de développement d'applications, telles que la cohésion, le couplage, la modularité et les SOLID. Types d'adaptation et de maintenance d'une application pour interagir aux niveaux signatures, comportements, sémantiques et services. Faciliter l'adaptation d'une application et améliorer sa qualité avec les patrons, modèles, frameworks, plateformes, et API. Types de patrons: analyse, architecture, conception, implémentation, distance, et variations. Mécanismes d'injection de dépendance entre les composantes (IoC). Plateformes d'injection de dépendance à divers niveaux (objet, classe, composant, module). Séparation des préoccupations: Programmation par aspect. Conception architecturale: concepts, styles et patrons architecturaux. Introduction à l'approche orientée modèle MDA-MDE. Qualités de logiciels (réutilisation, maintenabilité, portabilité, interopérabilité, explanabilité, etc.). Métriques pour évaluer la qualité logicielle. Modèles de maturité de processus (standard CMM et norme ISO). Introduction aux notions formelles pour décrire des systèmes et composantes logiciels: diagrammes de classes et contraintes, automates et systèmes de transitions, et contrats (OCL). Pratique de développement DevOps.

Préalable(s): (8PRO128)

Formule pédagogique : Magistral et/ou formation à distance

(07/2024)

8INF242 Interface (UI) et Expérience (UX) utilisateur

Comprendre comment développer un système d'interactions de qualité avec l'utilisateur d'une application logicielle en créant une expérience et des interfaces centrées sur ses besoins. Maîtriser les principes d'ergonomie, de perception, de navigation et de design d'une interface. Savoir tester son expérience utilisateur en concevant des tests adaptés.

Model mental de l'humain et approche de design centré utilisateur. Phases du processus de design centré utilisateur. Type d'apprentissages et comment enseigner à travers la dynamique du système. Revue des dispositifs d'interaction de base et les techniques associées, étude de plusieurs paradigmes autour de l'exploitation de ces techniques. Biais cognitifs. Perception, mémoire, attention, motivation et apprentissage de l'usager. Contrôle et rétroaction. Consistance et clarté. Esthétique et atmosphère. Spécificité des interfaces sur ordinateurs, consoles et plateformes mobiles. Autres types d'interfaces : gestes, voix, projection, capteurs, etc. Prévention des erreurs humaines. Générer l'engagement de l'usager. La notion de "Flow". Tests d'utilisabilités et heuristiques d'évaluation.

Formule pédagogique : Magistral et/ou formation à distance

(07/2024)

8INF257 Informatique mobile

L'objectif du cours est d'amener les étudiants au cœur de la problématique de conception et du développement d'applications mobiles. L'étudiant sera en mesure d'exploiter efficacement les multiples senseurs des périphériques mobiles (ex.: téléphones, tablettes, etc.) afin d'offrir des services appropriés au contexte d'utilisation.

Composants et caractéristiques d'une application mobile, multithread, interfaces utilisateur, services, senseurs physiques et logiques, base de données, services basés sur la localisation, débogage, communication (wifi, Bluetooth etc.). Développement logiciel d'applications mobiles avec les langages et librairies utilisés en industrie.

Préalable(s): (8PRO128)

Formule pédagogique : Magistral et/ou formation à distance

(07/2024)

8INF259 Structures de données

Poursuivre le développement des connaissances en méthodologies de résolution de problèmes et de programmation. Initier aux types abstraits de données, à leurs applications. Mettre en oeuvre des structures de données classiques et analyser leurs avantages et leurs défauts respectifs. Initier aux principes de l'algorithmique. Utiliser efficacement la librairie standard du C++ (STL).

Structures de données abstraites: piles, files, listes, arbres, graphes, tables de hachage, B-arbres. Analyse théorique et mise en oeuvre des algorithmes de gestion de ces structures: insertion, élimination, recherche, tri, etc. Analyse de l'efficacité des algorithmiques: introduction à la notation asymptotique. Introduction au langage C++: notions de classes et de modèles (templates). Organisation matérielle des fichiers: séquentielle, indexée, séquentielle-indexée. Utilisation de la STL: étude des principaux conteneurs (vector, list, stack, queue, map, set, etc.), utilisation des itérateurs (standard, constants et inversés).

Préalable(s): (8PRO107)

Formule pédagogique : Cours Magistral

(07/2024)

8INF308 Activité de recherche en informatique I (Honours Thesis)

Réaliser une recherche sous la supervision d'un professeur. Intégration de l'étudiant au domaine de recherche d'un professeur. Initier à la méthodologie de la recherche en informatique. Acquérir une maîtrise suffisante des compétences informationnelles.

Le contenu exact du cours dépend du type de recherche effectuée. Cela peut comprendre les éléments suivants: Choix du sujet; Revue de la littérature; Rédaction du projet de recherche; Réalisation de la recherche; Rédaction d'un rapport technique; Présentation orale.

Formule pédagogique : Séminaire et/ou formation à distance

(07/2024)

8INF309 Stage-projet I

Appliquer les compétences et les connaissances acquises au développement de systèmes informatiques en entreprises ou dans une organisation.

Démarche touchant la compréhension du problème posé, analyse du domaine et des besoins, recherche de solutions, justification de celle retenue, méthodologie retenue, élaboration du projet, conception du modèle informatique, mise en oeuvre. Production de la documentation accompagnant les diverses étapes du projet selon les principes du génie logiciel. En collaboration avec des spécialistes de l'informatique de l'entreprise ou de l'organisation, le stage ou le projet se déroulera selon les modalités prévues par la direction de programme sous la supervision d'un enseignant. Dépôt d'un rapport écrit qui fera l'objet d'une évaluation.

Formule pédagogique : Stage et/ou formation à distance

(07/2024)

8INF318 Activité de recherche en informatique II (Honours Thesis)

Poursuivre les travaux initiés dans le premier cours d'activité de recherche. Réaliser une recherche sous la supervision d'un professeur. Intégrer l'étudiant au domaine de recherche d'un professeur. Initier à la méthodologie de la recherche en informatique. Acquérir une maîtrise suffisante des compétences informationnelles.

Le contenu exact du cours dépend du type de recherche effectuée. Cela peut comprendre les éléments suivants: Choix du sujet; Revue de la littérature; Rédaction du projet de recherche; Réalisation de la recherche; Rédaction d'un rapport technique; Présentation orale.

Formule pédagogique : Séminaire et/ou formation à distance

(07/2024)

8INF319 Stage-projet II

Appliquer les compétences et les connaissances acquises au développement de systèmes informatiques en entreprises ou dans une organisation.

Démarche touchant la compréhension du problème posé, analyse du domaine et des besoins, recherche de solutions, justification de celle retenue, méthodologie retenue, élaboration du projet, conception du modèle informatique, mise en oeuvre. Production de la documentation accompagnant les diverses étapes du projet selon les principes du génie logiciel. En collaboration avec des spécialistes de l'informatique de l'entreprise ou de l'organisation, le stage ou le projet se déroulera selon les modalités prévues par la direction de programme sous la supervision d'un enseignant. Dépôt d'un rapport écrit qui fera l'objet d'une évaluation. Selon le cheminement, l'étudiant pourra poursuivre le travail réalisé dans le cadre du cours Stage-projet I.

Formule pédagogique : Stage et/ou formation à distance

(07/2024)

8INF329 Stage-projet III

Appliquer les compétences et les connaissances acquises au développement de systèmes informatiques en entreprises ou dans une organisation.

Démarche touchant la compréhension du problème posé, analyse du domaine et des besoins, recherche de solutions, justification de celle retenue, méthodologie retenue, élaboration du projet, conception du modèle informatique, mise en œuvre. Production de la documentation accompagnant les diverses étapes du projet selon les principes du génie logiciel. En collaboration avec des spécialistes de l'informatique de l'entreprise ou de l'organisation, le stage ou le projet se déroulera selon les modalités prévues par la direction de programme sous la supervision d'un enseignant. Dépôt d'un rapport écrit qui fera l'objet d'une évaluation. Selon le cheminement, l'étudiant pourra poursuivre le travail réalisé dans le cadre du cours Stage-projet II.

Formule pédagogique : Stage

(07/2024)

8INF333 Sécurité des applications

Comprendre l'ensemble des pratiques, des vérifications et des prudences que devraient utiliser les informaticiens afin que leur code soit sécuritaire. Se familiariser avec les principes théoriques ainsi que les approches pratiques qui mènent à la création de codes robustes.

Enjeux liés au code de programmation en rapport à la sécurité informatique. Exemple de vulnérabilité du code. La conception sécuritaire des logiciels. Dépassements de tampon: outils et techniques de protection. Validation des entrées: injection SQL. Sécurité du système d'exploitation: accès aux ressources; protection des fichiers; authentification. Le déni de services : erreurs de programmation qui sont à leurs origines, l'attaque ReDoS et les contremesures. Le contrôle d'accès et la sécurisation des informations sensibles. Vulnérabilités dans manipulation de la mémoire et des types. Vulnérabilités introduites dans le processus de compilation. La génération des nombres aléatoires. Présentation d'études de cas réels, ainsi que des bonnes pratiques pour le développeur logiciel. Familiarisation avec les avancées scientifiques récentes dans ce domaine.

Préalable(s): (8INF259)

Formule pédagogique : Magistral et/ou formation à distance

(07/2024)

8INF334 Modélisation et développement objet

Maîtriser les principes d'analyse et de développement logiciel suivant une méthodologie de conception des systèmes informatiques orientée objet.

Méthodes d'analyse et de conception orientées objet: modélisation avec le langage UML, procédures de factorisation de programmes orientés objet, cycle de vie du logiciel, passage de la conception à l'implantation. Concepts avancés de la méthodologie orientée objet: frameworks, métaclasses, réflexivité, introspection. Comparaison des méthodes et outils logiciels orientés objet. Utilisation et application des patrons de conception (design patterns) dans un contexte applicatif réel. Génération de code : que reste-t-il à coder? Assurance qualité et techniques de tests de logiciels. Illustration des concepts à l'aide du langage JAVA.

Préalable(s): (8PRO128)

Formule pédagogique : Magistral et/ou formation à distance

(07/2024)

8INF339 Stage-projet IV

Appliquer les compétences et les connaissances acquises au développement de systèmes informatiques en entreprises ou dans une organisation.

Démarche touchant la compréhension du problème posé, analyse du domaine et des besoins, recherche de solutions, justification de celle retenue, méthodologie retenue, élaboration du projet, conception du modèle informatique, mise en œuvre. Production de la documentation accompagnant les diverses étapes du projet selon les principes du génie logiciel. En collaboration avec des spécialistes de l'informatique de l'entreprise ou de l'organisation, le stage ou le projet se déroulera selon les modalités prévues par la direction de programme sous la supervision d'un enseignant. Dépôt d'un rapport écrit qui fera l'objet d'une évaluation. Selon le cheminement, l'étudiant pourra poursuivre le travail réalisé dans le cadre du cours Stage-projet III.

Formule pédagogique : Stage

(07/2024)

8INF342 Systèmes d'exploitation

Initier aux principaux concepts reliés aux systèmes d'exploitation des ordinateurs. Étudier les concepts fondamentaux des systèmes d'exploitation, à l'aide d'exemples pratiques et simulés. Introduction à Linux et aux commandes de base dans le terminal. Gestion des processus sous Linux.

Historique et composantes principales des systèmes d'exploitation. Gestion des processus : définition et concept, modèles de processus, états des processus, modes d'exécutions du CPU, clonage en Linux. Threads : définition et concept, multithreading, avantages, threads niveau utilisateur et niveau kernel. Synchronisation : situation de course, exclusion mutuelle, mécanismes de synchronisation, sémaphores, problèmes classiques de synchronisation. Interblocage : diagrammes de trajectoire des ressources, graphe d'allocation des ressources, gestion, prévention et détection des interblocages. Ordonnancement : long-terme, moyen-terme (swapping) et court-terme (dispatcher), priorités, politiques d'ordonnancement, ordonnancement multiprocesseur et multicœur. Mémoire : concepts-clés, partitionnement simple et dynamique, mémoire virtuelle, pagination, segmentation, traduction des adresses, tables de page. Gestion de la mémoire : algorithmes de remplacement des pages. Systèmes de fichiers et entrées/sorties : gestion de la mémoire secondaire, DMA, accès aux disques. Illustration pratique et application des notions en C++.

Préalable(s): (8INF259)

Formule pédagogique : Magistral et/ou formation à distance

(07/2024)

8INF349 Technologies Web avancées

Permettre de maîtriser le modèle, l'architecture et les applications Web avancées dans l'environnement de l'Internet.

Rappel et historique du développement Web : approfondissement des notions des protocoles (HTTP, HTTP2), langages de script côté client et côté serveur, HTML5, AJAX. Fonctionnement d'une application Web : requêtes HTTP, ressources, balanceurs de charge, cookie/local storage, stratégies d'optimisation (cache locale, de protocole et applicative). Architecture d'une application Web : MVC, intégration d'une base de données, engins de templating HTML, formats de sérialisation (JSON, XML), authentification, certificats. Intéropérabilité d'une application Web et micro services (RPC, SOAP, REST, découverte de services). Déploiement d'une application Web (PaaS, IaaS, déploiement continu, déploiements progressifs et de canaries). Maintenance : gestion de la journalisation, métriques opérationnelles, modèle SRE.

Enjeux de sécurité informatique pour un programmeur Web: vulnérabilités, attaques, mécanismes d'authentification.

Préalable(s): (8PRO128 et 8WEB101)

Formule pédagogique : Magistral et/ou formation à distance

(07/2024)

8INF416 Visualisation de données et interface

Maîtriser la méthodologie, la conception et déploiement d'outils de visualisation de données.

Rôle des tableaux de bord et des indicateurs clés dans l'aide à la décision. Analyse de besoin, élaboration d'indicateur et définition des mesures d'une problématique. Utilisation des tableaux de bord en mode libre-service. Dynamisme des indicateurs et fréquence de mise à jour. Gouvernance, confidentialité et niveaux de sécurité dépendant des rôles des utilisateurs. Méthodes d'implantation et de développement des outils. Qualité et surveillance de l'outil après déploiement. Projet : Réalisation d'un tableau de bord dynamique.

Préalable(s): (8PRO408)

Formule pédagogique : Magistral et/ou formation à distance

(07/2024)

8INF435 Algorithmique

Faire comprendre la notion de complexité du traitement informatique. Étudier les différentes techniques permettant d'analyser l'efficacité des algorithmes. Rendre apte à concevoir et implanter des algorithmes efficaces.

Analyse: Complexité de temps et d'espace, notation asymptotique, résolution d'équations de récurrence. Conception: Algorithmes voraces, méthode diviser-pour-régner, programmation dynamique, algorithmes probabilistes et parallèles. Problèmes indécidables et intraitables. NP-complétude.

Préalable(s): (8INF259 et 8MAT122)

Formule pédagogique : Cours Magistral

(07/2024)

8INF436 Forage de données

Acquérir des connaissances avancées en apprentissage automatique pour l'analyse de données massives. Se familiariser avec les algorithmes de l'apprentissage supervisé et non supervisé en ligne et distribué. Mettre en pratique les connaissances acquises sur des cas réels en science des données.

Fondements de l'apprentissage automatique. Données massives et contraintes calculatoires. Flux de données. Algorithmes d'échantillonnage et comptage. Réduction de dimensionnalité. Dérive conceptuelle et détection de ruptures. Apprentissage supervisé en ligne. Algorithmes incrémentaux. VFDT. Apprentissage non-supervisé en ligne. Clustering incrémental. STREAM. Distribution de données massives. MapReduce et Hadoop. Apprentissage parallèle et grille informatique. Ensemble de méthodes et combinaison de modèles. Motifs fréquents et règles d'association distribuées. Apprentissage profond. Apprentissage semi-supervisé en ligne. Méthodologie d'apprentissage et ingénierie du logiciel. Fouille des réseaux sociaux. Environnement d'apprentissage et utilisation de librairies. Les exercices seront réalisés avec MOA (Massive Online Analysis), WekaHadoop, TensorFlow, Python.

Préalable(s): (8IAR403)

Formule pédagogique : Magistral et/ou formation à distance

(07/2024)

8INF700 Sujet spécial en informatique

Permettre à l'étudiant de bénéficier d'une formation adaptée.

Le contenu est variable selon les besoins des étudiants et l'expertise professorale disponible.

Formule pédagogique : Magistral et/ou formation à distance

(07/2024)

8MAP107 Calcul avancé I

Comprendre les notions et les outils du calcul différentiel à plusieurs variables, en particulier la dérivée vectorielle, le gradient et la dérivée directionnelle, avec une insistance sur les interprétations géométriques et physiques.

Introduction aux équations différentielles: exemples, ordre d'une équation, équations linéaires. Équations différentielles linéaires d'ordre 1: facteur intégrant, problème de valeur initiale, comportement à l'infini, représentation graphique, champ de directions. Les vecteurs de Rn et les vecteurs géométriques: repère cartésien, vecteur position d'un point, norme et distance, coordonnées polaires. Produits scalaire, vectoriel et mixte: propriétés, interprétations géométrique et physique (travail, moment vectoriel, flux). Projections scalaire et vectoriel d'un vecteur. Différentes équations d'une droite et d'un plan: paramétrique, normal-point et algébrique. Introduction aux nombres complexes. Fonctions vectorielles d'une variable: courbes paramétrées, hélices circulaire et elliptique, cubique gauche, intersection d'un plan et d'un cylindre conique, trajectoire d'une particule, dérivée et règles de dérivation, vecteur tangent, intégrale définie, intégration et condition initiale, longueur d'arc, vecteurs vitesse et accélération, vitesse et accélération. Fonctions scalaires: relation entre variables, fonction de plusieurs variables et graphe, surface de révolution, les quadriques, courbes et surfaces de niveau, limite et continuité, dérivées partielles et dérivée le long d'une droite parallèle à un axe, dérivée directionnelle et dérivée le long d'une droite orientée, vecteur gradient et interprétation géométrique, variation optimale d'une fonction, dérivation des fonctions composées et dérivée le long d'une courbe orientée, plan tangent à une surface définie par une relation, plan tangent à une graphe et approximation linéaire, dérivées partielles d'ordre supérieur, introduction à l'optimisation (extremums locaux, points critiques, test de dérivées secondes, ensemble fermé et borné, frontière, extremums globaux, multiplicateurs de Lagrange). Utilisation de la différentielle totale pour le calcul d'erreurs. Formules et séries de Taylor à une et deux variables : approximations d'une fonction. Applications en ingénierie: principe de superposition des forces et des vecteurs vitesses, les 3 lois de Newton, intégration de la deuxième loi de Newton et conditions initiales, vecteurs accélérations normale et tangentielle, topographie, équations de Laplace, de la chaleur et des ondes. Utilisations d'un logiciel de calcul.

Formule pédagogique : Cours Magistral

(07/2024)

8MAT122 Structures discrètes

Connaître diverses structures et méthodes mathématiques utilisées en mathématiques, en informatique et en recherche opérationnelle.

Éléments de la logique: propositions, quantificateurs, prédicats, déduction. Éléments de la théorie des ensembles: relations, opérations et fonctions. Éléments de la combinatoire: nombre, induction, comptage, énumération. Éléments de la théorie des graphes: arbres, treillis, traversées. Structures algébriques de base: monoïdes, algèbre de Boole, groupes. Applications à l'informatique: numéros, langages, automates, circuits logiques, codes.

Formule pédagogique : Cours Magistral

(07/2024)

8PRO107 Éléments de programmation

Initier au langage de programmation C++ tout en développant la créativité et l'esprit d'analyse. Initier à la résolution de problèmes et aux étapes à suivre pour résoudre un problème à l'aide d'un ordinateur. Familiariser avec les méthodes de résolution de problèmes par ordinateur dans le cadre de la programmation modulaire et structurée en C++. Sensibiliser au développement de programmes en C++ de bonne qualité, faciles à comprendre, faciles à utiliser et faciles à modifier.

Éléments du langage de programmation C++ : types simples et composés, variables locales et globales, entrées et sorties, expressions, structures de contrôle, fonctions, tableaux et pointeurs. Algorithmes interactifs et récursifs. Passage de paramètres par valeur et par référence. Allocation dynamique de la mémoire. Modularité et organisation des données. Notions d'algorithmique et de conception de programmes lisibles, compréhensibles et modifiables. Convention d'écriture de programmes et de documentations. Méthodologies de résolution de problèmes. Mise au point et vérification de programmes.

Formule pédagogique : Magistral et/ou formation à distance

(07/2024)

8PRO128 Programmation orientée objet

Familiariser avec le paradigme de la programmation orientée objet (POO). Faire connaître les outils de développement objet. Réaliser des applications informatiques basées sur l'approche de la programmation objet.

Notions de base relatives à la méthodologie orientée objet : type abstrait de données, classe, objet, héritage simple et multiple, objet complexe, les mécanismes d'abstraction et de paramétrisation en POO, surcharge, généricité, polymorphisme, etc. Qualités d'un langage de classe : modularité, réutilisabilité, extensibilité et maintenance. Refactorisation. Initiation au langage de modélisation UML. Technologies orientées objet. Illustration des concepts en utilisant le langage C++.

Préalable(s): (8PRO107)

Formule pédagogique : Magistral et/ou formation à distance

(07/2024)

8PRO135 Programmation avec des moteurs de jeu

Se familiariser avec les éléments fondamentaux caractérisant un moteur de jeu. S'initier à l'utilisation d'un moteur de jeu professionnel et à son exploitation avec un langage de programmation. Se rendre apte à développer des logiciels de jeux en exploitant différents moteurs de jeu. Se familiariser avec les outils connexes à l'utilisation d'un moteur de jeu, tels qu'un système de gestion de version, de partage de code, de gestion de projet, et de « bug tracking ». Permettre de devenir autonome et apte à travailler dans une équipe dans la réalisation de projets de développement de jeux.

Introduction aux concepts fondamentaux caractérisant un moteur de jeu. Description d'une boucle de jeu typique (entrées/sorties, gameplay, physique, rendu, son, etc.). Introduction aux shaders et aux outils d'édition visuels. Création et gestion de scènes via une interface d'édition. Modèle Entity-Component-System. Notions de sérialisation. Intégration de ressources (ex. : textures, modèles 3D, squelettes, animations, sons, etc.). Familiarisation avec la structure et le fonctionnement de moteurs de jeu professionnels tels que Unity3D et Unreal Engine. Navigation dans l'interface de moteurs de jeu. Exploitation de l'outil d'édition. Importation de ressources externes. Utilisation et réutilisation d'objets préfabriqués. Développement de base avec les langages C++ et C# avec Visual Studio et Jetbrains Rider en interaction avec le moteur. Apprentissage des outils de débogage. Utilisation des moteurs en interaction avec un système de gestion de versions (ex. Github et Perforce). Utilisation de systèmes de gestion de projets et de suivi de bogues (ex. Jira). Utilisation d'un magasin (assets store). Exercices pratiques d'implémentation de fonctionnalités avec des moteurs de jeu. Utilisation et création d'outils pour les moteurs de jeu.

Préalable(s): (8INF259 et 8PRO128)

Formule pédagogique : Magistral et/ou formation à distance

(07/2024)

8PRO408 Outils de programmation pour la science des données

Exploiter les outils informatiques d'analyse des données de masse les plus utilisés dans l'industrie.

Langage de programmation Python, introduction à R et SAS. Traitement des données avec Python, R et SAS. Installer et utiliser des modules spécialisés pour l'analyse de données : numpy, scikit learn, pandas, scipy, statsmodels pour python et dyplr, caret, ggplot2 pour R. Utilisation de data step, proc sql et macros SAS. Réalisation d'une étude analytique : hypothèses, choix des outils, validation, présentation des résultats.

Formule pédagogique : Magistral et/ou formation à distance

(07/2024)

8ROP530 Recherche opérationnelle

Initier les personnes étudiantes aux concepts, problèmes, méthodes de résolution et applications de la recherche opérationnelle et d'aide à la décision. L'accent est mis sur la manière de traduire les problèmes du monde réel en modèles appropriés, la compréhension des algorithmes pour résoudre ces problèmes, l'utilisation de logiciels spécialisés et l'analyse des résultats.

Problèmes d'optimisation et applications : nature des variables, problèmes contraints, problèmes uniobjectif et multiobjectifs, incertitude, combinatoire. Optimisation exacte: programmation linéaire, programmation linéaire en nombres entiers et mixtes, Algorithmes spécifiques à certains problèmes: transport, affectation, sélection, ordonnancement, graphes (plus court chemin, arbre couvrant, flot maximal, flot à coût minimal, projet), etc. Optimisation approchée: heuristiques et métaheuristiques. Optimisation de problèmes avec objectifs multiples, simulation, satisfaction de contraintes. Utilisation de logiciels.

Préalable(s): ((8PRO107) ou (8PRO408))

Formule pédagogique : Magistral et/ou formation à distance

(07/2024)

8RVL201 Réalité virtuelle et environnements immersifs

Offrir les bases nécessaires pour comprendre les principes fondamentaux des technologies immersives. Apprendre les meilleures pratiques, les paradigmes d'interaction et leur contexte d'utilisation. Par l'intermédiaire d'interfaces immersives, les technologies de la réalité virtuelle offrent une expérience fascinante. Toutefois, il ne suffit pas de mettre un casque pour exploiter le plein potentiel de la technologie, pour avoir une expérience enrichissante.

Définition et applications. Principaux canaux sensori-moteurs de l'humain. Immersion et présence. Rendu stéréoscopique. Réalité Virtuelle avec les principaux moteurs de jeu. Étude des différentes méthodes de déplacement, de sélection et de manipulation tri-dimensionnelle. Comprendre et réduire les effets du cyber-malaise.

Préalable(s): (8PRO128)

Formule pédagogique : Magistral et/ou formation à distance

(07/2024)

8SEC201 Cybersécurité défensive : vulnérabilités et incidents

Acquérir les connaissances et les compétences permettant de gérer les vulnérabilités d'un système informatique. Comprendre comment gérer les incidents de sécurité et les étapes de réponses.

Rappel des notions fondamentales : administration d'un système, code applicatif sécurisé OWASP, réseautique, chiffrement, gestion des accès, triade de la sécurité, probabilités et impacts, et Cyber Threat Intelligence (CTI). Gestion des vulnérabilités. Configuration et utilisation d'un scanner de vulnérabilités et d'outils de découverte. Collecte et interprétation des résultats. Analyse contextuelle des vulnérabilités. Recherche de solutions et recommandations. Tests, découvertes et exploitations des vulnérabilités. Intelligence en sécurité : visibilité et stratégie. Gestion des incidents. Connaître les étapes de réponses aux incidents : préparation, détection, analyse, confinement, éradication, rétablissement, leçons apprises. Gestion des risques et niveaux de service. Décrire des surfaces dattaques. Adaptabilité de la stratégie de réponse. Plan de continuité d'affaires. Plan de recouvrement. Les preuves et comment documenter un incident. Cryptographie. Reconnaître les attaques usuelles : password spray, brute force, pivot, etc. Bases de connaissances de tactiques d'attaques et de défense : MITRE ATT&K + MITRE D3FEND.

Préalable(s): (8WEB101)

Formule pédagogique : Magistral et/ou formation à distance

(07/2024)

8SEC202 Enquêtes numériques et cyber-intelligence

Acquérir une connaissance et une compétence concernant les bonnes pratiques d'enquêtes numériques (Forensic). Connaître les techniques en cyber-intelligence, de l'espionnage et du renseignement numérique.

Bonnes pratiques d'enquêtes numériques : volatilité des preuves, acquisition d'évidences, manipulation des preuves, triage, reconstitution de la séquence dévénements. Pouvoir identifier l'information pouvant être utilisée comme IOC (indicateur de compromissions). Reconnaître les tactiques, les techniques et procédures utilisées par une menace. Pyramid of pain. Connaissance des diverses menaces ainsi que l'identification de celles-ci. La méthodologie de récupération et de traitement de renseignements. (BG) Explication des différents types de sources (ISAC, etc.). Comment effectuer des recherches sur le DarkWeb. Renseignement Open Source (OSINT). Outils de recherche de renseignements. Flux d'informations (gratuits, payants). Modélisation des menaces. Analyse et production d'intel. Erreurs logiques, biais cognitifs. Comprendre STIX et TAXII. Les pièges de la rédaction de rapports de renseignements. Meilleures pratiques de rédaction de rapports de renseignements.

Préalable(s): (8WEB101)

Formule pédagogique : Magistral et/ou formation à distance

(07/2024)

8STT117 Probabilité et statistique

Présenter les principes fondamentaux des probabilités et de la statistique. Développer une appréciation du rôle des modèles probabilistes dans les sciences et dans le monde du travail en général.

Concepts de population, échantillon, variable aléatoire et processus stochastique. Statistique descriptive. Moyenne mobile et exponentielle. Probabilité. Principales lois de probabilité paramétrique et non-paramétrique. Lois Bernoulli, uniforme, normale. Processus et loi de Poisson. Loi empirique. Estimation par noyau. Test d'hypothèse. Comparaison de deux proportions. Régression linéaire simple. Méthode de Monte Carlo. Introduction à la modélisation et simulation. Une partie des exemples et des exercices seront réalisés en Python.

Formule pédagogique : Cours Magistral

(07/2024)

8TRD150 Animation et images par ordinateur

Apprendre des méthodes utilisées dans le domaine de l'animation par ordinateur en trois dimensions. Initier aux techniques d'imagerie utilisées dans l'industrie des jeux vidéo.

Rappels mathématiques : Programmation de shaders; Plaçage de textures et techniques associé; Rendu à partir d'images; Calcul d'ombres. Occusion ambiante. Implémentation d'outils d'édition de courbes; Structures hiérarchiques et cinématique inverse; Détection de collisions; Simulation physique; Simulation de phénomènes naturels; Calcul général à l'aide d'un GPU; Initiation au traitement d'images.

Préalable(s): (8PRO128)

Formule pédagogique : Magistral et/ou formation à distance

(07/2024)

8TRD151 Introduction aux bases de données

Connaître les différentes composantes des bases de données, leurs niveaux d'abstraction et les techniques d'organisation des données en mémoire secondaire. Introduire aux principaux concepts des systèmes de gestion de bases de données relationnelles.

Historique des types de SGBD (Hiérarchique, Réseau, Relationnel et Relationnel/Objet), Les grands fabricants de SGBD et les produits du logiciel libre, processus de conception de BD relationnelle: analyse, modélisation conceptuelle et introduction à la théorie de la normalisation. Les bases du langage SQL pour la définition des données (LDD), la manipulation des données (LMD) et le contrôle des données (LCD). Extensions procédurales de SQL pour l'interface entre les bases de données et les programmes d'application Java (SQLJ, JBDC et PL/SQL). Gestion des données en mémoire secondaire et organisation unidimensionnelle des données. Étude et expérimentation d'un SGBD réel. Utilisation d'un système de gestion de bases de données d'entreprise (Oracle). Réalisation d'un travail de conception et d'exploitation d'une base de données.

Formule pédagogique : Magistral et/ou formation à distance

(07/2024)

8TRD157 Bases de données avancées

Faire connaître les composants avancés des bases de données: bases de données multimédia (Textes, Images et XML) et bases de données pour le commerce électronique (centralisées et/ou client/serveur). Introduire aux concepts avancés des systèmes de gestion de bases de données relationnelles. Initier aux architectures de bases de données impliquées dans le commerce électronique. Approfondir les concepts de modélisation, de conception, d'implantation et d'administration de bases de données hétérogènes centralisées ou réparties auxquelles on peut accéder par des applications conventionnelles ou en mode client/serveur (intranet ou Internet).

Introduction aux bases de données multimédia: 1) base de données de gestion documentaire: types de données multimédia, modèle relationnel-objet, requêtes multimédia (ABR, CBR et CBIR), méthodes de classification, d'indexation et de segmentation des données multimédia. Particularités des techniques de requêtes, présentation et conception des BDMM texte, image et XML. Méthodes d'interrogation et de manipulation des bases de données multimédia (SQL3). Réalisation d'un système d'applications multimédia dans un environnement multi-analystes et multi-usagers selon une approche centralisée et client-serveur en passant par toutes les étapes de conception. Problèmes d'intégrité des données. Problématique des bases de données pour le commerce électronique et stratégies d'accès par intranet ou Internet aux bases de données de production. Particularités des méthodes d'accès et techniques de protection de l'intégrité des données. Liaison de tables locales clientes avec des tables externes par un protocole normalisé (ex. odbc, ...) ou propriétaire (ex. Net8). Concepts d'importation, d'exportation et d'attache de tables. Stratégies de réplication synchrone et asynchrone. Configuration d'un environnement répliqué et le concept maître - esclave. Gestion des collisions et les mécanismes de solution. Règles de répartition des données et des fonctions dans un environnement client/serveur. Solutions propriétaires et publiques pour la compatibilité http-html-sql-dbms (ex. PHP, JSS,...).

Préalable(s): (8TRD151)

Formule pédagogique : Cours Magistral

(07/2024)

8WEB101 Conception et programmation de sites Web

Se familiariser avec la méthodologie, la conception et la gestion d'un site Web. Comprendre les notions de base du Web et de l'approche client-serveur.

Origines et évolution des technologies du Web. Notions de base du réseau Internet: adressage, protocole TCP/IP, fonctionnement du protocole HTTP. Architecture client-serveur. Structure d'un document avec le langage HTML. Présentation et mise en page des diverses composantes d'un site Web avec le langage CSS. Éléments dynamiques côté client: animations, utilisation élémentaire du langage JavaScript. Notions de design: formats et traitement d'images, ergonomie, accessibilité, support des standards par les navigateurs, optimisation du temps de chargement. Fonctionnement des moteurs de recherche. Configuration et gestion de base d'un serveur web; compilation de statistiques à partir des logs d'un serveur. Mise en place d'un système de gestion de contenu (CMS). Enjeux de sécurité informatique pour un utilisateur du web: cookies, hameçonnage.

Formule pédagogique : Magistral et/ou formation à distance

(07/2024)