4697

Certificat ou mineure(8567) en développement de jeux vidéo

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

Présentation du programme

Le Certificat ou mineure en développment de jeux vidéo vise l'acquisition de compétences de base en programmation de jeux vidéo dans l'optique de pouvoir joindre l'industrie du numérique. Le programme est centré sur la programmation en C++/C# ainsi que sur la prise en main des outils propres au développement de jeux vidéo, tels que les moteurs de jeux commerciaux, les systèmes de gestion de version, et les environnements de développement logiciel.

Objectifs

Ce programme consiste à offrir une formation de base en programmation C++ axée sur le jeu vidéo et en lien avec l'introduction à l'expérience utilisateur dans la conception de jeux vidéo. À la fin de son programme, l'étudiante ou l'étudiant nouvellement diplômé aura le bagage de base nécessaire pour solliciter un poste dans le domaine de la programmation de logiciels et du développement de jeux vidéo.

Objectifs spécifiques

Plus spécifiquement, le programme vise à:

Note:

Pour les fins d'émission d'un grade de bachelier par cumul de certificats, le secteur de rattachement de ce programme est «ARTS».

Conditions d'admission

Base Études collégiales (DEC)

Être titulaire d'un diplôme d'études collégiales (DEC) ou l'équivalent;

Base Études universitaires

Avoir réussi quinze (15) crédits de niveau universitaire avec une moyenne cumulative d'au moins 2,3/4,3;

Base Préparation suffisante

Avoir une expérience pertinente 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 le responsable de l'organisme par écrit. Présenter un curriculum vitæ détaillé qui fait état des connaissances appropriées et de l'expérience pertinente. La direction de programme se réserve le droit de rencontrer le candidat en entrevue et/ou de lui faire passer un test afin de valider l'expérience pertinente. Le candidat peut se voir imposer une formation préparatoire.

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ègles administratives

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

Le programme est offert à temps partiel et à temps complet.

Règlements pédagogiques particuliers

Le cours 8PRO107 - Éléments de programmation devra être suivi au premier trimestre.

Reconnaissance des acquis

En vertu de l'article 87 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

Perspectives d'études au Baccalauréat en développement de jeux vidéo

Les étudiants qui désirent poursuivre leur formation au Baccalauréat en développement de jeux vidéo (6596) et qui n'ont pas les exigences de base en mathématique pourront suivre les cours 8GMA102 Calcul différentiel et intégral et 8MAT142 Algèbre vectorielle et matricielle. Ces cours seront considérés comme des cours optionnels dans leur cheminement académique du certificat. De cette façon, les étudiants posséderont déjà les exigences de base en mathématique lors du dépôt de leur demande d'admission au baccalauréat, par contre, ces deux cours ne seront pas reconnus à l'intérieur du baccalauréat car ils auront servit à répondre aux conditions d'admission.

Structure du programme

Ce programme comprend trente (30) crédits répartis comme suit:

(*) Les cours entre parenthèses sont préalables.

Note: Le programme peut comprendre trente et un crédits (31) pour les étudiants qui auront suivi le cours 8GMA102 Calcul différentiel et intégral.

Plan de formation

Cours obligatoires

Les six cours suivants (dix-huit crédits)

8GIF150Conception de jeux vidéo
8IFG147Gestion de la production dans l'industrie du numérique
8INF242Interface (UI) et Expérience (UX) utilisateur
8INF259Structures de données (8PRO107)
8PRO107Éléments de programmation
8PRO128Programmation orientée objet (8PRO107)

Cours optionnels

Quatre cours parmi les suivants (douze crédits)

4ETH236Éthique et informatique
6GEI186Architecture des ordinateurs
7ARN161Création d'images numériques
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)
8GMA102Calcul différentiel et intégral 4.0 cr.
8INF138Sécurité des réseaux et du Web
8INF206Projet
8INF257Informatique mobile (8PRO128)
8INF700Sujet spécial en informatique
8MAP107Calcul avancé I
8MAT142Algèbre vectorielle et matricielle
8PRO135Programmation avec des moteurs de jeu (8INF259 et 8PRO128)
8STT117Probabilité et statistique
8TRD151Introduction aux bases de données
8WEB101Conception et programmation de sites Web
NAND118Pratique de la création 3D
NAND168Étude des moteurs de jeu

Possibilité de choisir un cours d'anglais ou de français parmi les suivants

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

DESCRIPTION DES COURS

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

(09/2023)

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

(09/2023)

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

(09/2023)

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

(09/2023)

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

(09/2023)

7ARN161 Création d'images numériques

Connaître les principales technologies de l'information et de la communication qui permettent la création des images numériques 2D. Sensibiliser à un certain nombre de concepts relatifs à l'image numérique, que celle-ci soit de provenance optique (images photographiques) ou le résultat de calculs effectués par des ordinateurs (images vectorielles). Sensibiliser à une démarche de production artistique dans un contexte de mutations technologiques. Susciter l'intérêt pour la recherche tout en privilégiant une approche interdisciplinaire.

Apprentissage des principaux processus de création de l'image numérique à travers une série de courts projets. Expérimentation avec les logiciels de traitement d'images matricielles (Adobe Photoshop) et le logiciel de création graphique vectorielle (Adobe Illustrator). Connaissance du contexte d'émergence des arts numériques et ses enjeux afin de mieux y inscrire sa pratique. Théorisation et pratique de concepts relatifs à l'image issue des arts technologiques depuis l'avènement de l'infiltration des anciens médias par l'informatique (images numérisées i.e. la photo) et la création des formes inédites numériques.

Formule pédagogique : Atelier

(09/2023)

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

(09/2023)

7LNG104 Rédaction

Améliorer la compétence en communication écrite en initiant au processus d'écriture. Développer l'habileté à rédiger un texte dans sa discipline en faisant prendre conscience des facteurs extralinguistiques qui influencent la production des textes et en initiant aux procédés linguistiques qui en assurent la pertinence et la cohérence.

Définition de la tâche d'écriture. Recherche documentaire : cueillette, sélection et organisation des informations; techniques du résumé. Structuration du contenu : introduction et conclusion, formulation et enchaînement des idées, gestion de la référence, établissement de relations logiques et utilisation des connecteurs, phénomènes d'énonciation, organisation du lexique et champs sémantiques. Travail de révision et de réécriture. Organisation matérielle : éléments de méthodologie (citations, références, bibliographie), normes de présentation.

Formule pédagogique : Cours Magistral

(09/2023)

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

(09/2023)

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

(09/2023)

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

(09/2023)

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

(09/2023)

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 jeux. 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 jeux 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

(09/2023)

8GIF150 Conception de jeux vidéo

Initier à la conception de jeux vidéo et aux techniques propres à leur programmation. Sensibiliser au contexte et aux pratiques de l'industrie du jeu vidéo ainsi qu'aux exigences du domaine et à la formation nécessaire pour y oeuvrer.

Historique des jeux vidéo. Définition et caractéristiques fondamentales : contexte, concepts, histoire, interface, apparence visuelle, son, monde virtuel, support, documentation et distribution. Industrie du jeu vidéo : historique, contexte, réalité et défis. Conception et développement dans un environnement commercial. Méthodes de développement et de travail en équipe. Gestion de projet. Conception de jeux. Relations entre les éléments du jeu, les règles et la jouabilité. Caractérisation des conditions initiales et de victoire. Étude des stratégies, des tactiques et de leur équilibre. Étude de cas : Échec, Go, Civilisation, Colons de Cathane, Mage Knight, etc. Techniques de base de programmation des jeux vidéo. Choix de la plate-forme technologique du langage de programmation. Modélisation du monde virtuel. Introduction à un langage de script tel que Lua, Python, etc.

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

(09/2023)

8GMA102 Calcul différentiel et intégral

Familiariser aux concepts et techniques du calcul différentiel et intégral. Rendre l'étudiant capable d'utiliser les outils à la résolution de problèmes liés aux applications physiques en génie.

Rappels sur les ensembles et nombres réels. Valeur absolue, droite orientée, inéquations. Fonctions et graphes, fonctions élémentaires: puissances, exponentielles, logarithmiques, trigonométriques, hyperboliques, fonctions inverses et composées. Forme implicite. Lieux géométriques et les coniques. Représentations paramétriques. Définition d'une limite et ses propriétés. Calcul de limites de fonctions algébriques. Continuité d'une fonction et propriétés des fonctions continues. Dérivée: définition, existence, propriétés et calculs. Formules de dérivation, dérivation en chaîne, dérivation implicite. Différentielle. Applications des dérivées: extremums de fonctions, tracé d'une courbe, modélisation et optimisation, théorèmes des accroissements finis, limites des formes indéterminées: règle de l'Hôpital. Approximations d'une fonction par série. Applications au génie. Intégrales indéfinies. Intégrales définies: définition et propriétés. Théorème fondamental du calcul. Applications: calcul des aires planes, des aires et volumes de révolution, centre de gravité, moment d'inertie, pression des fluides, travail, longueur d'arc. Intégration numériques. Intégrales impropres.

Formule pédagogique : Cours Magistral

(09/2023)

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

(09/2023)

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

(09/2023)

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

(09/2023)

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

(09/2023)

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

(09/2023)

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

(09/2023)

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

(09/2023)

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

(09/2023)

8MAT142 Algèbre vectorielle et matricielle

Familiariser l'étudiant avec les notions de base d'algèbre vectorielle et matricielle.

Vecteurs géométriques: définition, addition, produit par un scalaire, combinaison linéaire de vecteurs parallèles et coplanaires, composantes d'un vecteur. Vecteurs algébriques: définition, opération sur ces vecteurs. Produit scalaire et applications. Produit vectoriel et applications. Le plan dans l'espace: équations vectorielle et algébrique du plan, vecteur normal à un plan, équation normale, angle de deux plans, distance entre deux plans parallèles, distance d'un point à un plan, équations paramétriques pour un plan.

La droite dans l'espace: équations paramétriques et symétriques, droite d'intersection de deux plans non parallèles, distance d'un point à une droite, angle de deux droites, angle d'un plan et d'une droite, point d'une droite le plus rapproché d'un point donné, intersection d'une droite et d'un plan.

Matrices: élément, format, addition, produit par un scalaire, produit des matrices, transposées, déterminants et calculs, inversions de matrices, matrices symétriques et orthogonales, valeurs et vecteurs propres, matrices diagonalisables. Systèmes d'équations linéaires: expression vectorielle et matricielle d'un système linéaire, matrice augmentée, méthode de Gauss.

Notions de nombres et variables complexes: définition et justification des nombres complexes, représentation sur le plan complexe, formes polaire et cartésienne, égalité, inversion et conjugués. Addition, soustraction. Forme exponentielle. Multiplication et division. Racine. Fonctions d'une variable complexe: fonctions exponentielles et sinusoïdales.

Formule pédagogique : Cours Magistral

(09/2023)

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

(09/2023)

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

(09/2023)

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

(09/2023)

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

(09/2023)

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

(09/2023)

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

(09/2023)

NAND118 Pratique de la création 3D

Initier à la création d'éléments de contenu, d'images ou de séquences numériques originales dans l'environnement d'un logiciel 3D. Reconnaître les différents types d'objets virtuels et leurs manipulations potentielles. Comprendre les propriétés visuelles des objets et la notion de rendu d'images. Développer une pensée artistique intégrant les limites et le potentiel de la technologie.

Présentation et analyse des grands principes de la création 3D: la modélisation, les textures, l'éclairage et le rendu. Familiarisation aux possibilités créatives des principaux outils de façonnage des volumes (objets polygonaux, courbes, etc.), des outils de création de surface (nuanceurs et textures), et des outils de mise en scène (éclairages et utilisation de caméra). Développement d'un processus de création intuitif par l'usage approprié de thématiques de travail ouvertes.

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

(09/2023)

NAND168 Étude des moteurs de jeu

Développer l'habileté à utiliser un moteur de jeu spécifique. Développer une approche critique dans le choix judicieux de la technologie des moteurs de jeu dans un contexte de décision et de production.

Les contextes de décision et de production dans l'industrie du jeu vidéo. Les possibilités, les contraintes et les limites propres aux différents moteurs de jeu couramment utilisés. Les méthodes d'exportation vers le moteur de jeu. Les types de modélisation, de textures et d'animation supportés. La question du respect des principes narratifs et esthétiques du projet et de la jouabilité souhaitée. Utilisation de l'outil Perforce et son intégration dans un moteur de jeu. La réalisation de travaux pratiques et les évaluations collectives favoriseront la capacité de l'étudiant à optimiser les qualités spécifiques des différents moteurs de jeu, et ce, dans divers contextes de décision et de production.

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

(09/2023)